파이썬의 기본 모듈 중 터틀(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)은 위에서 설명했듯이 코드가 끝난 뒤 결과물을 더 자세히 보기 위해 넣은 것이다.
실행 결과는 다음 그림과 같다.
'코딩' 카테고리의 다른 글
파이썬 클래스(class) 함수 심화 [파이썬 3.7] (0) | 2020.08.15 |
---|---|
[파이썬 3.7] 함수의 응용 (0) | 2020.08.10 |
파이썬의 클래스(class) [파이썬 3.7] (0) | 2020.08.01 |
파이썬의 함수와 모듈 [파이썬 3.7] (0) | 2020.07.18 |
[파이썬 3.7] sort 없이 리스트 정렬하기 (0) | 2020.05.16 |