Computer/3B1B 따라잡기 with ManimLibrary
[3B1B따라잡기 with Manim!][1일 1마님] 5. VectorScene
벼랑끝과학자
2023. 5. 30. 18:12
1일 1마님 시리즈는 예제 코드를 하루에 하나씩 따라하면서 마님 라이브러리 사용에 익숙해지기 위해 만든 시리즈입니다! 간단하게 코드 + 코드 리뷰 + 실행 결과만 작성합니다!
class Vectors(VectorScene):
def construct(self):
plane = self.add_plane(animate=True).add_coordinates()
vector = self.add_vector([-3,-2], color=WHITE)
basis = self.get_basis_vectors()
self.add(basis)
self.wait(2)
T1 = Tex("vector to coords").next_to(vector, buff=0.1)
self.play(Create(T1))
self.vector_to_coords(vector = vector)
self.play(Unwrite(T1))
self.wait(2)
vector2 = self.add_vector([2,2])
self.write_vector_coordinates(vector = vector2)
self.wait(3)
- 지금까지 Scene class를 상속받았던 것과 달리, Vector를 그리고자 할때는 VectorScene class를 상속받는다.
- self.add_plane() 메서드로 좌표계를 그릴 수 있고, add_coordinates()를 통해 숫자를 표현할 수 있다.
- self.add_vector()를 이용해서 원하는 좌표 위에 벡터를 그릴 수 있다.
- self.get_basis_vectors()를 이용해 해당 좌표계의 basis를 얻을 수 있다.
- self.vector_to_coords(vector = Your_Vector)를 통해서 vector의 좌표계를 얻는 애니메이션을 그릴 수 있음(실행결과 참고)
- self.play(Unwirte(Your Unwrite Tex))를 통해서 Text를 지울 수 있다.