문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인
← 수업 목록
▶ 슬라이드 시작

터틀 그래픽 실습 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반

※ 대회 링크는 선생님이 별도 공지합니다.

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘