chipkkang9's story

[CodingDojang] 터틀 그래픽스 이용하기 본문

Language/Python

[CodingDojang] 터틀 그래픽스 이용하기

chipkkang 2022. 2. 23. 18:18

터틀 그래픽스라는 모듈을 이용하면 간단한 방법으로 간단한 그림을 그릴 수 있다.

import 명령어를 통해 turtle 모듈을 포함시키면 사용할 수 있는 간단한 코드이다.

사각형 그리기

간단하게 사각형을 그려보겠다. 사각형을 그리기 위해서는 앞으로 가고, 오른쪽으로 꺾고, 등등 움직임을 제어하는 명령어를 알아야 할 것이다.

움직임을 제어하는 명령어는 아래와 같다.

  • 앞으로 이동: forward, fd
  • 뒤로 이동: backward, bk, back
  • 왼쪽으로 회전: left, lt
  • 오른쪽으로 회전: right, rt

앞으로 움직이거나 뒤로 이동하는 것은 거리를 함께 입력해주고, 회전하는 명령어는 각도로 입력해준다.

그러면 사각형을 그리는 코드를 작성해보겠다.

import turtle as t
 
t.shape('turtle')
 
t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(100)
t.rt(90)
t.fd(100)

음... 코드가 길다. 우리는 지성인이기 때문에 코드를 조금 더 간결하게 만들어보겠다.]

import turtle as t
 
t.shape('turtle')
for i in range(4):    # 사각형이므로 4번 반복
    t.forward(100)
    t.right(90)

오각형 그리기

사각형은 그려봤으니까 조금 더 다양한 도형들을 그려보겠다.

오각형을 한 번 그려볼까?

import turtle as t
 
t.shape('turtle')
for i in range(5):      # 오각형이므로 5번 반복
    t.forward(100)
    t.right(360 / 5)    # 3605로 나누어서 외각을 구함

다각형 그리기

그러면 나아가서 n각형을 그리려면 어떻게 하면 될까? 간단하다. 우리는 지성인임을 잊지 말자.

import turtle as t
 
n = int(input())        # 사용자의 입력을 받음
t.shape('turtle')
for i in range(n):      # n번 반복
    t.forward(100)
    t.right(360 / n)    # 360을 n으로 나누어서 외각을 구함

다각형에 색칠하기

아마 별도의 명령어가 없을 경우에는 검은 실선으로만 도형이 그려졌을 것이다. 이번에는 그린 다각형에 색을 칠해보겠다.

color 명령어를 작성하고, begin_fill() 명령어를 사용하면 다각형에 색을 채워넣을 수 있다.

import turtle as t
 
n = int(input())
t.shape('turtle')
t.color('red')          # 펜의 색을 빨간색으로 설정
t.begin_fill()          # 색칠할 영역 시작
for i in range(n):      # n번 반복
    t.forward(100)
    t.right(360 / n)    # 360을 n으로 나누어서 외각을 구함
t.end_fill()            # 색칠할 영역 끝

복잡한 도형 그리기

이번에는 여러모로 복잡한 도형을 그려보겠다.

 

우선, 원을 한 번 그려보자. circle 명령어를 이용하면 된다. circle명령어 뒤에 오는 괄호 안에는 생성할 원의 반지름을 의미한다.

import turtle as t

t.shape('turtle')
t.circle(120)

그 다음에는 수많은 원을 겹쳐서 큰 원을 만들어보겠다. 코딩도장에 있는 예시인데 왜 이런 원을 그리는건지는 나도 잘 모르겠다. 뒤에 따라 나올 도형들도 마찬가지이다.

import turtle as t
 
n = 60    # 원을 60번 그림
t.shape('turtle')
t.speed('fastest')      # 거북이 속도를 가장 빠르게 설정
for i in range(n):
    t.circle(120)       # 반지름이 120인 원을 그림
    t.right(360 / n)    # 오른쪽으로 6도 회전

복잡한 선무늬

import turtle as t
 
t.shape('turtle')
t.speed('fastest')      # 거북이 속도를 가장 빠르게 설정
for i in range(300):    # 300번 반복
    t.forward(i)        # i만큼 앞으로 이동. 반복할 때마다 선이 길어짐
    t.right(91)         # 오른쪽으로 91도 회전