본문 바로가기
html5

manim boolean operation

by peach1227 2024. 5. 19.

 

 

%%manim -qm -v WARNING BooleanOperations
class BooleanOperations(Scene):
    def construct(self):
        self.camera.background_color=WHITE

        circle = Circle(fill_opacity=0.75, color=RED).scale(2).shift(LEFT * 1.5)
        square = Square(fill_opacity=0.75, color=GREEN).scale(2).shift(RIGHT * 1.5)

        group = VGroup(circle, square)

        self.play(Write(group))

        self.play(group.animate.scale(0.4).shift(UP * 1.6))

        union = Union(circle, square, fill_opacity=1, color=BLUE)

        for operation, position in zip(
            [Intersection, Union, Exclusion, Difference],
            [LEFT * 5, LEFT * 1.7, RIGHT * 1.7, RIGHT * 5],
        ):
            result = operation(circle, square, fill_opacity=1, color=DARK_BLUE)
            result_position = DOWN * 1.3 + position

            label = Tex(str(operation.__name__)).move_to(result_position).scale(0.8)

            self.play(FadeIn(result))

            self.play(
                AnimationGroup(
                    result.animate.move_to(result_position),
                    Write(label, run_time=0.5),
                    lag_ratio=0.8,
                )
            )


반응형

'html5' 카테고리의 다른 글

manim ValueTracker class example  (0) 2024.05.28
manim linearTransform example  (0) 2024.05.26
manim TracedPath  (0) 2024.05.19
manim Growing  (0) 2024.05.17
manim hypocycloid example video  (0) 2024.05.16