Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from manimlib.imports import *
- class ClockOrganization(VGroup):
- CONFIG = {
- "numbers" : 4,
- "radius" : 3.1,
- "color" : WHITE
- }
- def __init__(self, **kwargs):
- digest_config(self, kwargs, locals())
- self.generate_nodes()
- VGroup.__init__(self, *self.node_list,**kwargs)
- def generate_nodes(self):
- self.node_list = []
- for i in range(self.numbers):
- mobject = VMobject()
- number = TexMobject(str(i+1))
- circle = Circle(radius=0.4,color=self.color)
- mobject.add(number)
- mobject.add(circle)
- mobject.move_to(
- self.radius * np.cos((-TAU / self.numbers) * i + 17*TAU / 84) * RIGHT
- + self.radius * np.sin((-TAU / self.numbers) * i + 17*TAU / 84) * UP
- )
- self.node_list.append(mobject)
- def color_node(self, node, color):
- selected_node=self.node_list[node].copy()
- selected_node.set_color(color)
- return selected_node
- COLOR_LIST = ["#3b661a",
- "#ea0099",
- "#00dc82",
- "#6047b8",
- "#c788ff",
- "#65b000",
- "#ffcd34",
- "#8b3798",
- "#d29800",
- "#535593",
- "#d85e00",
- "#6debff",
- "#a62370",
- "#01b9a3",
- "#f5b5ff",
- "#806700",
- "#efd1ff",
- "#844e28",
- "#c3d9ff",
- "#3b6355",
- "#ffe6f4"]
- COORDINATE_LIST = [0.818*UP,1*RIGHT+0.241*UP]
- class TestingWithReplacementTransform(Scene):
- def construct(self):
- test = ClockOrganization(numbers=21)
- self.play(Write(test), run_time=1.5)
- self.wait(2)
- test_with_colors=VGroup(*[test.color_node(group,COLOR_LIST[group]) for group in range(test.numbers)])
- for group in range(test.numbers):
- self.play(ReplacementTransform(
- test.node_list[group],
- test_with_colors[group]
- ))
- for i in range(len(COORDINATE_LIST)):
- replacement_node = test_with_colors[i].copy()
- replacement_node.move_to(COORDINATE_LIST[i])
- self.play(ReplacementTransform(
- test_with_colors[i],
- replacement_node
- ))
- self.wait()
- class TestingWithTransform(Scene):
- def construct(self):
- test = ClockOrganization(numbers=21)
- self.play(Write(test), run_time=1.5)
- self.wait(2)
- for group in range(test.numbers):
- self.play(Transform(
- test.node_list[group],
- test.color_node(group,COLOR_LIST[group])
- ))
- for i in range(len(COORDINATE_LIST)):
- replacement_node = test[i].copy()
- replacement_node.move_to(COORDINATE_LIST[i])
- self.play(ReplacementTransform(
- test[i],
- replacement_node
- ))
- self.wait()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement