[파이썬] 터틀 별 그리기: for문 각도 공식 하나로 5각별·겹별까지 만드는 법

터틀로 별을 그릴 때 처음엔 코드가 짧아서 쉬워 보이지만, 실제로는 각도와 반복 규칙을 한 번에 이해해야 해서 중간에 자주 막힙니다. 특히 “왜 144도인지”, “왜 별이 닫히지 않는지”가 헷갈리는 순간부터 코드가 무작정 길어지는 경우가 많습니다.

이번 글은 파이썬 터틀 별 그리기를 결과 중심으로 다시 정리한 버전입니다. 5각별 기본 공식부터 겹별 확장, 색상/속도 튜닝, 자주 나는 오류까지 한 번에 따라갈 수 있도록 구성했습니다.

터틀 별 그리기 본문 이미지 1

터틀 별 그리기는 각도 공식과 반복 규칙을 함께 이해해야 안정적으로 완성됩니다

5각별 기본은 right(144) 반복

5각별은 선을 한 칸 건너 연결하는 구조라 회전각이 144도로 맞춰집니다. 72도는 오각형, 120도는 삼각형 패턴으로 흘러서 별이 닫히지 않습니다.

import turtle as t

t.speed(8)
for _ in range(5):
    t.forward(160)
    t.right(144)

t.done()

별이 제대로 닫히는지 먼저 확인한 뒤, 길이와 색상을 바꾸는 순서로 진행하는 것이 안전합니다.

기준 방향 고정

결과가 매번 다르게 보이면 시작 전에 setheading(90)으로 방향을 고정하세요.

겹별은 길이 증가 규칙으로 확장

기본 별 코드를 확장할 때는 회전각은 그대로 두고 선 길이만 조금씩 증가시키면 됩니다. 화려한 패턴이 쉽게 만들어져 과제/썸네일용으로 활용하기 좋습니다.

import turtle as t

t.speed(0)
length = 60
for _ in range(40):
    t.forward(length)
    t.right(144)
    length += 4

t.done()

길이 증가폭을 2~6 범위에서 조절하면 패턴 밀도를 세밀하게 조정할 수 있습니다.

색상 조합으로 가독성 높이기

별 패턴은 배경과 선 색 대비가 낮으면 잘 안 보입니다. 배경이 어두우면 선을 밝게, 배경이 밝으면 선을 진하게 고정하면 결과물이 안정적입니다.

t.bgcolor("#0f172a")
t.pencolor("#facc15")
t.pensize(3)

캡처용 세팅 팁

블로그 이미지용으로는 pensize(3~4), speed(0) 조합이 가장 깔끔합니다.

터틀 별 그리기 본문 이미지 2

초보가 가장 많이 틀리는 오류

반복 횟수 부족

range(5)가 아니라 range(4)로 작성하면 별이 닫히지 않습니다.

각도 오타

144 대신 145, 143으로 입력하면 미세하게 어긋나며 누적 오차가 생깁니다.

창이 바로 닫힘

스크립트 끝에 done()이 빠졌는지 확인하세요.

별 응용 패턴 2가지

이중 별

별을 한 번 그린 뒤 방향을 36도 회전해 같은 별을 한 번 더 겹치면 육각형 느낌의 패턴이 나옵니다.

원형 별 배열

별 하나를 그리고 right(12)로 회전하며 반복하면 원형 만다라 스타일로 확장할 수 있습니다.

정리

파이썬 터틀 별 그리기는 144도 공식과 반복 규칙만 정확히 잡으면 어렵지 않습니다. 기본 별을 먼저 완성하고 길이·색상·반복을 단계적으로 확장하면 고품질 패턴을 안정적으로 만들 수 있습니다.

실습 전에 2분 점검하면 실패를 줄일 수 있습니다

실습이 길어질수록 작은 기준 하나가 전체 결과를 좌우합니다. 그래서 코드를 돌리기 전에 현재 상태를 짧게 확인하는 루틴을 추천합니다. 방향 예제라면 현재 heading 값을 먼저 찍고, 별 그리기라면 반복 횟수와 각도를 체크한 뒤 시작하는 식입니다. 이 습관만 잡혀도 “왜 결과가 다르지?”를 반복하는 시간이 확 줄어듭니다.

빠른 점검 루틴

1) 시작 방향 고정 여부 확인, 2) 반복 횟수 확인, 3) 각도 오타 확인, 4) 마지막 done() 확인. 네 가지를 순서대로 보면 대부분의 오류를 초반에 걸러낼 수 있습니다. 특히 과제 제출 직전에는 이 루틴이 큰 도움이 됩니다.

추가 점검 이미지

댓글 남기기

광고보고 콘텐츠 계속 읽기
원치않으시면 뒤로가기를 해주세요
광고보고 콘텐츠 계속 읽기
원치않으시면 뒤로가기를 해주세요