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