Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 인도 국기 그리기 프로그램 만들기

파이썬의 그래프 그리기 라이브러리는 매우 방대한 기능을 갖추고 있어, 단순한 차트를 넘어 국기처럼 다양한 도형을 자유롭게 그릴 수 있습니다. 이런 점에서 해당 모듈에는 예술적인 감각까지 담겨 있다고 할 수 있습니다. 이번 글에서는 numpymatplotlib 라이브러리를 활용해 인도 국기를 그리는 방법을 단계별로 알아보겠습니다.

접근 방식

  • 동일한 폭의 직사각형 세 개를 만들고, 각각 적절한 색상과 테두리로 채웁니다.

  • pyplot 함수를 사용해 가운데 직사각형의 중앙에 아소카 차크라(Ashok Chakra)의 원을 그립니다.

  • numpy와 matplotlib를 활용해 아소카 차크라 내부의 24개 바퀴살(선)을 그립니다.

  • 위의 모든 그리기 작업에서 색상, 테두리, 반지름, 선 길이를 지정하여 최종적으로 원하는 국기 크기에 맞춥니다.

프로그램

앞서 설명한 접근 방식은 다음 프로그램으로 구현할 수 있습니다.

예제

import numpy as np
import matplotlib.pyplot as py
import matplotlib.patches as patch
#국기의 삼색 배경 그리기
a = patch.Rectangle((0,1), width=12, height=2, facecolor='green', edgecolor='grey')
b = patch.Rectangle((0,3), width=12, height=2, facecolor='white', edgecolor='grey')
c = patch.Rectangle((0,5), width=12, height=2, facecolor='#FF9933', edgecolor='grey')
m,n = py.subplots()
n.add_patch(a)
n.add_patch(b)
n.add_patch(c)
#아소카 차크라 원 그리기
radius=0.8
py.plot(6,4, marker = 'o', markerfacecolor = '#000088ff', markersize = 9.5)
chakra = py.Circle((6, 4), radius, color='#000088ff', fill=False, linewidth=7)
n.add_artist(chakra)
#아소카 차크라의 24개 바퀴살 그리기
for i in range(0,24):
   p = 6 + radius/2 * np.cos(np.pi*i/12 + np.pi/48)
   q = 6 + radius/2 * np.cos(np.pi*i/12 - np.pi/48)
   r = 4 + radius/2 * np.sin(np.pi*i/12 + np.pi/48)
   s = 4 + radius/2 * np.sin(np.pi*i/12 - np.pi/48)
   t = 6 + radius * np.cos(np.pi*i/12)
   u = 4 + radius * np.sin(np.pi*i/12)
   n.add_patch(patch.Polygon([[6,4], [p,r], [t,u],[q,s]], fill=True, closed=True, color='#000088ff'))
py.axis('equal')
py.show()

실행 결과

위 코드를 실행하면 다음과 같은 결과 화면을 확인할 수 있습니다.

파이썬으로 인도 국기 그리기 프로그램 만들기