소개
이 튜토리얼에서는 Python 의 Matplotlib 라이브러리를 사용하여 베지어 곡선 (Bezier Curve) 을 만드는 방법을 배웁니다. 베지어 곡선은 컴퓨터 그래픽에서 부드럽고 미적으로 보기 좋은 모양을 만들기 위해 일반적으로 사용되는 수학적 곡선입니다. Matplotlib 의 PathPatch 객체를 사용하여 간단한 베지어 곡선 예제를 만들 것입니다.
VM 팁
VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
라이브러리 임포트
Matplotlib 를 사용하여 베지어 곡선 (Bezier Curve) 을 만들기 위해 필요한 라이브러리를 임포트해야 합니다. 플롯을 생성하기 위해 matplotlib.pyplot을, PathPatch 객체를 생성하기 위해 matplotlib.patches를 임포트합니다.
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath
경로 생성
다음으로, 베지어 곡선 (Bezier Curve) 에 대한 Path 객체를 생성합니다. Path 객체는 정점 (vertices) 목록과 정점 사이의 경로 유형을 지정하는 코드를 입력으로 받습니다. 이 경우, 시작점으로 이동하기 위해 MOVETO 코드를 사용하고, 제어점 (control points) 과 종료점을 지정하기 위해 두 개의 CURVE3 코드를 사용하며, 마지막으로 경로를 닫기 위해 CLOSEPOLY 코드를 사용합니다.
Path = mpath.Path
bezier_path = Path([(0, 0), (1, 0), (1, 1), (0, 0)],
[Path.MOVETO, Path.CURVE3, Path.CURVE3, Path.CLOSEPOLY])
PathPatch 객체 생성
이제 Path 객체를 갖게 되었으므로, 플롯에 베지어 곡선 (Bezier Curve) 을 그리는 데 사용될 PathPatch 객체를 생성할 수 있습니다. 곡선만 그려지고 채워지지 않도록 facecolor를 'none'으로 설정합니다.
bezier_patch = mpatches.PathPatch(bezier_path, fc="none")
플롯 생성
이제 PathPatch 객체를 축 (axes) 에 추가하고 곡선 위에 있어야 하는 빨간색 점을 플로팅하여 플롯을 생성할 수 있습니다. 또한 플롯의 제목을 'Bezier Curve'로 설정합니다.
fig, ax = plt.subplots()
ax.add_patch(bezier_patch)
ax.plot([0.75], [0.25], "ro")
ax.set_title('Bezier Curve')
plt.show()
최종 코드는 다음과 같습니다.
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath
Path = mpath.Path
bezier_path = Path([(0, 0), (1, 0), (1, 1), (0, 0)],
[Path.MOVETO, Path.CURVE3, Path.CURVE3, Path.CLOSEPOLY])
bezier_patch = mpatches.PathPatch(bezier_path, fc="none")
fig, ax = plt.subplots()
ax.add_patch(bezier_patch)
ax.plot([0.75], [0.25], "ro")
ax.set_title('Bezier Curve')
plt.show()
요약
이 튜토리얼에서는 Python 의 Matplotlib 라이브러리를 사용하여 베지어 곡선 (Bezier Curve) 을 만드는 방법을 배웠습니다. Path 및 PathPatch 객체를 사용하여 곡선을 생성하고 플롯에 추가했습니다. 또한 곡선 위에 빨간색 점을 플로팅하여 해당 점이 곡선 위에 있음을 보여주었습니다. 베지어 곡선은 컴퓨터 그래픽에서 부드럽고 미적으로 보기 좋은 모양을 만드는 데 일반적으로 사용됩니다.