본문 바로가기

코딩

파이썬 3.7로 태극기 그리기

파이썬의 기본 모듈 중 터틀(turtle)이라는 모듈을 활용해서 태극기를 그려보았다.

 

먼저 모듈을 불러오고 거북이를 기본 세팅했다.

 

import turtle
import time

t = turtle.Turtle()

t.shape("turtle")

 

여기서 time 모듈을 불러온 이유는 코드가 끝나고 나면 바로 터틀 화면이 꺼지기 때문에 완성된 작품을 보기 위해 슬립(sleep)이라는 기능을 사용해서 몇 초간 더 볼 수 있도록 하기 위한 것이다.

 

다음은 그림을 쉽게 그리기 위한 함수이다.

 

# 태극기 긴 검은 줄
def long():
    t.begin_fill()
    t.forward(100)
    t.left(90)
    t.forward(12.5)
    t.left(90)
    t.forward(100)
    t.left(90)
    t.forward(12.5)
    t.end_fill()

# 태극기 짧은 줄
def short():
    t.begin_fill()
    t.forward(45)
    t.left(90)
    t.forward(12.5)
    t.left(90)
    t.forward(45)
    t.left(90)
    t.forward(12.5)
    t.end_fill()

# 태극기 간격 1
def space1():
    t.left(180)
    t.penup()
    t.forward(18.75)
    t.pendown()
    t.right(90)

# 태극기 간격 2
def space2():
    t.left(90)
    t.penup()
    t.forward(55)
    t.pendown()

# 태극기 간격 3
def space3():
    t.right(90)
    t.penup()
    t.forward(55)
    t.pendown()
    t.left(180)

# 태극기 간격 4
def space4():
    t.penup()
    t.forward(18.75)
    t.pendown()
    t.left(90)

 

태극기 간격 1 함수는 화면 왼쪽에 있는 터틀이 가로로 이동할 때 쓰는 함수이다.

 

태극기 간격 2 함수는 터틀이 세로로 이동할 때 쓰는 함수이다.

 

태극기 간격 3 함수도 터틀이 세로로 이동할 때 쓰는 함수이다.

 

태극기 간격 4 함수는 화면 오른쪽에 있는 터틀이 가로로 이동할 때 쓰는 함수이다.

 

원래 간격 함수를 2개만 만들어도 충분히 코드를 실행시킬 수 있지만 코드를 작성하다 보니 편의상 4개까지 만들게 되었다.

 

이제 모든 함수를 만들었으므로 태극기를 본격적으로 그릴 수 있다.

 

먼저 가운데 태극 문양을 그려야 한다.

 

# 태극기 태극 문양
t.penup()
t.goto(100,0)
t.pendown()
t.left(90)
t.color("red")
t.begin_fill()
t.circle(100,180)
t.circle(50,180)
t.penup()
t.goto(100,0)
t.pendown()
t.circle(50,180)
t.end_fill()
t.penup()
t.goto(-100,0)
t.pendown()
t.color("blue")
t.begin_fill()
t.circle(100,180)
t.circle(50,180)
t.penup()
t.goto(-100,0)
t.pendown()
t.circle(50,180)
t.end_fill()

 

원래 반원을 그리는 과정을 함수로 줄여서 작성할 수도 있지만 이해를 돕기 위해 이렇게 길게 풀어서 작성했다.

 

이제 태극기의 건곤감리를 그릴 차례다.

 

# 태극기 건
t.color("black")
t.penup()
t.goto(-150, 75)
t.pendown()
t.right(45)
long()
space1()
long()
space1()
long()

# 태극기 곤
t.penup()
t.goto(100, -150)
t.pendown()
t.left(90)
short()
space2()
short()
space4()
short()
space3()
short()
space4()
short()
space2()
short()

# 태극기 감
t.penup()
t.goto(160, 75)
t.left(90)
t.forward(12.5)
t.pendown()
t.left(90)
short()
space2()
short()
space4()
t.penup()
t.back(55)
long()
space4()
short()
space2()
short()

# 태극기 리
t.penup()
t.goto(-180, -100)
t.pendown()
t.right(90)
long()
space1()
short()
space2()
short()
t.penup()
t.left(180)
t.forward(18.75)
t.left(90)
t.forward(55)
t.left(180)
t.pendown()
long()

time.sleep(3)

 

앞서 설명한 함수들을 이용해서 건곤감리를 다음처럼 그렸다.

 

중간중간에 t.left(180)이나 t.forward(18.75) 등의 기타 코드가 들어간 이유는 함수만으로는 표현되지 않는 부분들을 보충하기 위함이다.

 

그리고 마지막 줄에 있는 time.sleep(3)은 위에서 설명했듯이 코드가 끝난 뒤 결과물을 더 자세히 보기 위해 넣은 것이다.

 

실행 결과는 다음 그림과 같다.

파이썬으로 그린 태극기