본문 바로가기
프로그램

[파이썬] 문제 : 터틀(turtle) 임의의 크기, 각도, 이동해 5개 거북이 그리기

by 오디세이99 2023. 5. 5.
728x90
반응형

import turtle
import random

t = turtle.Turtle()
t.speed(0)
t.shape('turtle')                    # 거북 모양

def draw_polygon(pn):        # 다각형 그리기
    for i in range(pn):      # 다각형에서 변의 수만큼 반복
        t.forward(100)        # 한변 그리기
        t.left(int(360/pn))   # 360도를 4각형일때 4호 나누면 각도 구할 수 있음

lst = []
for i in range(5):            # 5개의 크기 램덤 생성
    lst.append(random.randint(1, 100)/10)

lst.sort()                    # 정렬

pos = []                      # 거북이의 위치 저장 변수
for i in range(5):           # 5개의 거북이 그리기
    r = random.random()       # R,G,B 칼러의 램덤 생성
    g = random.random()
    b = random.random()
    t.color(r, g, b)          # 색 지정
    t.shapesize(lst[i])       # 거북이 크기 지정. 랜덤 생성된 크기의 정렬해서 작은 크기부터 큰 크리고 그리기
    t.stamp()                 # 거북이 찍기
    t.right(random.randint(0, 360))     # 0~360도의 임의의 각도
    pos.append([t.xcor(), t.ycor()])    # 현재 거북이 좌표,  x, y 저장
    t.penup()                           # 이동하기 위해 penup
    t.forward(random.randint(60, 300))  # 이동. 임의의 거리
    t.pendown()                         # 다음 그리기 위해 pendown

# 거북이 그리면서 선을 그려도 되지만 문제에서 좌표를 저장한 후에 그리라고 햇으므로
t.penup()
t.goto(pos[0][0], pos[0][1])    # 처음 위치로 이동
t.pendown()
for i in range(len(pos)):      # 각 거북이 좌표 수 만큼 반복
    t.goto(pos[i][0], pos[i][1])   # 거북이 좌표로 이동
    

turtle.done()

try:
    turtle.bye()
except:
    print("bye")

728x90
반응형

댓글