Python 문법정리 _터틀그래픽스로 도형 그리기

hjseo-dev·2021년 5월 21일
0

Python 문법정리

목록 보기
4/4
post-thumbnail

Q. 터틀그래픽스란?

  • 터틀은 어린이 및 초보자가 파이썬을 쉽게 배울 수 있도록 만든 모듈인데, 거북이가 기어가는 모양대로 그림을 그린다고 해서 터틀이라고 합니다.

  • 터틀은 그림을 그리는 모듈이므로 Windows, 리눅스, macOS 그래픽 환경에서만 동작합니다. 콘솔(터미널)만 있는 환경에서는 사용할 수 없습니다.

기본적으로 turtle 모듈을 넣어주고 시작합니다.

>>> import turtle as t
>>> t.shape('turtle')

여러 방향으로 이동하는 법

앞으로 이동: forward, fd
뒤로 이동: backward, bk, back
왼쪽으로 회전: left, lt
오른쪽으로 회전: right, rt

t.mainloop() : 창이 사라지는 것을 막아줍니다

사각형 그리기

선을 그리는것을 한쪽으로 4번 반복하면 사각형이 완성됩니다

import turtle as t
 
t.shape('turtle')
for i in range(4):    # 사각형이므로 4번 반복
    t.forward(100)
    t.right(90)

이렇게 간단하게 사각형이 완성됩니다!

다각형 그리기

원하는 다각형을 입력받아서 출력하는 방법은 각도를 n으로 나눠주면 끝!

import turtle as t
 
n = int(input())        # 사용자의 입력을 받음
t.shape('turtle')
for i in range(n):      # n번 반복
    t.forward(100)
    t.right(360 / n)    # 360을 n으로 나누어서 외각을 구함

도형 색칠하기

색도 마음대로 칠해서 나타낼 수 있습니다!
color안에 색깔코드를 입력하고 begin_fill로 색칠 시작, 마지막으로 end_fill로 마무리 하면 됩니다

import turtle as t
 
n = 6    # 육각형
t.shape('turtle')
t.color('red')          # 펜의 색을 빨간색으로 설정
t.begin_fill()          # 색칠할 영역 시작
for i in range(n):      # n번 반복
    t.forward(100)
    t.right(360 / n)    # 360을 n으로 나누어서 외각을 구함
t.end_fill()            # 색칠할 영역 끝

원 그리기 속도

원을 그리는 함수인 circle로 반지름을 설정하고 속도를 넣어보았습니다.
speed 안에 들어갈 수 있는 값은 'fastest': 0, 'fast': 10, 'normal': 6, 'slow': 3
'slowest': 1 가 있습니다.

import turtle as t
 
n = 60    # 원을 60번 그림
t.shape('turtle')
t.speed('fastest')      # 거북이 속도를 가장 빠르게 설정
for i in range(n):
    t.circle(120)       # 반지름이 120인 원을 그림
    t.right(360 / n)    # 오른쪽으로 6도 회전

이외에 shape에는
'arrow', 'turtle', 'circle', 'square', 'triangle', 'classic' 등의 모양을 지정하여 보여줄 수 있습니다.

연습문제

다음 소스 코드를 완성하여 오각별이 그려지게 만드세요.

각 변의 길이는 100
별의 꼭지점은 72도를 두 번 회전해서 144도 회전
별의 다음 꼭지점을 그릴 때는 72도 회전

오각형을 그릴 때는 72도(360 / 5)를 회전합니다. 이때 별의 꼭지점은 72도를 한 번 더 회전해서 144도입니다. 따라서 t.forward(100)으로 선을 한 번 그리고 t.right((360 / n) * 2)으로 오른쪽으로 144도 회전한 뒤 t.forward(100)으로 선을 그립니다.

그리고 별의 꼭지점을 그린 뒤 다음 꼭지점을 그릴 때는 t.left(360 / n)으로 왼쪽으로 72도 회전합니다. 이렇게 5번 반복하면 오각별을 그릴 수 있습니다.

정답

import turtle as t
 
n = 5
t.shape('turtle')
for i in range(n):
 t.forward(100)
    t.right((360 / n) * 2)
    t.forward(100)
    t.left(360 / n)

0개의 댓글