一,介绍
在微积分中,切线是函数图形在某一点的瞬时变化率,表示该点的导数。相较于割线,切线与函数在该点的斜率一致。利用 Manim,可以通过选择一个特定的 x 值,在该点计算函数图的切线。首先,确定该点的 y 值和切线的斜率(导数)。然后,生成切线并将其可视化,帮助人们更直观地理解函数的局部行为。这种可视化不仅清晰展现切线的特点,还能为学习微分提供直观支持,激发对数学的兴趣。
二,实现可视化
构造函数:
-
get_secant_slope_group(x, graph, dx=None, dx_line_color=ManimColor('#FFFF00'),
-
dy_line_color=None, dx_label=None, dy_label=None, include_secant_line=True,
-
secant_line_color=ManimColor('#83C167'), secant_line_length=10)
该函数 get_secant_slope_group
用于计算和可视化某个函数图形的割线(secant line)。割线是连接函数图形上两点的直线,其斜率表示两点之间的平均变化率(或称为割线斜率)。
参数说明
- x: 一个特定的 x 值,用于确定割线的计算位置。
- graph: 需要可视化的图形对象,通常是某个函数的图形。
- dx: x 方向的增量,用来确定割线的两个点。若未提供,可能使用默认值。
- dx_line_color: dx 线的颜色,默认设置为明亮的黄色。
- dy_line_color: dy 线的颜色。可以根据需求自定义。
- dx_label: dx 线的标签,通常是增量的数值或含义。
- dy_label: dy 线的标签,表示 y 方向的增量。
-
include_secant_line: 一个布尔值,决定是否包含割线。如果为
True
,则会包含割线。 - secant_line_color: 割线的颜色,默认设置为绿色。
- secant_line_length: 割线的长度,用于调整可视化中的割线长度。
示例1:
-
class GetSecantSlopeGroupExample(Scene):
-
def construct(self):
-
ax = Axes(x_range=[-1, 7],
-
y_range=[-1, 7],x_length=15, # x轴长度
-
y_length=8, # y轴长度
-
).add_coordinates().set_color(PURPLE)
-
graph = (lambda x: 1 / 4 * x ** 2, color=BLUE)
-
slopes = ax.get_secant_slope_group(
-
x=2.0,
-
graph=graph,
-
dx=0.5,
-
dx_label=Tex("dx = 1.0"),
-
dy_label="dy",
-
dx_line_color=GREEN_B,
-
secant_line_length=6,
-
secant_line_color=RED_D,
-
)
-
-
(ax, graph, slopes)
运行结果:
示例2:
-
from manim import *
-
-
class SecantSlope1234(Scene):
-
def construct(self):
-
ax = Axes( ).add_coordinates().set_color(PURPLE)
-
# 定义一个函数
-
graph = (lambda x: x**2, x_range=[-2, 2])
-
-
# 显示函数图像
-
(ax)
-
(graph)
-
-
# 设置x位置和增量
-
x_value = 1
-
dx = 0.5
-
-
# 获取割线及其相关可视化元素
-
secant_slope_group = ax.get_secant_slope_group(
-
x=x_value,
-
graph=graph,
-
dx=dx,
-
dx_line_color=PURPLE,
-
dy_line_color=GRAY_A,
-
dx_label=Tex("dx") ,
-
dy_label=Tex("dy") ,
-
include_secant_line=True,
-
secant_line_color=RED_D,
-
secant_line_length=5
-
)
-
-
# 显示割线和相应的标签
-
(Create(secant_slope_group))
-
(2)
运行结果: