Vectorized Mobject

VMobjectMobject 的子类,使用贝塞尔曲线来表示物体

VMobject

class manimlib.mobject.types.vectorized_mobject.VMobject(**kwargs)

初始化样式,VMobject 的样式有以下

  • fill 填充样式

    • 颜色: fill_colorcolor

    • 不透明度: fill_opacity

  • stroke 线条样式

    • 颜色: stroke_colorcolor

    • 宽度: stroke_width

    • 不透明度: stroke_opacity

  • gloss 光泽

  • shadow 阴影

其中,opacity, width 等属性均可以为一个列表,在渲染时会按照列表对其进行补间

add_cubic_bezier_curve_to(handle1, handle2, anchor)

添加一条三阶贝塞尔曲线(可能不准)

add_line_to(point)

添加一条直线

add_quadratic_bezier_curve_to(handle, anchor)

添加一条二阶贝塞尔曲线

add_smooth_curve_to(point)

添加一条平滑的曲线

align_points(vmobject)

对齐锚点,主要用于 Transform 的内部实现

apply_function(function, make_smooth=False, **kwargs)

对物件执行 function 函数

change_anchor_mode(mode)

改变曲线连接模式

  • jagged : 折线

  • approx_smooth : 大致平滑

  • true_smooth : 真正平滑

close_path()

用直线闭合该曲线

consider_points_equals(p0, p1)

判断两点是否大致重合

fade(darkness=0.5, recurse=True)

变暗

flip(*args, **kwargs)

绕 axis 轴翻转

get_anchors_and_handles()

获取二阶贝塞尔曲线的锚点和手柄

get_area_vector()

返回一个向量,其长度为锚点形成的多边形所围成的面积,根据右手定则指向垂直于该多边形的方向。

get_color()

获取颜色

get_fill_color()

获取填充色

如果是渐变染色,则只会返回颜色列表的第一个

get_fill_opacity()

获取透明度

如果是渐变透明度,则只会返回透明度列表的第一个

get_last_point()

获取路径最后一个锚点

get_nth_curve_function(n)

获取组成曲线的第 n 条贝塞尔曲线函数

get_nth_curve_points(n)

获取组成曲线的第 n 条贝塞尔曲线的锚点

get_num_curves()

获取组成曲线的贝塞尔曲线数量

get_opacity()

获取透明度

get_shader_wrapper_list()

获取 shader 包装列表

get_style()

获取样式字典

get_subcurve(a, b)

获取路径上百分比为 a 到 b 的部分

get_unit_normal(recompute=False)

获取单位法向量

insert_n_curves(n, recurse=True)

将物件切割成 n 个小段的拼接,常用于复杂函数变换

interpolate(mobject1, mobject2, alpha, *args, **kwargs)

mobject1 到 mobject2 百分比为 alpha 的补间

is_closed()

判断曲线是否闭合

make_approximately_smooth()

使曲线变得大致平滑

这个方法不像 make_smooth,本方法不会使锚点数量加倍,与此同时带来了无法达到完美平滑的问题

但是这个方法在锚点采样间隔较小时会有比较好的效果,所以有时会更实用

make_jagged()

使曲线模式变为折线

make_smooth()

使曲线变平滑

这个方法会使得锚点数量加倍,所以 不要重复使用,否则锚点数量会 指数爆炸

同时,应用 Transform 时有可能会出现奇怪的曲线

match_style(vmobject, recurse=True)

将自身样式与 vmobject 匹配

point_from_proportion(alpha)

在整条路径上占比为 alpha 处的点

pointwise_become_partial(vmobject, a, b)

返回 vmobject 上百分比从 a 到 b 的部分曲线的拷贝

refresh_triangulation()

重置三角剖分

set_anchors_and_handles(anchors1, handles, anchors2)

设置二阶贝塞尔曲线的锚点和手柄

set_color(color, recurse=True)

设置颜色

set_fill(color=None, opacity=None, recurse=True)

设置填充色

set_opacity(opacity, recurse=True)

设置透明度

set_points(points)

设置物件的锚点,传入的数组必须为 Nx3

set_points_as_corners(points)

传入一个 Nx3 的数组,绘制顺序连接的折线

set_points_smoothly(points, true_smooth=False)

用平滑的曲线连接传入的系列点

set_rgba_array(rgba_array, name=None, recurse=False)

将 rgbas 成员变量设置为指定的值

set_stroke(color=None, width=None, opacity=None, background=None, recurse=True)

设置轮廓线

set_style(fill_color=None, fill_opacity=None, fill_rgba=None, stroke_color=None, stroke_opacity=None, stroke_rgba=None, stroke_width=None, stroke_background=True, gloss=None, shadow=None, recurse=True)

整体设置样式

start_new_path(point)

开启一个新的路径

VGroup

class manimlib.mobject.types.vectorized_mobject.VGroup(*vmobjects, **kwargs)

VMobject 相同,主要用作包含一些子物体(必须都是 VMobject)

初始化样式,VMobject 的样式有以下

  • fill 填充样式

    • 颜色: fill_colorcolor

    • 不透明度: fill_opacity

  • stroke 线条样式

    • 颜色: stroke_colorcolor

    • 宽度: stroke_width

    • 不透明度: stroke_opacity

  • gloss 光泽

  • shadow 阴影

其中,opacity, width 等属性均可以为一个列表,在渲染时会按照列表对其进行补间

VectorizedPoint

class manimlib.mobject.types.vectorized_mobject.VectorizedPoint(location=array([0.0, 0.0, 0.0]), **kwargs)

以 VMobject 形式存在的单个点

似乎仅用于表示坐标

CurvesAsSubmobjects

class manimlib.mobject.types.vectorized_mobject.CurvesAsSubmobjects(vmobject, **kwargs)

传入一个 VMobject 实例(物体),将其所有段曲线作为子物体(一个子物体为一条曲线)

初始化样式,VMobject 的样式有以下

  • fill 填充样式

    • 颜色: fill_colorcolor

    • 不透明度: fill_opacity

  • stroke 线条样式

    • 颜色: stroke_colorcolor

    • 宽度: stroke_width

    • 不透明度: stroke_opacity

  • gloss 光泽

  • shadow 阴影

其中,opacity, width 等属性均可以为一个列表,在渲染时会按照列表对其进行补间

DashedVMobject

class manimlib.mobject.types.vectorized_mobject.DashedVMobject(vmobject, **kwargs)

传入一个 VMobject 实例(物体),将其所有曲线全部设为虚线

  • 传入 num_dashed 表示分为多少段虚线

  • 传入 positive_space_ratio 表示虚实比例

初始化样式,VMobject 的样式有以下

  • fill 填充样式

    • 颜色: fill_colorcolor

    • 不透明度: fill_opacity

  • stroke 线条样式

    • 颜色: stroke_colorcolor

    • 宽度: stroke_width

    • 不透明度: stroke_opacity

  • gloss 光泽

  • shadow 阴影

其中,opacity, width 等属性均可以为一个列表,在渲染时会按照列表对其进行补间