터틀 그래픽 실습 1
수업 목표
- 파이썬의 시각 도구인
turtle그래픽스 모듈의 작동 메커니즘을 이해하고 스크린을 제어할 수 있다. - 이동(forward/backward) 및 회전(right/left)의 기초 제어 명령어를 종합하여 다각형을 그릴 수 있다.
- 정다각형의 외각 공식(360 / N)을 적용해
for반복문 기반의 정N각형 그리기 자동화 코드를 작성할 수 있다.
생각해보기: 모니터 위의 꼬마 화가 거북이
하얀 캔버스 위에 연필을 쥐고 선을 긋거나 그림을 그리는 로봇 장치가 있다고 해봅시다. 연필을 바닥에 대고(Pen Down) 앞으로 전진하고, 원하는 각도만큼 방향을 튼 뒤 다시 전진하면 간단한 도형이 완성될 것입니다. 파이썬에서는 모니터 화면을 무대로 자유롭게 돌아다니며 꼬리에 펜을 달고 멋진 그림을 그리는 꼬마 거북이 화가 모듈을 제공합니다.
이 도구를 터틀 그래픽스(Turtle Graphics)라고 부릅니다. 텍스트 코드가 어떻게 실시간 2D 애니메이션 드로잉으로 시각화되는지 확인하고, 정다각형 그리기 공식을 활용해 반복문 코드로 거북이를 조종하는 재미있는 실습을 시작해 봅시다.
1. 터틀 그래픽스 시작하기 — 기초 소환 명령
터틀 그래픽을 사용하려면 파이썬 내장 라이브러리인 turtle 모듈을 불러와야(import) 합니다.
import turtle # 터틀 라이브러리 탑재
# 거북이 객체 생성 및 모양 지정
t = turtle.Turtle()
t.shape("turtle") # 모양을 거북이로 변경 (기본은 화살표)
꼬마 거북이 화가의 기본 조종법
| 터틀 명령어 | 거북이의 행동 | 코드 예시 및 가이드 |
|---|---|---|
forward(거리) / fd() |
바라보는 방향으로 지정한 픽셀만큼 전진 | t.forward(100) |
backward(거리) / bk() |
바라보는 방향의 반대(뒤)로 전진 (꼬리 쪽) | t.backward(50) |
right(각도) / rt() |
오른쪽(시계 방향)으로 지정한 각도만큼 회전 | t.right(90) |
left(각도) / lt() |
왼쪽(반시계 방향)으로 지정한 각도만큼 회전 | t.left(90) |
2. 반복문(for)을 활용한 정다각형 그리기 자동화
정사각형을 그리기 위해 전진과 90도 회전 명령을 4번 복사하여 쓰는 대신, for i in range(4): 반복문을 적용하면 코드가 대단히 단정해집니다.
import turtle
t = turtle.Turtle()
# 정사각형 그리기 (4회 루프)
for _ in range(4):
t.forward(100)
t.right(90) # 직각 회전
정N각형 그리기의 핵심 수학 공식: 외각 공식
거북이가 정N각형을 그리며 한 바퀴 돌아 제자리로 오기 위해 회전해야 하는 총 각도의 합은 360도입니다. 즉, 매 코너마다 거북이가 틀어야 하는 외각은 (360 / N)도가 됩니다. 이 수학적 비례 관계를 for 문 범위에 적용하면 정N각형을 자유롭게 그리는 만능 루프가 완성됩니다.
import turtle
t = turtle.Turtle()
n = 6 # 그리려는 다각형 차수 (예: 정육각형)
angle = 360 / n # 정육각형의 외각 (60도)
for _ in range(n):
t.forward(80)
t.right(angle) # 공식에 의해 계산된 60도씩 회전
자주 하는 실수 & 오류 예방
1. 내각과 외각의 착각으로 인한 드로잉 버그
정삼각형을 그리라고 지시했을 때, 정삼각형의 내각인 60도를 생각하여 t.right(60) 명령을 주어 발생하는 기하학적 형태 오류입니다. 거북이가 진행 중 회전하는 기준은 내각이 아닌 진행선의 꼬인 바깥 각도인 **외각(120도)**입니다.
오류 해결: 다각형을 그릴 때는 360 / N 공식을 거북이의 우회전(혹은 좌회전) 각도로 설정해야 완벽한 닫힌 도형이 생성됩니다. (정삼각형의 경우 360 / 3 = 120도)
2. 무한 루프 창 프리징 오류
터틀 그래픽 실행이 끝난 후 스크린 창을 끄려고 할 때, 창이 응답 없음 상태로 멈춰버리는 현상입니다.
오류 해결: 코딩 완료부 가장 끝에 turtle.done() 메서드를 작성하여 프로그램이 닫기 대기 신호를 안정적으로 받도록 방어 수식을 구성하십시오.
핵심 정리
| 정다각형 종류 | for 루프 반복 수 | 1회전당 회전 각도 | 외각 산출 연산식 |
|---|---|---|---|
| 정삼각형 | 3회 | 120도 | 360 / 3 |
| 정사각형 | 4회 | 90도 | 360 / 4 |
| 정오각형 | 5회 | 72도 | 360 / 5 |
| 정N각형 (일반화) | N회 | (360 / N)도 | 360 / N |
이번 주 대회 바로가기
1반 | 2반 | 3반 | 4반 | 5반 | 6반 | 7반 | 8반 | 9반
※ 대회 링크는 선생님이 별도 공지합니다.