You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Manim Community v0.17.2中如何同步实现旋转与中心放大动画?

问题原因

你当前的代码存在两个关键问题:

  1. 初始状态错误:你创建的txt_1初始已是font_size=76(缩放比例为1)且旋转了PI/2,但你预期的初始状态是「垂直且缩放比例为0」,实际初始状态和预期不符。
  2. 动画冲突:GrowFromCenter本质是将Mobject从缩放0过渡到当前的缩放比例,它会在动画过程中持续修改Mobject的缩放属性,和Rotate动画同时作用时,会覆盖旋转的状态更新,导致只有放大效果生效。
解决方案

调整初始状态为「垂直(旋转PI/2)+ 缩放0」,然后同时播放旋转回水平和放大到目标大小的动画。用scale(0)设置初始不可见,再通过Scale动画(或animate.scale(1))实现放大,和Rotate动画同步执行即可。

修正后的代码
from manim import *

class TextRotateGrowScene(Scene):
    def construct(self):
        # 设置初始状态:垂直旋转、缩放为0(不可见)
        txt_1 = Text("Hello World!", font_size=76).rotate(PI/2).scale(0)
        self.add(txt_1)
        
        # 同步播放旋转和放大动画
        self.play(
            Rotate(txt_1, -PI/2),  # 旋转回水平状态
            txt_1.animate.scale(1),  # 放大到font_size设定的大小
            run_time=2  # 可根据需求调整动画时长
        )
补充说明
  • 如果你更倾向于使用GrowFromCenter的逻辑,也可以自定义组合动画,但直接用Scale+Rotate的方式更直观且避免冲突。
  • 之前使用animate.rotate出现逐个点移动的问题,大概率是误操作了Text的子元素,上述代码对整个Text对象执行动画,会保证整体旋转效果。

内容的提问来源于stack exchange,提问作者Andrés Romero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 09:12:40