manim - 为什么角度移动滞后于点
问题描述
有一个分组的角度(两条线和一个弧)同时移动和旋转,取决于另一个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)
谢谢你的帮助。
解决方案
您总是必须在播放方法的开头编写“主”动画,在您的情况下,“接棒”的动画是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
)
推荐阅读
- python - 无法清除机器人框架中的文本字段
- python - Web Scraping:如何获取课程
- php - PHP PDO Fetch 作为多维数组,第一列作为键,第二和第三作为键值对
- php - phpMyAdmin 中的 grab_globals.lib.php 中的 PHP 文件包含漏洞
- rundeck - 为什么上传文件时出错
- c# - Kendo Grid MVC - 服务器导出 Excel 日期时间字段(自定义格式)
- hp-uft - 在 Windows 应用程序中的 shopdropdown 菜单项时在 UFT 中出现“未指定的错误”
- reactjs - React 应用程序部署问题
- ssl - 有没有办法将 JMS 设置为使用 SSL/TLS 连接到 IBM MQ?
- html - 了解文件上传表单元素的行为