728x90
반응형
이번 글에서는 Manim 라이브러리로 원을 그리는 방법을 알아보겠습니다.
Circle 클래스
Circle 클래스의 파라미터로 많이 쓰이는 것들은 아래와 같습니다.
- radius : 반지름
- color : 원의 색깔
- fill_opacity : 원 내부의 불투명도로써, 0과 1 사이의 실수
예제를 들어보겠습니다.
Circle Example
예제1. 원 3개 그리기
이 예제는 Manim의 document 중 Circle 파트에 있습니다.
class CircleExample(Scene):
def construct(self):
circle_1 = Circle(radius=1.0)
circle_2 = Circle(radius=1.5, color=GREEN)
circle_3 = Circle(radius=1.0, color=BLUE_B, fill_opacity=1)
circle_group = Group(circle_1, circle_2, circle_3).arrange(RIGHT, buff=1)
self.add(circle_group)
간단히 살펴보겠습니다.
circle_1 = Circle(radius=1.0) # 반지름이 1인 Circle 생성
circle_2 = Circle(radius=1.5, color=GREEN) # 반지름이 1.5, 색이 GREEN인 Circle 생성
circle_3 = Circle(radius=1.0, color=BLUE_B, fill_opacity=1)
# 반지름 1, 색 BLUE, 불투명도가 1 (최고 불투명도)인 Circle 생성
circle_group = Group(circle_1, circle_2, circle_3).arrange(RIGHT, buff=1)
# 생성된 3개의 Circle을 그룹으로 묶는데, 오른쪽 방향으로 나열되게 그룹화, 원 사이 간격은 1
○ buff 는 오브젝트들 사이의 간격을 뜻합니다.
self.add(circle_group) #이 Class에 원 3개로 이루어진 그룹을 탑재함
결과를 보겠습니다. 다음의 명령어를 terminal이나 cmd(명령 프롬프트)에 입력합니다.
manim -pql BasicAnimation.py CircleExample
예제 2, 원 나타났다가 사라지기
이 예제는 slama.dev – Manim – Introduction에 수록된 예제 중 하나를 조금 변형했습니다.
class CircleFadeOut(Scene):
def construct(self):
# create square and circle objects (and move them)
circle1 = Circle(color=RED, fill_opacity=1).shift(LEFT * 2)
circle2 = Circle(color=BLUE).shift(RIGHT * 2)
# animate writing them on screen
self.play(Write(circle1), Write(circle2))
# fading them from the scene
self.play(FadeOut(circle1), FadeOut(circle2), run_time=2)
살펴보겠습니다.
circle1 = Circle(color=RED, fill_opacity=1).shift(LEFT * 2)
# RED색의 불투명도 100%인 원을 왼쪽(LEFT)방향으로 2만큼 평행이동함
circle2 = Circle(color=BLUE).shift(RIGHT * 2)
# BLUE 원을 오른쪽(RIGHT)방향으로 2만큼 평행이동 함
○ LEFT : 왼쪽 방향, 좌표계로 따지면 (-1,0)을 의미합니다.
○ RIGHT : 오른쪽 방향, 좌표계로 (1,0) 방향을 의미합니다.
○ shift() : 이동을 의미합니다.
# animate writing them on screen
# 동영상 화면에 Circle1과 Circle2를 그립니다.
self.play(Write(circle1), Write(circle2))
○ play : 애니매이션 실행을 뜻합니다.
# fading them from the scene
# Circle1과 Circle2를 점차 Fadeout 시킴.(run time시간 동안)
self.play(FadeOut(circle1), FadeOut(circle2), run_time=2)
○ play : 애니매이션 실행을 뜻합니다.
○ FadeOut : Circle 오브젝트가 점차 사라지게(Fade Out) 합니다.
○ run_time : Fade Out 시 걸리는 시간입니다.
이제
manim -pql BasicAnimation.py CircleFadeOut
를 terminal 창에 입력하여 실행시키면 다음을 얻습니다.
이제 원 그리기에 좀 자신이 붙는 것 같습니다.
728x90
반응형
'파이썬 > MANIM' 카테고리의 다른 글
Manim. 도형 회전 rotate의 비밀 (0) | 2022.09.22 |
---|---|
Manim. 삼각형 그리기 (0) | 2022.09.21 |
Manim. 정사각형 그리기 (0) | 2022.09.16 |
Manim. 가장 쉬운 예제를 알아보자. (0) | 2022.09.13 |
MANIM이란? 어떻게 설치하지? (1) | 2022.09.13 |
댓글