数学物品Mobject

MK做了一个关于常用 Mobject 的方法的视频: 〔manim教程〕第一讲 物体的位置与坐标变换

Mobject

class manimlib.mobject.mobject.Mobject(**kwargs)

数学物品(屏幕上的所有物体的超类)

add(*mobjects)

mobjects 添加到子物体中

add_background_rectangle(color='#000000', opacity=0.75, **kwargs)

添加一个背景矩形

add_background_rectangle_to_family_members_with_points(**kwargs)

给所有含有点的子物体添加背景矩形

add_background_rectangle_to_submobjects(**kwargs)

给所有子物体添加背景矩形

add_to_back(*mobjects)

mobjects 添加到子物体前面(覆盖关系在下)

add_updater(update_function, index=None, call_updater=True)

添加updater函数

align_on_border(direction, buff=0.5)

direction 这个边界对齐

align_to(mobject_or_point, direction=array([0.0, 0.0, 0.0]), alignment_vect=array([0.0, 1.0, 0.0]))

对齐

apply_complex_function(function, **kwargs)

施加一个复变函数

apply_function(function, **kwargs)

function 作用到所有点上

apply_function_to_position(function)

给物体所在的位置执行 function

apply_function_to_submobject_positions(function)

给所有子物体所在的位置执行 function

apply_matrix(matrix, **kwargs)

matrix 作用到所有点上

apply_points_function_about_point(func, about_point=None, about_edge=None)

about_point 为不变基准点,对所有点执行 func

arrange(direction=array([1.0, 0.0, 0.0]), center=True, **kwargs)

排列子物体

become(mobject, copy_submobjects=True)

用mobject替代当前物体

center()

放到画面中心

clear_updaters(recursive=True)

清空updater

digest_mobject_attrs()

确保所有mobjects属性都包含在submobjects列表中

fade(darkness=0.5, family=True)

变暗

fade_to(color, alpha, family=True)

根据alpha在当前颜色和color之间插值作为颜色

flip(axis=array([0.0, 1.0, 0.0]), **kwargs)

axis 为轴翻转180度

generate_target(use_deepcopy=False)

通过复制自身作为自己的target,生成一个target属性

get_bottom()

获取最下边的点

get_boundary_point(direction)

获取 direction 方向上的边界点

get_center()

获取中心

get_center_of_mass()

获取所有点的质心

get_corner(direction)

获取 direction 边角的点

get_critical_point(direction)

获取 direction 上的关键点

get_depth()

获取深度

get_edge_center(direction)

获取 direction 的中点

get_height()

获取高度

get_image(camera=None)

只获取本物体的图片

get_left()

获取最左边的点

get_nadir()

获取最里边的点

get_pieces(n_pieces)

将物体拆成 n_pieces 个部分,便于部分解决3D中透视问题

get_right()

获取最右边的点

get_top()

获取最上边的点

get_width()

获取宽度

get_zenith()

获取最外边的点

interpolate(mobject1, mobject2, alpha, path_func=<function straight_path>)

在mobject1和mobject2之间的点在path_arc路径上插值

is_off_screen()

是否在画面上,返回bool值

length_over_dim(dim)

获取 dim 维度上的长度

match_color(mobject)

将颜色和mobject统一

match_depth(mobject, **kwargs)

dim 维度伸缩到和 mobject 相同深度

match_dim_size(mobject, dim, **kwargs)

dim 维度伸缩到和 mobject 相同

match_height(mobject, **kwargs)

dim 维度伸缩到和 mobject 相同高度

match_updaters(mobject)

mobject 的updater加到本物体身上(之前的清除)

match_width(mobject, **kwargs)

dim 维度伸缩到和 mobject 相同宽度

move_to(point_or_mobject, aligned_edge=array([0.0, 0.0, 0.0]), coor_mask=array([1, 1, 1]))

移动到 point_or_mobject 的位置

next_to(mobject_or_point, direction=array([1.0, 0.0, 0.0]), buff=0.25, aligned_edge=array([0.0, 0.0, 0.0]), submobject_to_align=None, index_of_submobject_to_align=None, coor_mask=array([1, 1, 1]))

放到和 mobject_or_point 旁边

put_start_and_end_on(start, end)

把物体点集中的起点和终点通过旋转缩放放在 startend

remove(*mobjects)

从子物体中删除 mobjects

remove_updater(update_function)

移除updater函数(只对有名函数有效)

repeat(count)

把所有点重复 count 遍,可以使Transform更顺滑

replace(mobject, dim_to_match=0, stretch=False)

放到和 mobject 的位置,并且大小相同

restore()

恢复为 saved_state 的状态

resume_updating(recursive=True)

重新保持更新

reverse_points()

倒序排列所有点

rotate(angle, axis=array([0.0, 0.0, 1.0]), **kwargs)

axis 为方向, angle 为角度旋转,kwargs 中可传入 about_point

rotate_about_origin(angle, axis=array([0.0, 0.0, 1.0]), axes=[])

以原点为轴,axis 为方向旋转 angle

save_image(name=None)

保存只含本物体的图片

save_state(use_deepcopy=False)

保留状态,即复制一份作为 saved_state 属性

scale(scale_factor, **kwargs)

放大(缩小)到原来的 scale_factorkwargs 中可以传入 about_point/about_edge

set_color(color='#FFFF00', family=True)

给所有子物体设置颜色

set_color_by_gradient(*colors)

给子物体梯度上色

set_colors_by_radial_gradient(center=None, radius=1, inner_color='#FFFFFF', outer_color='#000000')

给子物体按照距离上色

shift(*vectors)

将所有 vectors 相加后进行相对移动

shift_onto_screen(**kwargs)

确保在画面中

show(camera=None)

显示本物体的图片

sort(point_to_num_func=<function Mobject.<lambda>>, submob_func=None)

给子物体排序

stretch(factor, dim, **kwargs)

dim 维度伸缩到原来的 factor

surround(mobject, dim_to_match=0, stretch=False, buff=0.25)

环绕者 mobject

suspend_updating(recursive=True)

暂停更新

to_corner(corner=array([- 1.0, - 1.0, 0.0]), buff=0.5)

corner 这个角落对齐

to_edge(edge=array([- 1.0, 0.0, 0.0]), buff=0.5)

edge 这个边对齐

to_original_color()

设置为主颜色

wag(direction=array([1.0, 0.0, 0.0]), axis=array([0.0, - 1.0, 0.0]), wag_factor=1.0)

沿 axisdirection 方向摇摆 wag_factor

Group

class manimlib.mobject.mobject.Group(*mobjects, **kwargs)

和Mobject相同,用于存放一些子物体