삶의 공유

[Python] Turtle 객체를 이용하여 그림 그리기 본문

Data Scientist/Python

[Python] Turtle 객체를 이용하여 그림 그리기

dkrehd 2022. 8. 15. 21:34
728x90
반응형

안녕하세요 ~

 

오늘은 Python으로 Turtle 객체를 이용하여 그림 그리는 포스팅에 대해서 다뤄 보겠습니다.

 

먼저 Turtle 모듈를 불러와서 Tutle 객체를 생성합니다.

 

import turtle as t

tim = t.Turtle() # Turtle 객체 생성

 

 

그리고 일반 점선을 그려보는 코드를 보여드리겠습니다.

 

for _ in range(15):
    tim.forward(10) # pen으로 그리기 시작 10씩
    tim.penup() # 펜을 뗀다
    tim.forward(10) # 뗀체로 10을 이동
    tim.pendown() # 펜을 다시 내려놓는다.

요렇게 그리시면 아래와 같이 점선이 그려지는 것을 볼 수 있습니다.

 

이제 여기서 난이도를 더해서 5각형을 그려보겠습니다.

 

오각형의 내각의 크기는 108도 입니다. 그림을 그릴때는 108도를 반영하는 것이 아니라 실제 거북이가 움직는 방향에서 움직이는 각도를 설정 해야합니다. 

그렇게 계산 하면 180 - 108 = 72가 나오는 것을 볼 수 있습니다. 

360 / 5  = 72 가 나온다는 것을 더 알 수 있습니다. 그럼 이걸 반영해서 코드로 구현하면 아래와 같습니다.

# 오각형 그리기
num_sides = 5
for _ in range(num_sides):
    angle = 360 / num_sides 
    tim.forward(100)
    tim.right(angle)

 

그럼 이번엔 여러가지 각형들을 그려보도록 하겠습니다. 거기에 색깔도 랜덤으로 바꿔가면서 해보겠습니다.

 

먼저 랜덤 모듈을 불러오고 turtle 객체에서 사용할 색 리스트를 선언 하겠습니다.

import random

colours = ["CornflowerBlue", "DarkOrchid", "IndianRed", "DeepSkyBlue", "LightSeaGreen", "wheat", "SlateGray", "SeaGreen"]

 

그리고 앞서 만들어 두었던 오각형 그리는 코드를 함수로 만들고 num_sides변수를 입력 인자로 받는 함수로 구현하겠습니다.

def draw_shape(num_sides):
    for _ in range(num_sides):
        angle = 360 / num_sides 
        tim.forward(100)
        tim.right(angle)

 

이제 색을 바꿔가면서 위에 구현한 draw_shape함수를 호출해보겠습니다. 코드는 아래와 같습니다.

for shape_side_n in range(3, 100):
    tim.color(random.choice(colours))
    draw_shape(shape_side_n)

 

결과는 아래와 같이 잘 나오는 것을 볼 수 있습니다.

 

 

 

반응형