본문 바로가기
코딩 따라하기

터틀 그래픽 따라하기 (Coding Turtle Graphics)

by 전자남성 2020. 12. 4.

터틀 그래픽 따라하기 (Coding Turtle Graphics)

 

저도 이제 막 코딩을 배우기 시작했습니다.

어제 터틀 그래픽이란 것을 발견했습니다.

 

터틀 그래픽이란 꼬리에 잉크가 묻은 거북이가 움직이면 거북이가 지나간 곳에 선이 그려지는 그래픽입니다.

이렇게 그림을 그리는 방식을 터틀 그래픽이라고 합니다.

터틀 그래픽은 파이썬에 기본적으로 내장되어 있는 패키지입니다. 또한 많은 메소드도 제공되고 있습니다.

분명 저 같은 입문자가 재미를 가질만한 요소를 모두 갖추고 있는 기능입니다.

 

 

import turtle as t

t.shape("turtle")

for i in range(4):

t.forward(100)

t.left(90)

 

1행은 파이썬에서 터틀 패키지를 가져옵니다.

2행은 거북이 모양 그래픽이 생성됩니다.

3행은 range(4)이기 때문에 0에서 3까지 반복됩니다.

4행은 앞으로 100만큼 전진합니다.

5행은 거북이를 왼쪽으로 90도 회전시킵니다.

 

종합하면, 거북이를 생성해서 직진으로 100만큼 간 후 90도 좌회전을 4번 반복하는 그래픽입니다.

직진 100 후 좌회전 1, 직진 100 후 좌회전 2, 직진 100 후 좌회전 3, 직진 100 후 좌회전 4번입니다.

직진 100 후 좌회전을 4번하면, 정사각형 선이 그려집니다. , 거북이가 출발했던 지점에 거북이가 다시 돌아오게 됩니다.

 

그럼 터틀 그래픽을 한 단계 응용하여 사용해보겠습니다.

 

import turtle

colors = ["red", "purple", "blue", "green", "yellow", "orange"]

t= turtle.Turtle()

 

turtle.bgcolor("black")

t.speed("slow")

t.width(3)

length = 10

 

while length < 1000 :

t.forward(length)

t.pencolor(colors[length%6])

t.right(89)

length+=5

 

1행에서 파이썬에서 터틀 패키지를 읽어옵니다.

2행에서 color 인덱스를 생성합니다.

3행에서는 새로 만들어지는 trutle 객체의 이름을 t로 지정했습니다.

 

4행에서는 배경화면을 블랙으로 설정합니다.

5행에서는 터틀이 움직이는 속도를 슬로우로 설정했습니다.

6행에서는 터틀이 지나가는 선 굵기를 3으로 설정했습니다.

7행에서는 초기 lenth 값은 10으로 설정했습니다. length는 터틀이 앞으로 나아가는 거리라고 간단히 생각하면 될 것 같습니다.

 

8행에서는 length 값이 1000 이하인 경우 while문이 계속 반복됩니다.

9행에서는 터틀이 초기에 설정한 length10 만큼 앞으로 전진합니다.

10행은 펜 칼라입니다. 칼라는 처음에 2번째 행 인데스에서 가져오게 됩니다.

length6으로 나눠서 나머지 값으로 2행 칼라 인덱스에서 가져오게 됩니다.

11행은 터틀이 length 만큼 간 후 우측으로 89도 회전합니다.

12행은 터틀이 length가 매번 5가 증가됩니다. while문이 반복될 때마다 터틀이 앞으로 나아가는 거리(length)가 길어지게 됩니다.

 

 

 

전부 종합하자면 터틀이 직선을 그리면서 움직이는데 정확히 90도 직각이 아니라 89도로 꺽입니다.

따라서 살짝 기울어진 마름모형 사각형이 점점 커지는 방식으로 터틀 그래픽이 완성됩니다.

 

추가적으로 마지막 length+=5에 대해서 좀 더 생각해보겠습니다.

이 도형의 테두리 선은 10행에서 결정되는데 10행은 2행의 인덱스 칼러를 가져옵니다.

["red", "purple", "blue", "green", "yellow", "orange"]2행의 인덱스입니다.

[   0 ,      1 ,        2 ,         3,       4 ,         5      ]은 인덱스 번호가 됩니다.

 

따라서 마지막행에서 length+=5의 경우와 lenght+=3의 경우의 도형의 펜 칼라가 분명하게 갈리게 됩니다.

 

length+=5의 경우 10행에서 계산되는 결과입니다.

초기 length 10

10/6=4 [yellow]

15/6=3 [green]

20/6=2 [blue]

25/6=1 [purple]

30/6=0 [red]

35/6=5 [orange]

40/6=4 [yellow]

45/6=3 [green]

50/6=2 [blue]

55/6=1 [purple]

length+=5의 경우, 6가지 색이 모두 고르게 출력됩니다.

 

length+=5

 

length+=3의 경우

초기 length 10

10/6=4 [yellow]

13/6=1 [purple]

16/6=4 [yellow]

19/6=1 [purple]

22/6=4 [yellow]

25/6=1 [purple]

length+=3의 경우, 2가지 색만 반복해서 출력되게 됩니다.

 

length+=3

 

파이썬에 있는 터틀 그래픽 모듈은 제가 처음 사용해봤습니다.

저는 이번에 이런 새로운 기능을 배워서 정말 뿌듯했습니다. 여러분도 그러신가요?

댓글