ComputerLanguage_Program/PYTHON
[PYTHON] matplotlib 으로 원기옥(음식점 이름) 로고 그리기
pbj0812
2022. 10. 26. 01:18
0. 목표
- matplotlib 으로 원기옥(곰탕집) 로고 그리기
1. 실습
1) 공식 세우기
(1) 각 점 사이의 거리는 균일한 것으로 가정
(2) 원의 중심을 지나는 직선의 방정식과 원의 방정식의 접점을 계산하여 이어주도록 함
(3) 기울기를 균일하게 가져가기 위하여 tan(a) 의 값을 기울기로 이용
2) 구현하기
(1) library 호출
import matplotlib.pyplot as plt
import numpy as np
(2) 원의 반지름, 접점의 개수(1 사분면 한정) 산정
r = 10
n = 25
(3) 각도 구하기
degree = np.linspace(0, np.pi * 1/2, n)
(4) tan(a) 구하기
tan_degree = []
for i in degree:
tan_degree.append(np.tan(i))
(5) x 구하기
x = []
for i in tan_degree:
x.append(np.sqrt((r * r) / (i * i + 1)))
(6) y 구하기
y = []
for i in range(len(tan_degree)):
y.append(tan_degree[i] * x[i])
(7) 그림 그리기
- 끝점과 처음은 tan 값이 깔끔하지 않기에 선이 겹쳐보여 지워주고 따로 정의하여 그림
fig, ax = plt.subplots(1, 1, figsize = [5, 5])
for i in range(1, len(y) - 1):
ax.plot([0, x[i]], [-r, y[i]], 'k') #우상
ax.plot([0, -x[i]], [-r, y[i]], 'k') #좌상
ax.plot([0, x[i]], [-r, -y[i]], 'k') #우하
ax.plot([0, -x[i]], [-r, -y[i]], 'k') #좌하
ax.plot([0, -r], [-r, 0], 'k')
ax.plot([0, r], [-r, 0], 'k')
ax.plot([0, 0], [-r, r], 'k')
ax.axis('off') # 숫자 지우기
ax.axis('square') # 정사각형