强调¶
影片代码
import manimgx as m
class EmphasisHero(m.Scene):
def construct(self) -> None:
formula = m.MathTex("a^2", "+", "b^2", "=", "c^2", font_size=96)
self.add(formula)
self.play(m.Indicate(formula[0]))
self.play(m.Circumscribe(formula[2], color=m.YELLOW))
self.play(m.Flash(formula[4], color=m.YELLOW, flash_radius=0.8))
self.play(m.Wiggle(formula))
self.wait()
这些动画短暂地改变某个 mobject,然后将其恢复原状:当语音讲解它时,它们将观众的视线 引向它。
Indicate
¶
引起对一个 mobject 的注意:暂时放大并着色。
它生长至 scale_factor 倍大小并变为 color 颜色,然后恢复原状
(由 there_and_back 缓动)。
mobject要引起注意的 mobject。
scale_factor生长至其自身大小的多少倍。
color它所变成的颜色。
run_time动画播放时长,以秒为单位(默认 1)。
lag_ratiomobject 各部分如何交错:每个部分在其前一个部分开始后,经过其运行时长的该分数比例后开始 (默认 0:全部同时;1:一个接一个)。
rate_func动画进度如何随时间运行:一个从 [0, 1] 到 [0, 1] 的函数 (默认为
smooth;参见 rate functions)。reverse_rate_function是否反向运行动画(默认 False)。
name动画的名称。
remover动画结束时 mobject 是否离开场景 (默认 False)。
suspend_mobject_updating动画期间 mobject 的更新器是否在其下运行(默认 True):它们 持续作用于 mobject,每一帧显示动画应用于其结果。 若为 False,则它们作用于被动画的 mobject 本身。
introducer动画开始时 mobject 是否加入场景(默认 False); 否则若场景缺少它,play 在其开始时将其带入。
use_override若某 mobject 的类用另一个动画代替此动画播放,是否如此执行 (默认 True)。
还接受 变换关键字。
源码
manimgx\animation\motion.py
Circumscribe
¶
通过在其周围绘制一个边框来引起对一个 mobject 的注意。
该边框为距该 mobject buff 远的矩形或圆形,在其周围闪光
(ShowPassingFlash);使用 fade_in 时它淡入
然后被擦除,使用 fade_out 时它被绘制然后淡出,两者皆用时它淡入又淡出。
它在动画结束时消失。run_time 为该边框的时长(默认 1 秒);
其他选项作用于整体。
m.Circumscribe(mobject, shape=None, fade_in=False, fade_out=False, time_width=0.3, buff=SMALL_BUFF, color=PURE_YELLOW, stroke_width=DEFAULT_STROKE_WIDTH, **kwargs)
mobject要加边框的 mobject。
shapefade_in边框是否淡入。
fade_out边框是否淡出。
time_width当既不淡入也不淡出时,闪光段的长度,以边框长度的分数表示。
buff该 mobject 与边框之间的间距,以场景单位表示。
color边框的颜色。
stroke_width边框的宽度,以场景单位的百分之一为单位。
run_time动画播放时长,以秒为单位(默认 1)。
lag_ratiomobject 各部分如何交错:每个部分在其前一个部分开始后,经过其运行时长的该分数比例后开始 (默认 0:全部同时;1:一个接一个)。
rate_func动画进度如何随时间运行:一个从 [0, 1] 到 [0, 1] 的函数 (默认为
smooth;参见 rate functions)。reverse_rate_function是否反向运行动画(默认 False)。
name动画的名称。
remover动画结束时 mobject 是否离开场景 (默认 False)。
suspend_mobject_updating动画期间 mobject 的更新器是否在其下运行(默认 True):它们 持续作用于 mobject,每一帧显示动画应用于其结果。 若为 False,则它们作用于被动画的 mobject 本身。
introducer动画开始时 mobject 是否加入场景(默认 False); 否则若场景缺少它,play 在其开始时将其带入。
use_override若某 mobject 的类用另一个动画代替此动画播放,是否如此执行 (默认 True)。
还接受 动画关键字。
源码
manimgx\animation\motion.py
Flash
¶
从一个点闪出光线,如同光爆。
num_lines 条线,长度为 line_length,从距该点 flash_radius 处起始,
作为掠过的闪光(ShowPassingFlash)向外射出,
并在动画结束时消失。动画选项传递给每条线的闪光。
point闪光的起始点,或以其中心为起始点的 mobject。
line_length每条线的长度,以场景单位表示。
num_lines线的数量。
flash_radius线起始处距该点的距离,以场景单位表示。
line_stroke_width线的宽度,以场景单位的百分之一为单位。
color线的颜色。
time_width每条线的闪光窗口,以其长度的分数表示。
run_time动画播放时长,以秒为单位(默认 1)。
lag_ratiomobject 各部分如何交错:每个部分在其前一个部分开始后,经过其运行时长的该分数比例后开始 (默认 0:全部同时;1:一个接一个)。
rate_func动画进度如何随时间运行:一个从 [0, 1] 到 [0, 1] 的函数 (默认为
smooth;参见 rate functions)。reverse_rate_function是否反向运行动画(默认 False)。
name动画的名称。
remover动画结束时 mobject 是否离开场景 (默认 False)。
suspend_mobject_updating动画期间 mobject 的更新器是否在其下运行(默认 True):它们 持续作用于 mobject,每一帧显示动画应用于其结果。 若为 False,则它们作用于被动画的 mobject 本身。
introducer动画开始时 mobject 是否加入场景(默认 False); 否则若场景缺少它,play 在其开始时将其带入。
use_override若某 mobject 的类用另一个动画代替此动画播放,是否如此执行 (默认 True)。
还接受 动画关键字。
源码
manimgx\animation\motion.py
FocusOn
¶
将聚光灯收拢到一个点。
一个覆盖整个画面的透明圆盘收缩到 focus_point 上,在收拢过程中变为
color 颜色、opacity 不透明度,并在动画结束时消失;它跟随一个
移动的 mobject。运行 2 秒。
focus_point要聚焦的点,或要聚焦其中心的 mobject。
opacity圆盘在结束时的不透明度。
color圆盘的颜色。
run_time动画播放时长,以秒为单位(默认 1)。
lag_ratiomobject 各部分如何交错:每个部分在其前一个部分开始后,经过其运行时长的该分数比例后开始 (默认 0:全部同时;1:一个接一个)。
rate_func动画进度如何随时间运行:一个从 [0, 1] 到 [0, 1] 的函数 (默认为
smooth;参见 rate functions)。reverse_rate_function是否反向运行动画(默认 False)。
name动画的名称。
remover动画结束时 mobject 是否离开场景 (默认 False)。
suspend_mobject_updating动画期间 mobject 的更新器是否在其下运行(默认 True):它们 持续作用于 mobject,每一帧显示动画应用于其结果。 若为 False,则它们作用于被动画的 mobject 本身。
introducer动画开始时 mobject 是否加入场景(默认 False); 否则若场景缺少它,play 在其开始时将其带入。
use_override若某 mobject 的类用另一个动画代替此动画播放,是否如此执行 (默认 True)。
还接受 动画关键字。
源码
manimgx\animation\motion.py
Wiggle
¶
摇摆一个 mobject:在其膨胀又缩回的同时来回摆动。
它生长至 scale_value 倍大小再缩回,同时来回转动至多 rotation_angle,
共 n_wiggles 次摆动,绕其中心或给定的点进行。运行 2 秒。
m.Wiggle(mobject, scale_value=1.1, rotation_angle=0.01 * TAU, n_wiggles=6, scale_about_point=None, rotate_about_point=None, **kwargs)
mobject要摇摆的 mobject。
scale_value半程时生长至其自身大小的多少倍。
rotation_angle每个方向至多转过的角度,以弧度为单位。
n_wiggles摆动的次数。
scale_about_point生长所绕的点;None 表示其中心。
rotate_about_point转动所绕的点;None 表示其中心。
run_time动画播放时长,以秒为单位(默认 1)。
lag_ratiomobject 各部分如何交错:每个部分在其前一个部分开始后,经过其运行时长的该分数比例后开始 (默认 0:全部同时;1:一个接一个)。
rate_func动画进度如何随时间运行:一个从 [0, 1] 到 [0, 1] 的函数 (默认为
smooth;参见 rate functions)。reverse_rate_function是否反向运行动画(默认 False)。
name动画的名称。
remover动画结束时 mobject 是否离开场景 (默认 False)。
suspend_mobject_updating动画期间 mobject 的更新器是否在其下运行(默认 True):它们 持续作用于 mobject,每一帧显示动画应用于其结果。 若为 False,则它们作用于被动画的 mobject 本身。
introducer动画开始时 mobject 是否加入场景(默认 False); 否则若场景缺少它,play 在其开始时将其带入。
use_override若某 mobject 的类用另一个动画代替此动画播放,是否如此执行 (默认 True)。
还接受 动画关键字。
源码
manimgx\animation\motion.py
ShowPassingFlash
¶
沿一个 mobject 的路径闪过一段,从其起点到越过其终点。
一个长度为路径长度 time_width 的窗口沿该 mobject 移动,mobject 仅显示
位于窗口内的部分。该 mobject 在闪光期间加入场景并在结束时离开场景,
即使它之前就在场景中也是如此(若要保留原对象,请闪过其副本);
其路径在之后恢复完整。
mobject窗口沿其路径移动的 mobject。
time_width窗口的长度,以路径长度的分数表示。
run_time动画播放时长,以秒为单位(默认 1)。
lag_ratiomobject 各部分如何交错:每个部分在其前一个部分开始后,经过其运行时长的该分数比例后开始 (默认 0:全部同时;1:一个接一个)。
rate_func动画进度如何随时间运行:一个从 [0, 1] 到 [0, 1] 的函数 (默认为
smooth;参见 rate functions)。reverse_rate_function是否反向运行动画(默认 False)。
name动画的名称。
remover动画结束时 mobject 是否离开场景 (默认 False)。
suspend_mobject_updating动画期间 mobject 的更新器是否在其下运行(默认 True):它们 持续作用于 mobject,每一帧显示动画应用于其结果。 若为 False,则它们作用于被动画的 mobject 本身。
introducer动画开始时 mobject 是否加入场景(默认 False); 否则若场景缺少它,play 在其开始时将其带入。
use_override若某 mobject 的类用另一个动画代替此动画播放,是否如此执行 (默认 True)。
还接受 动画关键字。
源码
manimgx\animation\motion.py
ShowPassingFlashWithThinningStrokeWidth
¶
代码
import manimgx as m
class ShowPassingFlashWithThinningStrokeWidthExample(m.Scene):
def construct(self) -> None:
circle = m.Circle(radius=2.5, color=m.YELLOW, stroke_width=16)
self.add(circle.copy().set_stroke(m.GREY, width=4))
self.play(
m.ShowPassingFlashWithThinningStrokeWidth(
circle, time_width=0.5, run_time=2
)
)
沿一个 mobject 的路径闪过一段,其后拖着一条变细的尾。
n_segments 个该 mobject 副本的掠过闪光
(ShowPassingFlash)一同播放:它们的宽度
从无上升到该 mobject 的描边宽度,同时其窗口从 time_width 缩到无,
因此闪光在其头部最宽。副本在动画结束时消失,而该 mobject 本身保持原状。
动画选项传递给每个闪光。
vmobject闪光沿其路径移动的 mobject。
n_segments构成闪光的闪光数量。
time_width尾的长度,以路径长度的分数表示。
run_time动画播放时长,以秒为单位(默认 1)。
lag_ratiomobject 各部分如何交错:每个部分在其前一个部分开始后,经过其运行时长的该分数比例后开始 (默认 0:全部同时;1:一个接一个)。
rate_func动画进度如何随时间运行:一个从 [0, 1] 到 [0, 1] 的函数 (默认为
smooth;参见 rate functions)。reverse_rate_function是否反向运行动画(默认 False)。
name动画的名称。
remover动画结束时 mobject 是否离开场景 (默认 False)。
suspend_mobject_updating动画期间 mobject 的更新器是否在其下运行(默认 True):它们 持续作用于 mobject,每一帧显示动画应用于其结果。 若为 False,则它们作用于被动画的 mobject 本身。
introducer动画开始时 mobject 是否加入场景(默认 False); 否则若场景缺少它,play 在其开始时将其带入。
use_override若某 mobject 的类用另一个动画代替此动画播放,是否如此执行 (默认 True)。
还接受 动画关键字。
源码
manimgx\animation\motion.py
Blink
¶
闪烁一个 mobject:将其隐藏再显示,重复若干次。
它显示 time_on 秒并隐藏 time_off 秒,共 blinks 次,然后再显示
time_on 秒(或使用 hide_at_end 保持隐藏)。显示时将其设为完全不透明,
隐藏时将其设为完全透明。
mobject要闪烁的 mobject。
time_on每次显示的时长,以秒为单位。
time_off每次隐藏的时长,以秒为单位。
blinks闪烁的次数。
hide_at_end结束时是否保持隐藏。
run_time动画播放时长,以秒为单位(默认 1)。
lag_ratiomobject 各部分如何交错:每个部分在其前一个部分开始后,经过其运行时长的该分数比例后开始 (默认 0:全部同时;1:一个接一个)。
rate_func动画进度如何随时间运行:一个从 [0, 1] 到 [0, 1] 的函数 (默认为
smooth;参见 rate functions)。reverse_rate_function是否反向运行动画(默认 False)。
name动画的名称。
remover动画结束时 mobject 是否离开场景 (默认 False)。
suspend_mobject_updating动画期间 mobject 的更新器是否在其下运行(默认 True):它们 持续作用于 mobject,每一帧显示动画应用于其结果。 若为 False,则它们作用于被动画的 mobject 本身。
introducer动画开始时 mobject 是否加入场景(默认 False); 否则若场景缺少它,play 在其开始时将其带入。
use_override若某 mobject 的类用另一个动画代替此动画播放,是否如此执行 (默认 True)。
还接受 动画关键字。
源码
manimgx\animation\motion.py
Broadcast
¶
将一个 mobject 的副本从一个点向外扩散,一个接一个。
n_mobs 个副本中的每一个从 focal_point 起始,宽度为 initial_width,
不透明度为 initial_opacity,如涟漪般生长到该 mobject 的大小,
以 focal_point 为中心,其不透明度变为 final_opacity。它们一个接一个
开始(lag_ratio 为 0.2,历时 3 秒),并在动画结束时离开场景,
除非给定 remover=False。填充 mobject 的副本整体淡出,
轮廓的副本在其描边上淡出。该 mobject 本身不被显示。
m.Broadcast(mobject, focal_point=ORIGIN, n_mobs=5, initial_opacity=1, final_opacity=0, initial_width=0.0, **kwargs)
mobject涟漪的形状,处于其最大状态。
focal_point涟漪扩散的起始点。
n_mobs副本的数量。
initial_opacity副本起始时的不透明度。
final_opacity副本结束时的不透明度。
initial_width副本起始时的宽度,以场景单位表示。
run_time动画播放时长,以秒为单位(默认 1)。
lag_ratiomobject 各部分如何交错:每个部分在其前一个部分开始后,经过其运行时长的该分数比例后开始 (默认 0:全部同时;1:一个接一个)。
rate_func动画进度如何随时间运行:一个从 [0, 1] 到 [0, 1] 的函数 (默认为
smooth;参见 rate functions)。reverse_rate_function是否反向运行动画(默认 False)。
name动画的名称。
remover动画结束时 mobject 是否离开场景 (默认 False)。
suspend_mobject_updating动画期间 mobject 的更新器是否在其下运行(默认 True):它们 持续作用于 mobject,每一帧显示动画应用于其结果。 若为 False,则它们作用于被动画的 mobject 本身。
introducer动画开始时 mobject 是否加入场景(默认 False); 否则若场景缺少它,play 在其开始时将其带入。
use_override若某 mobject 的类用另一个动画代替此动画播放,是否如此执行 (默认 True)。
还接受 动画关键字。
源码
manimgx\animation\motion.py