Interactive

MotionMobject

class manimlib.mobject.interactive.MotionMobject(mobject: manimlib.mobject.mobject.Mobject, **kwargs)

可以用鼠标拖拽移动的物件

传入一个 mobject 将这个物件封装成可以用鼠标拖动的

Button

class manimlib.mobject.interactive.Button(mobject: Mobject, on_click: Callable[[Mobject]], **kwargs)

按钮

传入一个 mobject,并注册一个 on_click 方法

on_click 方法的参数列表中包含一个 mobject,该响应函数需要使用者自行定义

ControlMobject

class manimlib.mobject.interactive.ControlMobject(value: float, *mobjects: manimlib.mobject.mobject.Mobject, **kwargs)

变量控制器(以下几个类的基类)

value 作为实例的成员变量,mobjects 作为窗口中可以看到的物件

set_value(value: float)

设置变量控制器的值

EnableDisableButton

class manimlib.mobject.interactive.EnableDisableButton(value: bool = True, **kwargs)

启用/禁用按钮

传入一个 boolean 值,作为它的变量;以矩形为按钮

  • rect_kwargs 控制矩形的长、宽、透明度
    • width : 宽度

    • height : 高度

    • fill_opacity : 透明度

  • enable_color : 启用时颜色

  • disable_color : 禁用时颜色

Checkbox

class manimlib.mobject.interactive.Checkbox(value: bool = True, **kwargs)

复选框

功能与 启用/禁用按钮 类似

  • checkmark_kwargs : 控制✔️外形的参数

  • cross_kwargs : 控制❌外形的参数

LinearNumberSlider

class manimlib.mobject.interactive.LinearNumberSlider(value: float = 0, **kwargs)

线性滑动条

传入一个初始值,其他在参数中给出

  • min_value : 最小值

  • max_value : 最大值

  • step : 步进

  • rounded_rect_kwargs : 滑动条外形参数

  • circle_kwargs : 滑块外形参数

ColorSliders

class manimlib.mobject.interactive.ColorSliders(**kwargs)

RGBA 颜色滑动条

创建后包含 RGBA 四个滑动条,分别对应 RGBA 值

get_picked_color() → str

获取当前选色器颜色的 16 进制(不包含透明度)

get_picked_opacity() → float

获取当前选色器颜色透明度

get_value() → np.ndarary

获取 RGBA 值

set_value(r: float, g: float, b: float, a: float)

设置 RGBA 值

Textbox

class manimlib.mobject.interactive.Textbox(value: str = '', **kwargs)

文本框

  • box_kwargs : 文本框外框参数

  • text_kwargs : 文本参数

注意:初值不要为空字符串

on_key_press(mob: manimlib.mobject.mobject.Mobject, event_data: dict) → bool | None

键盘按下响应

ControlPanel

class manimlib.mobject.interactive.ControlPanel(*controls: manimlib.mobject.interactive.ControlMobject, **kwargs)

控制面板

传入一些变量控制器,将它们放在控制面板上

这样整个控制面板就像一个“抽屉”,panel 为抽屉本体,opener 为抽屉的把手

可以用鼠标点击拖拽/鼠标滚轮来移动控制面板

  • panel_kwargs主面板参数
    • width : 宽度

    • height : 高度

  • opener_kwargs把手参数
    • width : 宽度

    • height : 高度

    • fill_color : 填充色

    • fill_opacity : 透明度

  • opener_text_kwargs把手文字参数
    • text : 把手文本

    • font_size : 字号

add_controls(*new_controls: manimlib.mobject.interactive.ControlMobject) → None

添加新控制器

close_panel()

关闭控制面板

open_panel()

打开控制面板

remove_controls(*controls_to_remove: manimlib.mobject.interactive.ControlMobject) → None

移除控制器