Manim 渐变

Run Settings
LanguageBash
Language Version
Run Command
%%manim -qm CircleToSquare class CircleToSquare(Scene): def construct(self): p1 = RegularPolygram(9, density=1, color=BLUE) txt1 = Text("density=1", font_size=20, color=BLUE) vg1 = VGroup(p1, txt1).arrange(DOWN, buff=0.2) p2 = RegularPolygram(9, density=2, color=GREEN) txt2 = Text("density=2", font_size=20, color=GREEN) vg2 = VGroup(p2, txt2).arrange(DOWN, buff=0.2) p3 = RegularPolygram(9, density=3, color=RED) p3.set_color(color_gradient([BLUE, RED], 10)) txt3 = Text("density=3", font_size=20, color=YELLOW) vg3 = VGroup(p3, txt3).arrange(DOWN, buff=1.2) vg = VGroup(vg1, vg2, vg3).arrange(RIGHT) self.play(Create(vg)) left_square = Square(color=YELLOW).shift(2*LEFT) left_square.set_color(color_gradient([BLUE, RED], 10)) right_square = Square(color=GREEN, fill_opacity=0.7).shift(2*RIGHT) self.play(left_square.animate.rotate(PI), Rotate(right_square, angle=PI), run_time=2) self.wait()
class GradientFillAnimation(Animation): """动态渐变填充动画类""" def __init__(self, mobject, colors, run_time=5, **kwargs): """ 初始化渐变填充动画 Parameters: mobject: 要应用动画的物体 colors: 颜色列表,动画将在这些颜色之间进行渐变 run_time: 动画运行时间 """ self.mobject = mobject self.colors = colors self.color_count = len(colors) super().__init__(mobject, run_time=run_time, **kwargs)
Editor Settings
Theme
Key bindings
Full width
Lines