为什么角度移动落后于点

Why the angle moves lagging behind the dot

有一个分组角(两条直线和一个圆弧)同时移动和旋转,取决于另一个Dot的位置,从视频看,分组角落后于Dot,不知道为什么?下面是代码:

class MovRot(Scene):
    def construct(self):

        ln = Line(LEFT*2, LEFT*1+UP*1.5)
        self.add(ln)

        ln_ab = Line(LEFT*2, interpolate(LEFT*2, LEFT*1+UP*1.5, 0.7), color=RED_D)
        ln_bc = Line(LEFT*2, ORIGIN, color=RED_D)
        arc_b = Arc(0, ln_ab.get_angle(), radius=0.6, color=RED_D).move_arc_center_to(LEFT*2)
        grp_b = VGroup(ln_ab, ln_bc, arc_b)
        self.add(grp_b)

        dt = Dot(color=YELLOW_D).move_to(LEFT*2)
        grp_1 = grp_b.copy()

        def update_grp1(mob, alpha):
            mob.become(grp_1)
            mob.move_to(dt.get_center(), aligned_edge=arc_b.get_arc_center())
            mob.rotate(alpha*PI, about_point=arc_b.get_arc_center())

        self.add(grp_1, dt)
        self.play(UpdateFromAlphaFunc(grp_b, update_grp1, rate_func=smooth), dt.move_to, LEFT*1+UP*1.5,
                  rate_func=smooth,
                  run_time=2)

感谢您的帮助。

你总是要在播放方法的开头写"master"动画,在你的例子中,"takes the baton"的动画是move_to,所以它必须是第一个待写:

        self.play(
            dt.move_to, LEFT*1+UP*1.5,
            UpdateFromAlphaFunc(grp_b, update_grp1, rate_func=smooth), 
            rate_func=smooth,
            run_time=2
        )