터틀 그래픽 실습 2
1 / 7

터틀 그래픽 실습 2

도형 그리기 함수를 활용해 조립식 기하학 아트 그리기

펜 제어(penup/pendown), goto 좌표 이동, 드로잉 모듈 함수화 및 패턴 연산

오늘의 수업 목표

  • penup/pendown 통제 및 goto를 활용해 선이 튀지 않게 안전하게 좌표 이동한다.
  • 위치와 크기를 파라미터로 받는 사각형/원 드로잉 함수를 모듈화한다.
  • 드로잉 함수와 for 루프의 각도 연산을 엮어 기하학 문양을 연출한다.

펜 들어올리기와 내리기 규칙

펜 자국 없이 특정 좌표로 순간 이동할 때의 안전 프로토콜

t.penup()          # 1. 펜 떼기 (선 그리기 방지)
t.goto(-100, 50)   # 2. X:-100, Y:50 위치로 이동
t.pendown()        # 3. 펜 대기 (다시 그릴 수 있게 셋팅)

t.color("red")
t.pensize(3)
t.forward(100)     # 4. 빨간선 드로잉

드로잉 함수 모듈화

원하는 곳에 원하는 크기와 색상으로 임의의 도형을 소환하는 모듈 함수

# 도형 모듈 정의
def draw_square(x, y, size, color_name):
    t.penup()
    t.goto(x, y)
    t.pendown()
    t.color(color_name)
    for _ in range(4):
        t.forward(size)
        t.right(90)

# 다른 인자로 호출하여 조립
draw_square(-50, 50, 30, "blue")
draw_square(100, -100, 80, "green")

반복문과 결합한 기하학 패턴

정의된 도형 드로잉 함수를 루프 내에서 각도를 틀어가며 반복 호출합니다.

t.speed(0)  # 속도를 최대치로 지정

def draw_star(size):
    for _ in range(5):
        t.forward(size)
        t.right(144)

# 12도씩 돌려가며 30번 호출
for _ in range(30):
    draw_star(120)
    t.right(12)

드로잉 제어 시의 흔한 오작동

# ❌ penup() 해제 누락 오류
t.penup()
t.goto(50, 50)
t.forward(100)  # ⚠️ pendown()이 없어서 선이 그려지지 않고 빈 화면 유지됨
# 대안: goto 동작 이후 pendown() 매칭을 기계적으로 확인

# ❌ 화면 버벅임 해소
t.speed(0)  # 애니메이션 최적 속도 셋팅

드로잉 함수 심화 가이드 요약

실천 과제구현 솔루션
선 꼬임 방지이동 명령인 goto 전후에 penup() / pendown()을 페어로 선언
코드 모듈화도형의 x, y, size, color를 매개변수 인터페이스로 받아 def 포장
패턴 생성루프 안에 도형 드로잉 함수를 두고 누적 각도 연산을 엮어 반복 수행
ESC — 수업으로 돌아가기  ·  F — 전체화면