VectorField¶
VectorField¶
-
class
manimlib.mobject.vector_field.
VectorField
(func, **kwargs)¶ 向量场
传入的
func
为自变量为一个点,返回值也为一个点的函数delta_x, delta_y
: 向量场每两个起点之间x/y轴的间隔(默认均为0.5)x_min, x_max, y_min, y_max
: 向量场的范围(默认为全屏)min_magnitude, max_magnitude
: 用于梯度颜色的最小和最大长度colors
: 需要的颜色梯度范围,默认为[BLUE_E, GREEN, YELLOW, RED]
length_func
: 映射向量长度的函数,可改为linear
表示原长vector_config
: 每个向量的属性设置
初始化之后为一系列向量
StreamLines¶
-
class
manimlib.mobject.vector_field.
StreamLines
(func, **kwargs)¶ 流线
传入的
func
为自变量为一个点,返回值也为一个点的函数随机生成一系列起点,并且根据func流动形成图形
x_min, x_max, y_min, y_max
: 流线起点的范围delta_x, delta_y
: 每两个流线起点x/y的变化量n_repeats
: 起点重复多少次dt
: 每次流动的时间(默认为0.05)virtual_time
: 总共流动的时间(默认3)virtual_time/dt
为流动的次数color_by_arc_length
: 根据弧长上色(默认为True)min_arc_length, max_arc_length
: 最小最大的弧长
color_by_magnitude
: 根据距离上色min_magnitude, max_magnitude
: 最小最大距离
colors
: 颜色梯度的范围,默认为[BLUE_E, GREEN, YELLOW, RED]
cutoff_norm
: 运行每条流线的最大长度
ShowPassingFlashWithThinningStrokeWidth¶
-
class
manimlib.mobject.vector_field.
ShowPassingFlashWithThinningStrokeWidth
(vmobject, **kwargs)¶ 通过改变线条宽度来实现流动效果
传入的
vmobject
表示需要显示流动效果的物体(一般是StreamLines
)
ShowPassingFlashWithThinningStrokeWidthExample¶
class ShowPassingFlashWithThinningStrokeWidthExample(Scene):
def construct(self):
sl = StreamLines(
lambda p: rotate_vector(p / 3, 90 * DEGREES)
)
self.add(sl)
self.wait()
self.play(ShowPassingFlashWithThinningStrokeWidth(sl))
self.wait()