VMobject¶
全限定名: manim.mobject.types.vectorized\_mobject.VMobject
- class VMobject(fill_color=None, fill_opacity=0.0, stroke_color=None, stroke_opacity=1.0, stroke_width=4, background_stroke_color=ManimColor('#000000'), background_stroke_opacity=1.0, background_stroke_width=0, sheen_factor=0.0, joint_type=None, sheen_direction=array([-1., 1., 0.]), close_new_points=False, pre_function_handle_to_anchor_scale_factor=0.01, make_smooth_after_applying_functions=False, background_image=None, shade_in_3d=False, tolerance_for_point_equality=1e-06, n_points_per_cubic_curve=4, cap_style=CapStyleType.AUTO, **kwargs)[source]¶
基类:
Mobject
一种矢量化的mobject。
- 参数:
background_stroke_color (ParsableManimColor | None) – 背景描边的目的是为了有不会与填充重叠的内容,例如,用于文本在某种纹理背景上。
sheen_factor (float) – 当设置颜色c时,会根据c与白色之间通过sheen_factor插值计算出第二种颜色,并且显示将沿着sheen_direction方向渐变为该次要颜色。
close_new_points (bool) – 表示它不会被显示,但应计入父mobject的路径中。
tolerance_for_point_equality (float) – 这在一个像素内。
joint_type (LineJointType | None) – 用于连接此矢量化mobject曲线段的线条连接类型。有关选项,请参阅
LineJointType
。fill_color (ParsableManimColor | None)
fill_opacity (float)
stroke_color (ParsableManimColor | None)
stroke_opacity (float)
stroke_width (浮点数)
background_stroke_opacity (float)
background_stroke_width (float)
sheen_direction (Vector3D)
pre_function_handle_to_anchor_scale_factor (float)
make_smooth_after_applying_functions (布尔值)
background_image (Image | str | None)
shade_in_3d (bool)
n_points_per_cubic_curve (int)
cap_style (CapStyleType)
kwargs (Any)
方法
add_cubic_bezier_curve
向路径添加三次贝塞尔曲线。
add_cubic_bezier_curves
从VMobject的最后一个点向给定点添加一条直线。
在
VMobject.points
末尾添加多条直线,这些直线按顺序从当前路径的末尾开始连接给定的points
。向路径添加二次贝塞尔曲线。
从给定点创建平滑曲线并将其添加到VMobject。
add_subpath
向自身和vmobject添加点,使它们都拥有相同数量的子路径,并且每个对应的子路径包含相同数量的点。
align_rgbas
将给定的
new_points
附加到VMobject.points
的末尾。append_vectorized_mobject
应用函数
改变贝塞尔曲线的锚点模式。
clear_points
close_path
color_using_background_image
consider_points_equals
确定两个点是否足够接近以被视为相等。
淡化
确保点按顺时针或逆时针方向排列。
从点数组返回贝塞尔元组。
gen_subpaths_from_points_2d
第一个参数可以是颜色,也可以是颜色元组/列表。
返回构成VMobject的曲线的锚点。
返回anchors1、handles1、handles2、anchors2,其中(anchors1[i], handles1[i], handles2[i], anchors2[i])将是定义三次贝塞尔曲线的四个点,适用于范围(0, len(anchors1))中的任何i。
返回整个曲线的近似长度。
get_background_image
返回
Mobject
的颜色get_cubic_bezier_tuples
get_cubic_bezier_tuples_from_points
获取mobject曲线的函数。
获取mobject曲线的函数和长度。
使用
shoelace_direction()
计算方向。返回贝塞尔曲线的结束锚点。
如果存在多种颜色(用于渐变),则返回第一种颜色
get_fill_colors
get_fill_opacities
如果存在多个不透明度,则返回第一个
获取填充RGBA值
get_gradient_start_and_end_points
get_group_class
get_last_point
返回此 mobject 类型的基类。
返回第n条曲线的表达式。
返回第n条曲线的表达式及其(近似)长度。
返回第n条曲线的(近似)长度。
返回用于长度近似的短线长度数组。
返回定义vmobject第n条曲线的点。
返回vmobject的曲线数量。
可转换为或从自身转换的最简单的
Mobject
。get_points_defining_boundary
get_sheen_direction
get_sheen_factor
返回贝塞尔曲线的起始锚点。
get_stroke_color
get_stroke_colors
get_stroke_opacities
get_stroke_opacity
获取描边RGBA值
get_stroke_width
get_style
返回VMobject在区间[a, b]之间的子曲线。
返回由VMobject曲线形成的子路径。
get_subpaths_from_points
has_new_path_started
初始化颜色。
向vmobject的贝塞尔曲线插入n条曲线。
给定一个定义贝塞尔曲线(锚点和手柄)的k个点数组,返回精确定义k + n条贝塞尔曲线的点。
插值颜色
is_closed
make_jagged
make_smooth
match_background_image
match_style
获取
VMobject
路径上按比例的点。给定第二个
VMobject
vmobject
、下界a
和上界b
,修改此VMobject
的点,使其与由vmobject.points
描述的贝塞尔样条曲线在参数t
介于a
和b
之间的部分相匹配。返回给定点在
VMobject
路径上的比例。调整锚点和手柄数组的大小以达到指定大小。
通过反转点顺序来反转点方向。
围绕某个点旋转
Mobject
。旋转所施加光泽的方向。
按比例因子缩放大小。
如果给定控制点H及其相关锚点A之间的距离为d,则将H更改为距离A的factor*d,但A到H的连线不改变。
给定两组锚点和控制点,处理它们以将其设置为VMobject的锚点和控制点。
set_background_stroke
设置
VMobject
的端点样式。条件是一个接受一个参数 (x, y, z) 的函数。
设置
VMobject
的填充颜色和填充不透明度。set_opacity
set_points
给定一个点数组,将其设置为
VMobject
的角点。set_points_smoothly
set_shade_in_3d
从一个方向应用颜色渐变。
设置所施加光泽的方向。
set_stroke
set_style
将一个
point
添加到VMobject.points
中,该点将是给定点路径中新贝塞尔曲线的起点。update_rgbas_array
属性
animate (动画)
用于动画化
self
的任何方法的应用。animation_overrides (动画覆盖)
颜色
depth (深度)
mobject 的深度。
如果存在多种颜色(用于渐变),则返回第一种颜色
height (高度)
mobject 的高度。
n_points_per_curve (每条曲线的点数)
sheen_factor (光泽因子)
stroke_color (描边颜色)
width (宽度)
mobject 的宽度。
- _assert_valid_submobjects(submobjects)[source]¶
检查所有子对象是否确实是
Mobject
的实例,并且它们中没有一个是self
(Mobject
不能包含自身)。这是一个在向
submobjects
列表添加Mobject时调用的辅助函数。此函数旨在由
VMobject
等子类覆盖,这些子类应断言只能将其他VMobject添加到其中。- 参数:
submobjects (Iterable[VMobject]) – 包含要验证的值的列表。
- 返回:
Mobject本身。
- 返回类型:
Mobject
- 抛出:
TypeError – 如果submobjects中的任何值不是
Mobject
。ValueError – 如果尝试将
Mobject
作为其自身的子对象添加。
- _gen_subpaths_from_points(points, filter_func)[source]¶
给定一个定义vmobject贝塞尔曲线的点数组,返回由这些点形成的子路径。在此,如果至少两个贝塞尔曲线的锚点通过filter_func定义的关联被评估为True,则它们形成一条路径。
该算法处理
self.points
中的每个贝塞尔元组(锚点和手柄)(通过将每个n个元素重新分组,其中n是每条三次曲线的点数),并使用filter_func评估两个锚点之间的关系。注意:filter_func以整数n作为参数,并将评估points[n]和points[n - 1]之间的关系。这可能应该更改为函数接受两个点作为参数。- 参数:
points (CubicBezierPath) – 定义贝塞尔曲线的点。
filter_func (Callable[[int], bool]) – 定义关系的过滤函数。
- 返回:
由点形成的子路径。
- 返回类型:
Iterable[CubicSpline]
- _original__init__(fill_color=None, fill_opacity=0.0, stroke_color=None, stroke_opacity=1.0, stroke_width=4, background_stroke_color=ManimColor('#000000'), background_stroke_opacity=1.0, background_stroke_width=0, sheen_factor=0.0, joint_type=None, sheen_direction=array([-1., 1., 0.]), close_new_points=False, pre_function_handle_to_anchor_scale_factor=0.01, make_smooth_after_applying_functions=False, background_image=None, shade_in_3d=False, tolerance_for_point_equality=1e-06, n_points_per_cubic_curve=4, cap_style=CapStyleType.AUTO, **kwargs)¶
初始化自身。有关准确签名,请参阅 help(type(self))。
- 参数:
fill_color (ParsableManimColor | None)
fill_opacity (float)
stroke_color (ParsableManimColor | None)
stroke_opacity (float)
stroke_width (浮点数)
background_stroke_color (ParsableManimColor | None)
background_stroke_opacity (float)
background_stroke_width (float)
sheen_factor (float)
joint_type (LineJointType | None)
sheen_direction (Vector3D)
close_new_points (bool)
pre_function_handle_to_anchor_scale_factor (float)
make_smooth_after_applying_functions (布尔值)
background_image (Image | str | None)
shade_in_3d (bool)
tolerance_for_point_equality (float)
n_points_per_cubic_curve (int)
cap_style (CapStyleType)
kwargs (Any)
- add_cubic_bezier_curve_to(handle1, handle2, anchor)[source]¶
向路径添加三次贝塞尔曲线。
注意:第一个锚点不是参数,因为它默认为最后一个子路径的末尾!
- 参数:
handle1 (Point3DLike) – 第一个控制点
handle2 (Point3DLike) – 第二个控制点
anchor (Point3DLike) – 锚点
- 返回:
自身
- 返回类型:
- add_line_to(point)[source]¶
从VMobject的最后一个点向给定点添加一条直线。
- 参数:
point (Point3DLike) – 直线的终点。
- 返回:
自身
- 返回类型:
- add_points_as_corners(points)[source]¶
在
VMobject.points
末尾添加多条直线,这些直线按顺序从当前路径的末尾开始连接给定的points
。因此,这些points
将是附加到路径的新多段线的角点。- 参数:
points (Point3DLike_Array) – 一个三维点数组,表示要附加到
VMobject.points
的多段线的角点。- 返回:
VMobject自身,在将其直线添加到路径后。
- 返回类型:
- add_quadratic_bezier_curve_to(handle, anchor)[source]¶
向路径添加二次贝塞尔曲线。
- 返回:
自身
- 返回类型:
- 参数:
handle (Point3DLike)
anchor (Point3DLike)
- add_smooth_curve_to(*points)[source]¶
从给定点创建平滑曲线并将其添加到VMobject。如果传入两个点,第一个被解释为控制点,第二个被解释为锚点。
- 参数:
points (Point3DLike) – 要添加平滑曲线的点(锚点和控制点,或仅锚点)
- 返回:
自身
- 返回类型:
- 抛出:
ValueError – 如果给出0个或超过2个点。
- align_points(vmobject)[source]¶
向自身和vmobject添加点,使它们都拥有相同数量的子路径,并且每个对应的子路径包含相同数量的点。
通过沿着子路径均匀细分曲线,或者通过创建由重复的单个点组成的新子路径来添加点。
- append_points(new_points)[source]¶
将给定的
new_points
附加到VMobject.points
的末尾。- 参数:
new_points (Point3DLike_Array) – 要附加的三维点数组。
- 返回:
VMobject自身,在附加
new_points
后。- 返回类型:
- change_anchor_mode(mode)[source]¶
改变贝塞尔曲线的锚点模式。这将修改控制点。
只有两种模式:“锯齿状”和“平滑”。
- 返回:
自身
- 返回类型:
- 参数:
mode (Literal['jagged', 'smooth'])
- consider_points_equals_2d(p0, p1)[source]¶
确定两个点是否足够接近以被视为相等。
这使用了np.isclose()中的算法,但在此处扩展用于二维点的情况。对于这样一个小问题,NumPy是多余的。:param p0: 第一个点 :param p1: 第二个点
- 返回:
两个点是否被视为接近。
- 返回类型:
bool
- 参数:
p0 (Point2DLike)
p1 (Point2DLike)
- property fill_color: ManimColor¶
如果存在多种颜色(用于渐变),则返回第一种颜色
- force_direction(target_direction)[source]¶
确保点按顺时针或逆时针方向排列。
- 参数:
target_direction (Literal['CW', 'CCW']) – “CW”或“CCW”。
- 返回类型:
自身
- gen_cubic_bezier_tuples_from_points(points)[source]¶
从点数组返回贝塞尔元组。
self.points是mobject贝塞尔曲线的锚点和控制点的列表(即[锚点1, 控制点1, 控制点2, 锚点2, 锚点3 ..])。此算法通过每n个元素(其中n是每条三次贝塞尔曲线的控制点数量)取一个元素来基本检索它们。
- 参数:
points (CubicBezierPathLike) – 将从中提取控制点的点。
- 返回:
贝塞尔控制点。
- 返回类型:
tuple
- generate_rgbas_array(color, opacity)[source]¶
第一个参数可以是颜色,也可以是颜色元组/列表。同样,不透明度可以是浮点数,也可以是浮点数元组。如果self.sheen_factor不为零,且只传入一种颜色,则会自动添加第二种略浅的颜色以用于渐变。
- 参数:
color (ManimColor | list[ManimColor])
opacity (float | Iterable[float])
- 返回类型:
- get_anchors_and_handles()[source]¶
返回anchors1、handles1、handles2、anchors2,其中(anchors1[i], handles1[i], handles2[i], anchors2[i])将是定义三次贝塞尔曲线的四个点,适用于范围(0, len(anchors1))中的任何i。
- 返回:
锚点和控制点的可迭代对象。
- 返回类型:
list[Point3D_Array]
- get_arc_length(sample_points_per_curve=None)[source]¶
返回整个曲线的近似长度。
- 参数:
sample_points_per_curve (int | None) – 每条曲线用于近似长度的采样点数量。点越多,近似越精确。
- 返回:
VMobject
的长度。- 返回类型:
浮点数
- get_color()[source]¶
返回
Mobject
的颜色示例
>>> from manim import Square, RED >>> Square(color=RED).get_color() == RED True
- 返回类型:
- get_curve_functions()[source]¶
获取mobject曲线的函数。
- 返回:
曲线的函数。
- 返回类型:
Iterable[Callable[[float], Point3D]]
- get_curve_functions_with_lengths(**kwargs)[source]¶
获取mobject曲线的函数和长度。
- 参数:
**kwargs – 传递给
get_nth_curve_function_with_length()
的关键字参数- 返回:
曲线的函数和长度。
- 返回类型:
Iterable[tuple[Callable[[float], Point3D], float]]
- get_direction()[source]¶
使用
shoelace_direction()
计算方向。点的方向决定了对象是以顺时针还是逆时针方向绘制。示例
圆形
的默认方向是逆时针。>>> from manim import Circle >>> Circle().get_direction() 'CCW'
- 返回:
“CW”或“CCW”。
- 返回类型:
str
- get_nth_curve_function(n)[source]¶
返回第n条曲线的表达式。
- 参数:
n (int) – 所需曲线的索引。
- 返回:
第n条贝塞尔曲线的表达式。
- 返回类型:
Callable[float, Point3D]
- get_nth_curve_function_with_length(n, sample_points=None)[source]¶
返回第n条曲线的表达式及其(近似)长度。
- 参数:
n (int) – 所需曲线的索引。
sample_points (int | None) – 用于查找长度的采样点数量。
- 返回:
curve (Callable[[float], Point3D]) – 第n条曲线的函数。
length (
float
) – 第n条曲线的长度。
- 返回类型:
tuple[Callable[[float], Point3D], float]
- get_nth_curve_length(n, sample_points=None)[source]¶
返回第n条曲线的(近似)长度。
- 参数:
n (int) – 所需曲线的索引。
sample_points (int | None) – 用于查找长度的采样点数量。
- 返回:
length – 第n条曲线的长度。
- 返回类型:
浮点数
- get_nth_curve_length_pieces(n, sample_points=None)[source]¶
返回用于长度近似的短线长度数组。
- 参数:
n (int) – 所需曲线的索引。
sample_points (int | None) – 用于查找长度的采样点数量。
- 返回类型:
第n条曲线的短长度片段。
- get_nth_curve_points(n)[source]¶
返回定义vmobject第n条曲线的点。
- 参数:
n (int) – 所需贝塞尔曲线的索引。
- 返回:
定义第n条贝塞尔曲线的点(锚点、控制点)
- 返回类型:
- get_point_mobject(center=None)[source]¶
可转换为或从自身转换的最简单的
Mobject
。应为适当类型的点。- 参数:
center (Point3DLike | None)
- 返回类型:
- get_subcurve(a, b)[source]¶
返回VMobject在区间[a, b]之间的子曲线。该曲线本身就是一个VMobject。
- 参数:
a (float) – 下界。
b (float) – 上界。
- 返回:
[a, b]之间的子曲线
- 返回类型:
- get_subpaths()[source]¶
返回由VMobject曲线形成的子路径。
子路径是曲线的范围,其中每对连续曲线的首尾点重合。
- 返回:
子路径。
- 返回类型:
list[CubicSpline]
- init_colors(propagate_colors=True)[source]¶
初始化颜色。
在创建时调用。这是一个空方法,可由子类实现。
- 参数:
propagate_colors (bool)
- 返回类型:
自身
- insert_n_curves_to_point_list(n, points)[source]¶
给定一个定义贝塞尔曲线(锚点和手柄)的k个点数组,返回精确定义k + n条贝塞尔曲线的点。
- 参数:
n (int) – 所需曲线的数量。
points (BezierPathLike) – 起始点。
- 返回类型:
生成的点。
- point_from_proportion(alpha)[source]¶
获取
VMobject
路径上按比例的点。- 参数:
alpha (float) –
VMobject
路径上的比例。- 返回:
VMobject
上的点。- 返回类型:
numpy.ndarray
- 抛出:
ValueError – 如果
alpha
不在0到1之间。Exception – 如果
VMobject
没有点。
示例
示例:PointFromProportion ¶
from manim import * class PointFromProportion(Scene): def construct(self): line = Line(2*DL, 2*UR) self.add(line) colors = (RED, BLUE, YELLOW) proportions = (1/4, 1/2, 3/4) for color, proportion in zip(colors, proportions): self.add(Dot(color=color).move_to( line.point_from_proportion(proportion) ))
class PointFromProportion(Scene): def construct(self): line = Line(2*DL, 2*UR) self.add(line) colors = (RED, BLUE, YELLOW) proportions = (1/4, 1/2, 3/4) for color, proportion in zip(colors, proportions): self.add(Dot(color=color).move_to( line.point_from_proportion(proportion) ))
- pointwise_become_partial(vmobject, a, b)[source]¶
给定第二个
VMobject
vmobject
、下界a
和上界b
,修改此VMobject
的点,使其与由vmobject.points
描述的贝塞尔样条曲线在参数t
介于a和
b
之间的部分相匹配。
- proportion_from_point(point)[source]¶
返回给定点在
VMobject
路径上的比例。- 参数:
point (Point3DLike) – 点的笛卡尔坐标,该点可能在
VMobject
上,也可能不在。- 返回:
VMobject
路径上的比例。- 返回类型:
浮点数
- 抛出:
ValueError – 如果
point
不在曲线上。Exception – 如果
VMobject
没有点。
- resize_points(new_length, resize_func=<function resize_array>)[source]¶
调整锚点和手柄数组的大小以达到指定大小。
- 参数:
new_length (int) – 新的(总)点数。
resize_func (Callable[[Point3D_Array, int], Point3D_Array]) – 一个将Numpy数组(点)和整数(目标大小)映射到Numpy数组的函数。默认实现基于Numpy的
resize
函数。
- 返回类型:
自身
- reverse_direction()[source]¶
通过反转点顺序来反转点方向。
- 返回:
返回自身。
- 返回类型:
示例
示例:ChangeOfDirection ¶
from manim import * class ChangeOfDirection(Scene): def construct(self): ccw = RegularPolygon(5) ccw.shift(LEFT) cw = RegularPolygon(5) cw.shift(RIGHT).reverse_direction() self.play(Create(ccw), Create(cw), run_time=4)
class ChangeOfDirection(Scene): def construct(self): ccw = RegularPolygon(5) ccw.shift(LEFT) cw = RegularPolygon(5) cw.shift(RIGHT).reverse_direction() self.play(Create(ccw), Create(cw), run_time=4)
- rotate(angle, axis=array([0., 0., 1.]), about_point=None, **kwargs)[source]¶
围绕某个点旋转
Mobject
。- 参数:
angle (float)
axis (Vector3D)
about_point (Point3DLike | None)
- 返回类型:
自身
- rotate_sheen_direction(angle, axis=array([0., 0., 1.]), family=True)[source]¶
旋转所施加光泽的方向。
- 参数:
angle (float) – 光泽方向旋转的角度。
axis (Vector3D) – 旋转轴。
家族 (bool)
- 返回类型:
自身
示例
常规用法
Circle().set_sheen_direction(UP).rotate_sheen_direction(PI)
- scale(scale_factor, scale_stroke=False, **kwargs)[source]¶
按比例因子缩放大小。
默认行为是围绕vmobject的中心进行缩放。
- 参数:
scale_factor (float) – 缩放因子\(\alpha\)。如果\(0 < |\alpha| < 1\),mobject将缩小;如果\(|\alpha| > 1\),它将增长。此外,如果\(\alpha < 0\),mobject也将翻转。
scale_stroke (bool) – 布尔值,确定对象缩放时其轮廓是否也缩放。如果启用,一个2像素轮廓的对象按0.5倍缩放后,其轮廓将变为1像素。
kwargs – 传递给
scale()
的额外关键字参数。
- 返回:
自身
- 返回类型:
示例
示例: MobjectScaleExample ¶
from manim import * class MobjectScaleExample(Scene): def construct(self): c1 = Circle(1, RED).set_x(-1) c2 = Circle(1, GREEN).set_x(1) vg = VGroup(c1, c2) vg.set_stroke(width=50) self.add(vg) self.play( c1.animate.scale(.25), c2.animate.scale(.25, scale_stroke=True) )
class MobjectScaleExample(Scene): def construct(self): c1 = Circle(1, RED).set_x(-1) c2 = Circle(1, GREEN).set_x(1) vg = VGroup(c1, c2) vg.set_stroke(width=50) self.add(vg) self.play( c1.animate.scale(.25), c2.animate.scale(.25, scale_stroke=True) )
另请参阅
move_to()
- scale_handle_to_anchor_distances(factor)[source]¶
如果给定控制点H及其相关锚点A之间的距离为d,则将H更改为距离A的factor*d,但A到H的连线不改变。这主要在应用(可微分)函数时有用,以保留切线属性。可以先将所有控制点拉近其锚点,应用函数后再将它们推回。
- 参数:
factor (float) – 用于缩放的因子。
- 返回:
自身
- 返回类型:
- set_anchors_and_handles(anchors1, handles1, handles2, anchors2)[source]¶
给定两组锚点和控制点,处理它们以将其设置为VMobject的锚点和控制点。
anchors1[i]、handles1[i]、handles2[i] 和 anchors2[i] 定义了 vmobject 的第 i 条贝塞尔曲线。这里有四个硬编码的参数,这是一个问题,因为它使得每条三次曲线的点数无法改变,始终为 4 个(两个锚点和两个手柄)。
- 返回:
自身
- 返回类型:
- 参数:
anchors1 (Point3DLike_Array)
handles1 (Point3DLike_Array)
handles2 (Point3DLike_Array)
anchors2 (Point3DLike_Array)
- set_cap_style(cap_style)[source]¶
设置
VMobject
的端点样式。- 参数:
cap_style (CapStyleType) – 要设置的端点样式。有关选项,请参阅
CapStyleType
。- 返回:
自身
- 返回类型:
示例
示例:CapStyleExample ¶
from manim import * class CapStyleExample(Scene): def construct(self): line = Line(LEFT, RIGHT, color=YELLOW, stroke_width=20) line.set_cap_style(CapStyleType.ROUND) self.add(line)
class CapStyleExample(Scene): def construct(self): line = Line(LEFT, RIGHT, color=YELLOW, stroke_width=20) line.set_cap_style(CapStyleType.ROUND) self.add(line)
- set_color(color, family=True)[source]¶
条件是一个函数,它接受一个参数 (x, y, z)。这里它只是递归地作用于子对象,但在子类中,这应该根据颜色的内部工作原理进一步实现。
- 参数:
color (ParsableManimColor)
家族 (bool)
- 返回类型:
自身
- set_fill(color=None, opacity=None, family=True)[source]¶
设置
VMobject
的填充颜色和填充不透明度。- 参数:
color (ParsableManimColor | None) –
VMobject
的填充颜色。opacity (float | None) –
VMobject
的填充不透明度。family (bool) – 如果为
True
,所有子对象(submobjects)的填充颜色也会被设置。
- 返回:
自身
- 返回类型:
示例
示例:SetFill ¶
from manim import * class SetFill(Scene): def construct(self): square = Square().scale(2).set_fill(WHITE,1) circle1 = Circle().set_fill(GREEN,0.8) circle2 = Circle().set_fill(YELLOW) # No fill_opacity circle3 = Circle().set_fill(color = '#FF2135', opacity = 0.2) group = Group(circle1,circle2,circle3).arrange() self.add(square) self.add(group)
class SetFill(Scene): def construct(self): square = Square().scale(2).set_fill(WHITE,1) circle1 = Circle().set_fill(GREEN,0.8) circle2 = Circle().set_fill(YELLOW) # No fill_opacity circle3 = Circle().set_fill(color = '#FF2135', opacity = 0.2) group = Group(circle1,circle2,circle3).arrange() self.add(square) self.add(group)
另请参阅
set_style()
- set_points_as_corners(points)[source]¶
给定一个点数组,将其设置为
VMobject
的角点。为了实现这一点,该算法将手柄与锚点对齐,使得所得的贝塞尔曲线将成为两个锚点之间的线段。
- 参数:
points (Point3DLike_Array) – 将被设置为顶点的点数组。
- 返回:
VMobject 本身,在将新点设置为顶点之后。
- 返回类型:
示例
示例:PointsAsCornersExample ¶
from manim import * class PointsAsCornersExample(Scene): def construct(self): corners = ( # create square UR, UL, DL, DR, UR, # create crosses DL, UL, DR ) vmob = VMobject(stroke_color=RED) vmob.set_points_as_corners(corners).scale(2) self.add(vmob)
class PointsAsCornersExample(Scene): def construct(self): corners = ( # create square UR, UL, DL, DR, UR, # create crosses DL, UL, DR ) vmob = VMobject(stroke_color=RED) vmob.set_points_as_corners(corners).scale(2) self.add(vmob)
- set_sheen(factor, direction=None, family=True)[source]¶
从一个方向应用颜色渐变。
- 参数:
factor (float) – 要应用的亮度/渐变程度。如果为负,渐变从黑色开始;如果为正,渐变从白色开始并变为当前颜色。
direction (Vector3D | None) – 应用渐变的方向。
家族 (bool)
- 返回类型:
自身
示例
示例:SetSheen ¶
from manim import * class SetSheen(Scene): def construct(self): circle = Circle(fill_opacity=1).set_sheen(-0.3, DR) self.add(circle)
class SetSheen(Scene): def construct(self): circle = Circle(fill_opacity=1).set_sheen(-0.3, DR) self.add(circle)
- set_sheen_direction(direction, family=True)[source]¶
设置所施加光泽的方向。
- 参数:
direction (Vector3D) – 应用渐变的方向。
家族 (bool)
- 返回类型:
自身
示例
常规用法
Circle().set_sheen_direction(UP)
- start_new_path(point)[source]¶
将一个
point
添加到VMobject.points
,它将作为给定点路径中新贝塞尔曲线的起点。如果在VMobject.points
的末尾存在未完成的曲线,则通过根据需要多次添加最后一条贝塞尔曲线的起始锚点来完成它。- 参数:
point (Point3DLike) – 要添加到
VMobject.points
的一个 3D 点。- 返回:
VMobject 本身,在添加
point
并开始一条新曲线之后。- 返回类型: