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

파이썬 터틀(Turtle) 프로그래밍 완벽 가이드


터틀(Turtle)은 파이썬의 독특하고 매력적인 기능 중 하나입니다. 터틀 모듈을 활용하면 마치 그림판에 그리듯 간단한 명령만으로 다양한 도형과 패턴을 화면에 손쉽게 그릴 수 있습니다.

사용 방법은 매우 간단합니다. 먼저 turtle 모듈을 임포트하고, 그래픽 창(윈도우)을 생성한 뒤, 거북이 객체를 만들어 터틀이 제공하는 메서드를 호출하면 됩니다.

터틀 주요 메서드 정리

메서드 매개변수 설명
Turtle() 없음 새로운 거북이 객체를 생성하여 반환합니다
forward() 거리(amount) 지정한 거리만큼 거북이를 앞으로 이동시킵니다
backward() 거리(amount) 지정한 거리만큼 거북이를 뒤로 이동시킵니다
right() 각도(angle) 거북이를 시계 방향으로 회전시킵니다
left() 각도(angle) 거북이를 반시계 방향으로 회전시킵니다
penup() 없음 거북이의 펜을 들어 올립니다
pendown() 없음 거북이의 펜을 내려놓습니다
up() 없음 펜을 들어 올립니다
down() 없음 펜을 내려놓습니다
color() 색상 이름 거북이 펜의 색상을 변경합니다
fillcolor() 색상 이름 다각형을 채울 때 사용할 색상을 변경합니다
heading() 없음 현재 진행 방향(헤딩)을 반환합니다
position() 없음 현재 위치를 반환합니다
goto() x, y 거북이를 좌표 (x, y) 위치로 이동시킵니다
begin_fill() 없음 색을 채울 다각형의 시작점을 기억합니다
end_fill() 없음 다각형을 닫고 현재 설정된 채우기 색상으로 채웁니다
dot() 없음 현재 위치에 점(dot)을 남깁니다
stamp() 없음 현재 위치에 거북이 모양의 도장을 찍습니다
shape() shapename 'arrow', 'classic', 'turtle', 'circle' 중 하나를 지정합니다

기본 사용 예제

아래 예제는 파란색 배경의 그래픽 창을 만들고, 흰색 굵은 선으로 선분을 그리는 기본적인 코드입니다.

# import turtle library
import turtle             
my_window = turtle.Screen() 
my_window.bgcolor("blue")       # creates a graphics window
my_pen = turtle.Turtle()      
my_pen.forward(150)           
my_pen.left(90)               
my_pen.forward(75)
my_pen.color("white")
my_pen.pensize(12)

실행 결과

파이썬 터틀(Turtle) 프로그래밍 완벽 가이드

사각형 그리기

반복문(for)을 활용하면 같은 동작을 여러 번 반복하는 도형을 간단하게 그릴 수 있습니다. 사각형은 앞으로 이동 후 90도씩 회전하는 동작을 4번 반복하면 완성됩니다.

# import turtle library
import turtle             
my_pen = turtle.Turtle()      
for i in range(4):
   my_pen.forward(50)           
   my_pen.right(90)               
turtle.done()

실행 결과

파이썬 터틀(Turtle) 프로그래밍 완벽 가이드

별 그리기

오각별을 그리려면 각 꼭짓점에서 144도씩 회전하면 됩니다. 아래 예제는 반복 횟수를 늘려 별 모양의 나선 패턴을 만들어냅니다.

# import turtle library
import turtle             
my_pen = turtle.Turtle()      
for i in range(50):
   my_pen.forward(50)           
   my_pen.right(144)               
turtle.done()

실행 결과

파이썬 터틀(Turtle) 프로그래밍 완벽 가이드

육각형 그리기

정다각형의 외각은 항상 360도이므로, 변의 개수로 360을 나누면 한 번에 회전해야 할 각도를 구할 수 있습니다. 육각형의 경우 360 ÷ 6 = 60도가 됩니다.

# import turtle library
import turtle             
polygon = turtle.Turtle()
my_num_sides = 6
my_side_length = 70
my_angle = 360.0 / my_num_sides
for i in range(my_num_sides):
   polygon.forward(my_side_length)           
   polygon.right(my_angle) 
turtle.done()

실행 결과

파이썬 터틀(Turtle) 프로그래밍 완벽 가이드

사각형 안에 사각형 그리기

함수를 정의하고 크기를 조금씩 줄여가며 여러 번 호출하면, 점점 작아지는 사각형이 겹쳐진 아름다운 패턴을 만들 수 있습니다.

# import turtle library
import turtle             
my_wn = turtle.Screen()
my_wn.bgcolor("light blue")
my_wn.title("Turtle")
my_pen = turtle.Turtle()
my_pen.color("black")
def my_sqrfunc(size):
   for i in range(4):
      my_pen.fd(size)
      my_pen.left(90)
      size = size - 5
my_sqrfunc(146)
my_sqrfunc(126)
my_sqrfunc(106)
my_sqrfunc(86)
my_sqrfunc(66)
my_sqrfunc(46)
my_sqrfunc(26)

실행 결과

파이썬 터틀(Turtle) 프로그래밍 완벽 가이드

원을 이용한 패턴 그리기

circle() 메서드에 음수 값을 넣으면 반대 방향으로 원을 그립니다. 양방향 원을 반복적으로 그리고 회전시키면 입체감 있는 원형 패턴이 완성됩니다.

# import turtle library
import turtle             
my_wn = turtle.Screen()
turtle.speed(2)
for i in range(30):
   turtle.circle(5*i)
   turtle.circle(-5*i)
   turtle.left(i)
turtle.exitonclick()

실행 결과

파이썬 터틀(Turtle) 프로그래밍 완벽 가이드

컬러풀한 나선 패턴 그리기

색상 리스트와 나머지 연산(%)을 활용하면 여러 색상을 순환하며 사용할 수 있습니다. 선의 두께와 이동 거리를 점차 늘리면 화려한 나선 패턴이 탄생합니다.

# import turtle library
import turtle             
colors = [ "red","purple","blue","green","orange","yellow"]
my_pen = turtle.Pen()
turtle.bgcolor("black")
for x in range(360):
   my_pen.pencolor(colors[x % 6])
   my_pen.width(x/100 + 1)
   my_pen.forward(x)
   my_pen.left(59)

실행 결과

파이썬 터틀(Turtle) 프로그래밍 완벽 가이드