2거북이 그래픽의 동작 방식
앞서 거북이 그래픽은 꼬리에 잉크를 묻힌 거북이가 하얀 종이 위를 기어 다니는 것과 비슷하다고 설명했습니다. 파이썬은 거북이 그래픽을 시작하면 창(window)을 적당한 크기로 만듭니다. 그런 다음 배경을 하얗게 칠하고 창의 한가운데인 좌푯값 (0, 0)에 거북이를 오른쪽으로 향하도록 세워 놓고(x 축의 + 방향), 사용자가 명령을 내리기를 기다립니다.
그림 6-1 꼬리에 잉크를 묻힌 거북이
거북이 모양을 따로 지정하지 않으면 기본으로 화살촉 모양이 표시됩니다.
t.shape("turtle") 문장을 쓰면 거북이 모양이 표시되고, t.shape ("triangle") 문장을 쓰면 세모가 표시됩니다.
그림 6-2 다양한 거북이 모양을 지정할 수 있습니다.
이제 거북이에게 앞으로 이동, 뒤로 이동, 왼쪽으로 회전, 오른쪽으로 회전과 같은 명령을 내리면 거북이가 명령대로 움직입니다. 움직이면서 지나간 자리에는 그림이 그려집니다. 파이썬의 거북이가 움직이고 그림만 그리는 것은 아닙니다. 추가 기능을 이용하면 다양한 행동을 합니다.
대표적인 추가 기능에는 꼬리 들고 내리기(꼬리를 들고 이동하면 거북이는 움직이지만 선이 그려지지는 않습니다), 그려지는 선 색깔이나 굵기 바꾸기, 원 그리기, 색칠하기 등이 있습니다.
표 6-2에 자주 사용하는 기능을 정리해 두었습니다.
함수 |
설명 |
사용 예 |
forward(거리)/ fd(거리) |
거북이가 앞으로 이동합니다. |
t.forward(100) # 거북이가 100만큼 앞으로 이동합니다. |
backward(거리) / back(거리) |
거북이가 뒤로 이동합니다. |
t.back(50) # 거북이가 50만큼 뒤로 이동합니다. |
left(각도) / lt(각도) |
거북이가 왼쪽으로 회전합니다. |
t.left(45) # 거북이가 45도 왼쪽으로 회전합니다. |
right(각도) / rt(각도) |
거북이가 오른쪽으로 회전합니다. |
t.right(45) # 거북이가 45도 오른쪽으로 회전합니다. |
circle(반지름) |
현재 위치에서 원을 그립니다. |
t.circle(50) # 반지름이 50인 원을 그립니다. |
down( ) / pendown( ) |
펜(잉크 묻힌 꼬리)을 내립니다. |
t.down() # 이제 움직이면 그림이 그려집니다. |
up( ) / penup( ) |
펜(잉크 묻힌 꼬리)을 올립니다. |
t.up() # 거북이가 움직여도 선이 그려지지 않습니다. |
shape(“모양”) |
거북이 모양을 바꿉니다. |
t.shape("turtle") # 진짜 거북이 모양으로 지정합니다. t.shape("arrow") # 화살표 모양의 거북이로 지정합니다. ※ 거북이 모양으로 "circle", "square", "triangle"을 사용할 수 있습니다. |
speed(속도) |
거북이 속도를 바꿉니다. |
t.speed(1) # 가장 느린 속도 t.speed(10) # 빠른 속도 t.speed(0) # 최고 속도 |
pensize(굵기) / width |
펜 굵기를 바꿉니다. |
t.pensize(3) # 굵은 선으로 선을 그립니다. |
color(“색 이름”) |
펜 색을 바꿉니다. |
t.color("red") # 빨간색으로 선을 그립니다. |
bgcolor(“색 이름”) |
화면의 배경색을 바꿉니다. |
t.bgcolor("black") # 배경색을 흰색에서 검은색으로 바꿉니다. |
fillcolor(“색 이름”) |
도형 내부를 칠하는 색을 바꿉니다. |
t.fillcolor("green") # 녹색으로 도형 내부를 칠합니다. ※ 색상을 따로 지정하지 않으면 현재 색으로 칠합니다. |
begin_fill( ) |
도형 내부를 색칠할 준비를 합니다. |
t.begin_fill() # 거북이 움직임을 색칠할 준비를 합니다. |
end_fill( ) |
도형 내부를 색칠합니다. |
t.end_fill() # begin_fill( ) 이후부터 지금까지 그린 그림에 맞춰 내부를 색칠합니다. |
showturtle( ) / st( ) |
거북이를 화면에 표시합니다. |
t.st() # 거북이를 화면에 표시합니다(기본 상태). |
hideturtle( ) / ht( ) |
거북이를 화면에서 가립니다. |
t.ht() # 거북이를 숨깁니다. |
clear( ) |
거북이를 그대로 둔 채 화면을 지웁니다. |
t.clear() |
reset( ) |
화면을 지우고 거북이도 원래 자리와 상태로 되돌립니다. |
t.reset() |
표 6-2 자주 사용하는 거북이 그래픽 명령어 1
※ 슬래시 기호(/) 뒤에 적힌 명령어는 같은 기능을 하는 별명입니다. 원하는 것을 사용하면 됩니다.
TIP
자주 사용하는 거북이 그래픽 명령어는 Day 13에 추가로 정리해 두었습니다.
거북이 그래픽의 모든 기능이 아니라 자주 사용하는 기능만 적었는데도 꽤 많습니다. 하지만 모든 기능을 다 외울 필요도 없고 사용할 필요도 없습니다. 어떤 것이 있는지 대략 파악했으면 예제를 따라하면서 사용법을 익히면 됩니다. 또한, 부록 B에 거북이 그래픽 명령어 참고 표를 정리해 두었으니 거북이로 그리고 싶은 멋진 아이디어가 떠오르면 참고하세요.