出现与消失¶
影片代码
import manimgx as m
class AppearHero(m.Scene):
def construct(self) -> None:
square = m.Square(color=m.BLUE, fill_opacity=0.5)
word = m.Text("Write", font_size=56)
star = m.Star(color=m.YELLOW, fill_opacity=0.5)
circle = m.Circle(color=m.GREEN, fill_opacity=0.5)
shapes = m.VGroup(square, word, star, circle).arrange(buff=0.8)
self.play(
m.Create(square),
m.Write(word),
m.GrowFromCenter(star),
m.FadeIn(circle, shift=m.UP),
)
self.play(
m.Uncreate(square),
m.Unwrite(word),
m.ShrinkToCenter(star),
m.FadeOut(circle, shift=m.DOWN),
)
将 mobject 带入的动画会在其开始时将它添加到场景中:你无需事先添加它。将 mobject 移出 的动画会在其结束时将它从场景中移除。在此之间,mobject 沿其路径被绘制、如手写般被书写、 被淡入淡出,或从某点生长出来。
绘制与书写¶
Create
¶
沿其路径将一个 mobject 绘制到视图中,一个部分接一个部分地显现。
该 mobject 在动画开始时加入场景。每个部分从其起点到终点被显现;
使用默认的 lag_ratio 1,一个部分在前一个部分绘制完成后开始显现。
mobject要绘制的 mobject。
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
Uncreate
¶
沿其路径擦除一个 mobject,并将其移出场景。
每个部分从其终点向起点被擦除,按 Create 绘制它们的顺序
一个接一个地进行。该 mobject 在动画结束时离开场景。
mobject要擦除的 mobject。
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
DrawBorderThenFill
¶
代码
import manimgx as m
class DrawBorderThenFillExample(m.Scene):
def construct(self) -> None:
shapes = m.VGroup(
m.Square(side_length=3, color=m.ORANGE, fill_opacity=1),
m.Star(outer_radius=2, color=m.BLUE, fill_opacity=1),
).arrange(buff=1.5)
self.play(m.DrawBorderThenFill(shapes, stroke_color=m.YELLOW))
先绘制一个 mobject 的轮廓,再将其填充。
在前半段,每个部分的边框沿其路径被绘制,宽度为 stroke_width,
使用该部分所呈现的绘制颜色:若其绘制描边则为其自身的描边,否则为其填充
(渐变保持为一色),除非给定了 stroke_color。在后半段,填充出现的同时
边框转变为该部分自身的描边;对于不绘制描边的部分,边框以相同绘制颜色
变细直至消失。各部分最终恢复原状。该 mobject 在动画开始时加入场景。
动画运行 2 秒,由 double_smooth 缓动:
两半段各自平滑过渡。
vmobject要绘制的 mobject。
stroke_width边框的宽度,以场景单位的百分之一为单位。
stroke_color边框的颜色;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
Write
¶
如同手写一般书写一个 mobject:每个部分先绘制轮廓,再填充。
采用 DrawBorderThenFill 的绘制方式,以匀速
(linear)进行,各部分交错显现:lag_ratio 为 4 除以部分数,至多为 0.2,
当部分数少于 15 时运行 1 秒,否则运行 2 秒。该 mobject 在动画开始时加入场景。
Unwrite 可将其擦除。
vmobject要书写的 mobject,如文本或公式。
reverse是否从最后一个部分向第一个部分书写(它们保持自身顺序, 因此较后的部分仍绘制在较前的部分之上);此时该 mobject 在动画结束时 离开场景(除非给定
remover=False)。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
Unwrite
¶
如同倒退书写一般擦除一个 mobject,并将其移出场景。
Write 的逆过程:每个部分的填充渐变为其轮廓,
然后轮廓被擦除,一个部分接一个部分地进行,默认从最后一个部分开始。
各部分在播放期间保持自身顺序,因此较后的部分仍绘制在较前的部分之上。
该 mobject 在动画结束时离开场景。
vmobject要擦除的 mobject。
reverse是否从最后一个部分向第一个部分擦除;False 表示从第一个部分开始擦除。
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
淡入淡出¶
FadeIn
¶
代码
import manimgx as m
class FadeInExample(m.Scene):
def construct(self) -> None:
dot = m.Dot(2 * m.UP + 4 * m.LEFT, radius=0.2, color=m.YELLOW)
names = ("plain", "shift", "target", "scale")
words = m.VGroup(*(m.Text(name, font_size=60) for name in names))
words.arrange(buff=0.8)
self.add(dot)
self.play(
m.LaggedStart(
m.FadeIn(words[0]),
m.FadeIn(words[1], shift=m.DOWN),
m.FadeIn(words[2], target_position=dot),
m.FadeIn(words[3], scale=1.5),
lag_ratio=0.5,
)
)
将 mobjects 淡入视图。
它们起始为透明状态(被 shift 向后移动,或位于 target_position,
大小为自身的 scale 倍),并最终到达自身原状。它们在动画开始时加入场景。
*mobjects要一同淡入的 mobjects;至少一个。
shift它们在淡入时移动的方向与距离:起始时落后其最终位置这么远。
target_position未给定
shift时它们的起始位置:一个点,或一个 mobject 的中心。scale起始时的大小,相对于自身大小。
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
FadeOut
¶
代码
import manimgx as m
class FadeOutExample(m.Scene):
def construct(self) -> None:
dot = m.Dot(2 * m.UP + 4 * m.LEFT, radius=0.2, color=m.YELLOW)
names = ("plain", "shift", "target", "scale")
words = m.VGroup(*(m.Text(name, font_size=60) for name in names))
words.arrange(buff=0.8)
self.add(dot, words)
self.play(
m.LaggedStart(
m.FadeOut(words[0]),
m.FadeOut(words[1], shift=m.DOWN),
m.FadeOut(words[2], target_position=dot),
m.FadeOut(words[3], scale=0.5),
lag_ratio=0.5,
)
)
将 mobjects 淡出视图,并将其移出场景。
它们终止为透明状态(沿 shift 移动,或到达 target_position,
大小为自身的 scale 倍)。它们在动画结束时离开场景,并恢复为动画之前的状态:
再次添加它们即可显示。
*mobjects要一同淡出的 mobjects;至少一个。
shift它们在淡出时移动的方向与距离。
target_position未给定
shift时它们前往的位置:一个点,或一个 mobject 的中心。scale终止时的大小,相对于自身大小。
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
生长与收缩¶
GrowFromCenter
¶
代码
import manimgx as m
class GrowFromCenterExample(m.Scene):
def construct(self) -> None:
left = m.Circle(radius=1.5, color=m.BLUE, fill_opacity=0.5)
right = m.Circle(radius=1.5, color=m.GREEN, fill_opacity=0.5)
m.VGroup(left, right).arrange(buff=2)
self.play(
m.GrowFromCenter(left), m.GrowFromCenter(right, point_color=m.RED)
)
从一个 mobject 的中心生长出该 mobject。
它起始为在其中心处缩为一点的状态(若给定 point_color 则使用该颜色)。
该 mobject 在动画开始时加入场景。
mobject要生长的 mobject。
point_color起始颜色;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
GrowFromPoint
¶
从一个点生长出一个 mobject。
它起始为在 point 处缩为一点的状态(若给定 point_color 则使用该颜色),
并生长至自身大小与位置。该 mobject 在动画开始时加入场景。
mobject要生长的 mobject。
point生长起自的点,或一个以其中心为生长起点的 mobject (在动画创建时取定)。
point_color起始颜色;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
GrowFromEdge
¶
代码
import manimgx as m
class GrowFromEdgeExample(m.Scene):
def construct(self) -> None:
squares = m.VGroup(
*(m.Square(side_length=2.5, fill_opacity=0.5) for _ in range(3))
).arrange(buff=1.5)
squares.set_color_by_gradient(m.BLUE, m.GREEN)
self.play(
m.GrowFromEdge(squares[0], m.DOWN),
m.GrowFromEdge(squares[1], m.RIGHT),
m.GrowFromEdge(squares[2], m.UR),
)
从一个 mobject 的边界框的某条边或某个角生长出该 mobject。
它起始为在该处缩为一点的状态(若给定 point_color 则使用该颜色)。
该 mobject 在动画开始时加入场景。
mobject要生长的 mobject。
edgepoint_color起始颜色;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
GrowArrow
¶
代码
import manimgx as m
class GrowArrowExample(m.Scene):
def construct(self) -> None:
right = m.Arrow(3 * m.LEFT, 3 * m.RIGHT, color=m.BLUE).shift(1.5 * m.UP)
up = m.Arrow(3 * m.LEFT, 3 * m.RIGHT + 1.5 * m.UP, color=m.YELLOW)
up.shift(1.5 * m.DOWN)
self.play(m.GrowArrow(right), m.GrowArrow(up, point_color=m.RED))
从其起点生长出一支箭;其箭尖随之生长。
该箭在动画开始时加入场景。
arrow要生长的箭。
point_color起始颜色;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
SpinInFromNothing
¶
代码
import manimgx as m
class SpinInFromNothingExample(m.Scene):
def construct(self) -> None:
left = m.Square(side_length=2.5, color=m.BLUE, fill_opacity=0.5)
right = m.Star(outer_radius=1.5, color=m.YELLOW, fill_opacity=0.5)
m.VGroup(left, right).arrange(buff=3)
self.play(
m.SpinInFromNothing(left),
m.SpinInFromNothing(right, angle=m.TAU, point_color=m.RED),
run_time=2,
)
从一个 mobject 的中心生长出该 mobject,同时旋转着就位。
它在生长过程中转过 angle 角度(正角度为逆时针方向)。该 mobject 在动画开始时加入场景。
m.SpinInFromNothing(mobject, angle=PI / 2, point_color=None, **kwargs)
mobject要旋转着生长的 mobject。
angle途中转过的角度,以弧度为单位。
point_color起始颜色;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
ShrinkToCenter
¶
将一个 mobject 在其中心处收缩为一点。
它留在场景中,缩为一点:传入 remover=True 可在动画结束时将其移出场景。
mobject要收缩的 mobject。
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
SpiralIn
¶
代码
import manimgx as m
class SpiralInExample(m.Scene):
def construct(self) -> None:
shapes = m.VGroup(
m.Circle(color=m.GREEN, fill_opacity=1),
m.Square(color=m.BLUE, fill_opacity=1),
m.Triangle(color=m.YELLOW, fill_opacity=1),
m.Star(color=m.RED, fill_opacity=1),
).arrange(buff=1)
self.play(m.SpiralIn(shapes, run_time=2))
让一个 mobject 的子对象从远处飞入,盘旋着就位。
每个子对象回到动画开始时其所在位置,出发点距该 mobject 中心
scale_factor + 1 倍远:途中绕该中心转一圈(并绕自身中心反向转一圈,
以保持其朝向),并在前 fade_in_fraction 的路程中淡入。
该 mobject 在动画开始时加入场景;创建该动画不改变任何内容。
shapes其子对象盘旋入位的 mobject。
scale_factor出发距离:距中心为其位置的
scale_factor+ 1 倍远。fade_in_fraction淡入所占的路程比例,从 0 到 1。
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
逐部分¶
ShowIncreasingSubsets
¶
逐个增多地展示一个组的子对象。
在进度 p(由速率函数缓动)处,其 n 个子对象中的前 ⌊p·n⌋ 个被展示,
其余被隐藏:即置于画面之外而非被改变,因此每个部分以其原貌展示,
无论其上还播放着什么。该组在动画开始时加入场景。动画结束时仍被隐藏的
部分保持不可见,留为透明;移除器的组按原状离开场景。
传入 rate_func=linear 可获得匀速。
m.ShowIncreasingSubsets(group, int_func=floor, **kwargs)
group其子对象被展示的组。
int_func展示多少个的函数:关于 p·n 的函数(默认向下取整)。
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
ShowSubmobjectsOneByOne
¶
逐一展示 mobject,每个取代前一个的位置。
在进度 p(由速率函数缓动)处,仅展示 n 个 mobject 中的第 ⌈p·n⌉ 个,
以其原貌展示,其余被隐藏;动画结束时,被隐藏的那些保持不可见,
留为透明。传入 rate_func=linear 可获得匀速。
m.ShowSubmobjectsOneByOne(group, int_func=ceil, **kwargs)
group依次展示的 mobject。
int_func展示哪一个的函数:关于 p·n 的函数(默认向上取整)。
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
打字文本¶
AddTextLetterByLetter
¶
逐字输入一段文本,一次一个字母。
字母以匀速(linear)依次出现,每个字母 time_per_char 秒,
除非给定 run_time。该文本在动画开始时加入场景。
m.AddTextLetterByLetter(text, int_func=ceil, time_per_char=0.1, **kwargs)
text要输入的文本,其子对象为字母;不含任何字母的文本会引发 ValueError。
int_func展示多少个字母的函数:关于进度乘以字母数的函数 (默认向上取整,因此第一个字母立即出现)。
time_per_char每个字母耗时,以秒为单位。
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
RemoveTextLetterByLetter
¶
从最后一个字母起逐字移除一段文本,并将其移出场景。
AddTextLetterByLetter 的逆过程:
字母从最后一个到第一个消失,每个 time_per_char 秒,
除非给定 run_time。该文本在动画结束时离开场景,并恢复为动画之前的状态:
再次添加即可显示。
m.RemoveTextLetterByLetter(text, int_func=ceil, time_per_char=0.1, **kwargs)
text要移除的文本,其子对象为字母;不含任何字母的文本会引发 ValueError。
int_func仍展示多少个字母的函数:关于进度剩余部分乘以字母数的函数 (默认向上取整)。
time_per_char每个字母耗时,以秒为单位。
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
AddTextWordByWord
¶
逐字输入单词,每个单词之后短暂停顿。
text_mobject 的每个子对象是一个单词,单词依次出现:一个单词自身的
子对象即其字母,一个接一个出现,每个 time_per_char 秒;
然后该单词保持 0.005 × (其字母数)^1.5 秒。应传入一个单词的组,
例如由 Text 构成的 VGroup:
单个 Text 的子对象是其字母,它们没有自身的部分可供输入,
因此每个在其轮次中整体出现。
text_mobject这些单词:一个子对象为由字母构成的单词的组。
time_per_char每个字母耗时,以秒为单位。
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
TypeWithCursor
¶
逐字输入一段文本,光标跟在最后输入的字母之后。
字母如 AddTextLetterByLetter 那样出现,
光标以其原貌显示,并随之移动。光标成为该文本的一部分,位于其末尾,
在动画结束时留在那里,除非 leave_cursor_on 为 False。
该文本在动画开始时加入场景。
text要输入的文本,其子对象为字母。
cursor光标:任意 mobject,例如一个细长矩形。
buff最后一个字母与光标之间的间距,以场景单位表示。
keep_cursor_y光标移动时是否保持其自身高度;若否,它沿文本的中间高度移动。
leave_cursor_on动画结束时光标是否留在文本末尾。
time_per_char每个字母耗时,以秒为单位。
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
UntypeWithCursor
¶
代码
import manimgx as m
class UntypeWithCursorExample(m.Scene):
def construct(self) -> None:
text = m.Text("Deleting...", font_size=96, color=m.PURPLE)
cursor = m.Rectangle(m.GREY_A, height=1.1, width=0.4, fill_opacity=1)
cursor.move_to(text[0])
self.add(text)
self.play(m.UntypeWithCursor(text, cursor))
逐字删除一段文本,光标跟在最后留下的字母之后。
TypeWithCursor 的逆过程:字母从最后一个到第一个
消失。该文本在动画结束时离开场景,并恢复为动画之前的状态
(再次添加即可显示);光标成为该文本的一部分,并随其离开。
text要删除的文本,其子对象为字母。
cursor光标:任意 mobject,例如一个细长矩形。
buff最后一个字母与光标之间的间距,以场景单位表示。
keep_cursor_y光标移动时是否保持其自身高度;若否,它沿文本的中间高度移动。
leave_cursor_on动画结束时光标是否仍作为该文本的一部分。
time_per_char每个字母耗时,以秒为单位。
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