Vectorized Mobject¶
VMobject
是
Mobject
的子类,使用贝塞尔曲线来表示物体
VMobject¶
- class manimlib.mobject.types.vectorized_mobject.VMobject(**kwargs)¶
初始化样式,VMobject 的样式有以下
fill
填充样式颜色:
fill_color
或color
不透明度:
fill_opacity
stroke
线条样式颜色:
stroke_color
或color
宽度:
stroke_width
不透明度:
stroke_opacity
gloss
光泽shadow
阴影reflectiveness
反光度
其中, color, opacity, width 属性均可以为一个列表,在渲染时会按照列表对其进行补间
- add_cubic_bezier_curve_to(handle1: npt.ArrayLike, handle2: npt.ArrayLike, anchor: npt.ArrayLike)¶
添加一条三阶贝塞尔曲线(可能不准)
- add_line_to(point: ndarray)¶
添加一条直线
- add_quadratic_bezier_curve_to(handle: ndarray, anchor: ndarray)¶
添加一条二阶贝塞尔曲线
- add_smooth_curve_to(point: ndarray)¶
添加一条平滑的曲线
- apply_function(function: Callable[[np.ndarray], np.ndarray], make_smooth: bool = False, **kwargs)¶
对物件执行 function 函数
- change_anchor_mode(mode: str)¶
改变曲线连接模式
jagged
: 折线approx_smooth
: 大致平滑true_smooth
: 真正平滑
- close_path()¶
用直线闭合该曲线
- consider_points_equals(p0: ndarray, p1: ndarray) bool ¶
判断两点是否大致重合
- fade(darkness: float = 0.5, recurse: bool = True)¶
变暗
- flip(axis: ndarray = array([0., 1., 0.]), **kwargs)¶
绕 axis 轴翻转
- get_anchors_and_handles() list[ndarray] ¶
获取二阶贝塞尔曲线的锚点和手柄
- get_area_vector() ndarray ¶
返回一个向量,其长度为锚点形成的多边形所围成的面积,根据右手定则指向垂直于该多边形的方向。
- get_color() str ¶
获取颜色
- get_fill_color() str ¶
获取填充色
如果是渐变染色,则只会返回颜色列表的第一个
- get_fill_opacity() float ¶
获取透明度
如果是渐变透明度,则只会返回透明度列表的第一个
- get_last_point() ndarray ¶
获取路径最后一个锚点
- get_nth_curve_function(n: int) Callable[[float], np.ndarray] ¶
获取组成曲线的第 n 条贝塞尔曲线函数
- get_nth_curve_points(n: int) ndarray ¶
获取组成曲线的第 n 条贝塞尔曲线的锚点
- get_num_curves() int ¶
获取组成曲线的贝塞尔曲线数量
- get_opacity() float ¶
获取透明度
- get_shader_wrapper_list() list[ShaderWrapper] ¶
获取 shader 包装列表
- get_style()¶
获取样式字典
- get_unit_normal(recompute: bool = False) ndarray ¶
获取单位法向量
- insert_n_curves(n: int, recurse: bool = True)¶
将物件切割成 n 个小段的拼接,常用于复杂函数变换
- interpolate(mobject1: VMobject, mobject2: VMobject, alpha: float, *args, **kwargs)¶
mobject1 到 mobject2 百分比为 alpha 的补间
- is_closed() bool ¶
判断曲线是否闭合
- make_approximately_smooth()¶
使曲线变得大致平滑
这个方法不像
make_smooth
,本方法不会使锚点数量加倍,与此同时带来了无法达到完美平滑的问题但是这个方法在锚点采样间隔较小时会有比较好的效果,所以有时会更实用
- make_jagged()¶
使曲线模式变为折线
- make_smooth()¶
使曲线变平滑
这个方法会使得锚点数量加倍,所以 不要重复使用,否则锚点数量会 指数爆炸
同时,应用 Transform 时有可能会出现奇怪的曲线
- point_from_proportion(alpha: float) ndarray ¶
在整条路径上占比为 alpha 处的点
- quick_point_from_proportion(alpha: float) ndarray ¶
在整条路径上占比为 alpha 处的点
这个方法建立在假设所有弧线长度相同的条件下,因此可能有一些误差,但是性能更好
- refresh_triangulation()¶
重置三角剖分
- set_anchors_and_handles(anchors1: ndarray, handles: ndarray, anchors2: ndarray)¶
设置二阶贝塞尔曲线的锚点和手柄
- set_backstroke(color: ManimColor | Iterable[ManimColor] = '#000000', width: float | Iterable[float] = 3, background: bool = True)¶
设置背景轮廓线(轮廓线衬于填充色下方)
- set_color(color: ManimColor | Iterable[ManimColor] | None, opacity: float | Iterable[float] | None = None, recurse: bool = True)¶
设置颜色
- set_data(data: dict)¶
设置成员数据,以字典形式传入
- set_fill(color: ManimColor | Iterable[ManimColor] | None = None, opacity: float | Iterable[float] | None = None, recurse: bool = True)¶
设置填充色
- set_opacity(opacity: float | Iterable[float] | None, recurse: bool = True)¶
设置透明度
- set_points(points: npt.ArrayLike)¶
设置物件的锚点,传入的数组必须为 Nx3
- set_points_as_corners(points: Iterable[np.ndarray])¶
传入一个 Nx3 的数组,绘制顺序连接的折线
- set_points_smoothly(points: Iterable[np.ndarray], true_smooth: bool = False)¶
用平滑的曲线连接传入的系列点
- set_rgba_array(rgba_array: npt.ArrayLike, name: str = None, recurse: bool = False)¶
将 rgbas 成员变量设置为指定的值
- set_stroke(color: ManimColor | Iterable[ManimColor] | None = None, width: float | Iterable[float] | None = None, opacity: float | Iterable[float] | None = None, background: bool | None = None, recurse: bool = True)¶
设置轮廓线(轮廓线浮于填充色上方)
- set_style(fill_color: ManimColor | Iterable[ManimColor] | None = None, fill_opacity: float | Iterable[float] | None = None, fill_rgba: npt.ArrayLike | None = None, stroke_color: ManimColor | Iterable[ManimColor] | None = None, stroke_opacity: float | Iterable[float] | None = None, stroke_rgba: npt.ArrayLike | None = None, stroke_width: float | Iterable[float] | None = None, stroke_background: bool = True, reflectiveness: float | None = None, gloss: float | None = None, shadow: float | None = None, recurse: bool = True)¶
整体设置样式
- start_new_path(point: ndarray)¶
开启一个新的路径
VGroup¶
- class manimlib.mobject.types.vectorized_mobject.VGroup(*vmobjects: VMobject, **kwargs)¶
和
VMobject
相同,主要用作包含一些子物体(必须都是 VMobject)初始化样式,VMobject 的样式有以下
fill
填充样式颜色:
fill_color
或color
不透明度:
fill_opacity
stroke
线条样式颜色:
stroke_color
或color
宽度:
stroke_width
不透明度:
stroke_opacity
gloss
光泽shadow
阴影reflectiveness
反光度
其中, color, opacity, width 属性均可以为一个列表,在渲染时会按照列表对其进行补间
VectorizedPoint¶
- class manimlib.mobject.types.vectorized_mobject.VectorizedPoint(location: ndarray = array([0., 0., 0.]), **kwargs)¶
以 VMobject 形式存在的单个点
似乎仅用于表示坐标
CurvesAsSubmobjects¶
- class manimlib.mobject.types.vectorized_mobject.CurvesAsSubmobjects(vmobject: VMobject, **kwargs)¶
传入一个 VMobject 实例(物体),将其所有段曲线作为子物体(一个子物体为一条曲线)
初始化样式,VMobject 的样式有以下
fill
填充样式颜色:
fill_color
或color
不透明度:
fill_opacity
stroke
线条样式颜色:
stroke_color
或color
宽度:
stroke_width
不透明度:
stroke_opacity
gloss
光泽shadow
阴影reflectiveness
反光度
其中, color, opacity, width 属性均可以为一个列表,在渲染时会按照列表对其进行补间
DashedVMobject¶
- class manimlib.mobject.types.vectorized_mobject.DashedVMobject(vmobject: VMobject, **kwargs)¶
传入一个 VMobject 实例(物体),将其所有曲线全部设为虚线
传入
num_dashed
表示分为多少段虚线传入
positive_space_ratio
表示虚实比例
初始化样式,VMobject 的样式有以下
fill
填充样式颜色:
fill_color
或color
不透明度:
fill_opacity
stroke
线条样式颜色:
stroke_color
或color
宽度:
stroke_width
不透明度:
stroke_opacity
gloss
光泽shadow
阴影reflectiveness
反光度
其中, color, opacity, width 属性均可以为一个列表,在渲染时会按照列表对其进行补间