GeoJAnimManager¶
⚠ 文档已过时
GeoJAnimManager 负责管理 JAnim VItem 和几何对象之间的自动映射
由于 JAnim 不同版本在 DataUpdater 上的行为不同,使用方式也会有所区别
旧版本 janim <= 2.3.0 创建机制¶
物件创建时,为 VItem 动画物件创建 DataUpdater。由于框架限制,DataUpdater 将被挂载在一个空对象而非动画对象本体上
对于叶子节点,
DataUpdater将读取叶子节点的组件信息,应用到几何对象,几何对象自行逐层更新对于非叶子节点,
DataUpdater将读取几何对象的参数计算结果,将其应用至动画对象。
新版本 janim > 2.3.0 创建机制¶
等 jk 大佬重构
初始化¶
__init__(self, timeline: Optional[Timeline] = None)¶
初始化动画管理器,可以提供当前场景的时间轴以便于添加 DataUpdater
创建 VItems 并自动注册 DataUpdater¶
create_vitems_with_add_updater(self, objs: Sequence[Union[Point, Line, Circle]], duration: Number, timeline: Optional[Timeline] = None, **kwargs)¶
创建 VItems ,并为每个创建好的 VItem 以指定时长注册 DataUpdater 到动画中
参数:
objs(Union[Point, Line, Circle]): 将要创建动画物件的几何对象duration(Number):DataUpdater持续时间,建议与动画时长相等timeline(Timeline): 动画时间轴,如果初始化时未传入则需在此传入kwargs: 将要传递给timeline.play()的其它字典参数
从几何对象创建 Vitems¶
create_vitem_from_geometry(self, obj: Union[Point, Line, Circle])¶
通过几何对象创建动画图形对象,并自动为该对象增加 DataUpdater
从几何对象列表创建 Vitems¶
create_vitems_from_geometry(self, objs: Sequence[Union[Point, Line, Circle]])¶
传入几何对象列表,该函数将调用 create_vitem_from_geometry 创建动画图形对象
注册更新器¶
register_updater(self, obj: BaseGeometry, vitem: VItem)¶
关联几何对象与动画物件,并注册 DataUpdater 以进行更新
设置几何对象更新错误行为¶
set_on_error_exec(self, exec: Union[None, Literal["vis", "stay"], Callable[[bool, BaseGeometry, VItem], None]] = "vis")¶
设置几何对象计算错误时的行为
几何对象通常会因为解不存在,或者偶发的精度问题等出现错误,并且错误会随依赖链条向下传播,通过该函数设置发生错误时的行为
exec:
"vis": 几何对象将隐藏可见,直到错误消失"stay": 几何对象将保持静止,直到错误消失(on_error: bool, obj: BaseGeometry, vitem: VItem) -> None: 自定义回调函数