【发布时间】:2021-05-25 18:19:22
【问题描述】:
我想为 Dot 对象设置动画以定期更改其颜色。
像这样的:
我只找到了AnimatedBoundary 类,但它只改变了对象的边界(正如名字所说的 ofc)。
有没有什么方法可以使用现有的工具来实现?
【问题讨论】:
我想为 Dot 对象设置动画以定期更改其颜色。
像这样的:
我只找到了AnimatedBoundary 类,但它只改变了对象的边界(正如名字所说的 ofc)。
有没有什么方法可以使用现有的工具来实现?
【问题讨论】:
也许这样的东西对你有用
class ColoredDot(Scene):
def construct(self):
tracker = ValueTracker(0)
def update_color(obj):
T=tracker.get_value()
rgbcolor=[1,1-T,0+T]
m_color=rgb_to_color(rgbcolor)
upd_dot=Dot(color=m_color)
obj.become(upd_dot)
dot=Dot()
dot.add_updater(update_color)
self.add(dot)
self.play(tracker.set_value,1,run_time=5)
self.wait()
具体的颜色选择由行给出
rgbcolor=[1,1-T,0+T]
参数T的取值范围是0到1。 这为您提供了取决于该参数 T 的 rgb 颜色值。 您可以将其更改为您喜欢的任何 T 函数,从而为您提供所需的任何颜色更改。如果您想要定期更改,请使用 np.sin(T) 之类的东西并将 T 的范围更改为 (0,2*pi),此时我还将 rate_func 设置为线性。
【讨论】: