프로그램
[파이썬] 문제 : 3각형 부터 4,5,6 각형 그리기
오디세이99
2023. 4. 3. 11:03
728x90
반응형
import turtle as t
t.setup(width = 1000, height = 600) # 화면 큭기 설정
t.speed(5)
def draw_rectangle(x, y, width, heigh): # 사걱형을 그리기 위한 함수
t.up() # 이동을 위한 펜 들기
t.home() # 위치 및 각도 초기화
t.goto(x, heigh) # 처음 그리기 위한 위치로 이동
t.down() # 그리기 위해 펜 내리기
t.color('black') # 색 지정
for j in range(4): # 4각형 반본문
if j%2 == 0: # 가로, 세로에 따라 길이 따로 지정
line_size = width
else:
line_size = heigh
t.forward(line_size*2) # 한변 그리기
t.right(360//4) # 회전
draw_rectangle(-380, -60, 300, 130) # 사각형 그리기
start_x = -300 # 초기 x 위치
line_size = 80 # 초기 한 변의 길이
n_lst = [3,4,5,6] # 도형의 5각형, 5각형, 8각형
a_lst = [60, 45, 36, 30] # 그리는 도형에 따른 각도
color = ['red', 'blue', 'green', 'yellow'] # 도형에 따른 색
for i in range(len(n_lst)): # 도형 수에 따른 반복
# draw_rectangle(start_x, 0, 96) # 사걱형 외곽 그리기. (x,y, 라인 반절 크기)
t.up() # 이동시 선이 그려지지 않기 위한 펜 들기
t.home() # 위치, 각도 초기화
t.goto(start_x, 0) # 펜 이동
t.down() # 그리기 위해 펜 내리기
t.left(a_lst[i]) # 도형에 따른 각도 지정
t.color(color[i]) # 색 지정
t.begin_fill() # 색 채우기 시작
n = n_lst[i] # 도형을 몇 번 회전할 것인지
angle = 360 // n # 하나의 다각형이 회전하기 위한 각도
for j in range(n): # 하나의 도형을 그리기 위한 반복문
t.forward(line_size) # 선 그리면 이동
t.left(360//n) # 회전
t.end_fill() # 색 채우기 종료
start_x += 140 # 도형에 따라 시작 위치 계산
line_size -= 10 # 한 변의 길이를 같은 길이로 하면 도형이 커지기 때문에 -10 씩 함
draw_rectangle(240, -60, 100, 130) # 사각형 그리기
t.up() # 이동시 선이 그려지지 않기 위한 펜 들기
t.home()
t.goto(300, 30) # 펜 이동
t.down() # 그리기 위해 펜 내리기
n = 3 # 도형을 몇 번 회전할 것인지
angle = 360 // n # 하나의 다각형이 회전하기 위한 각도
t.color('red') # 색지정
t.begin_fill() # 색 채우기 시작
for j in range(n): # 하나의 도형을 그리기 위한 반복문
t.forward(80) # 선 그리면 이동
t.left(360//n) # 회전
t.end_fill() # 색 채우기 종료
t.up() # 이동시 선이 그려지지 않기 위한 펜 들기
t.home()
t.goto(300, -30) # 펜 이동
t.down() # 그리기 위해 펜 내리기
n = 4 # 도형을 몇 번 회전할 것인지
angle = 360 // n # 하나의 다각형이 회전하기 위한 각도
t.color('blue')
t.begin_fill()
line_size = 80
for j in range(n): # 하나의 도형을 그리기 위한 반복문
if j%2 == 0:
line_size = 80
else:
line_size = 60
t.forward(line_size) # 선 그리면 이동
t.left(360//n) # 회전
t.end_fill()
t.done()
728x90
반응형