본문 바로가기
프로그램

[파이썬] 문제 : 터틀(turtle) 하나의 가지 그리는 함수로 눈송이 모양 그리기

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

import turtle
import random              # RGB 값을 난수로 사용하기 위한  패키지

t=turtle.Turtle()           # 터틀
turtle.colormode(255)       # RGB 컬러를 사용하기 위한 설정
t.shape('turtle')
t.speed(10)                 # 속도 빠르게
t.pensize(6)                # 펜을 두께를 변경, 두껍게

def getRGB():                   # RGB 값을 나수로 만드는 함수
    r = random.randint(0, 255)  # 0~255 값을 임의로 만듬
    g = random.randint(0, 255)
    b = random.randint(0, 255)
    return r,g,b                # 3개의 값을 리턴

def branch(distance):
    t.forward(distance)        # 왼쪽 가지 그리기
    t.backward(distance)       # 왼쪽 가지에서 390 후퇴    

def draw_branch():                  # 하나의 가지를 그리는 함수
    dist = 30
    t.pencolor(getRGB())     # pencolor(r,g,b) 함수의 r,g,b 값을 getRGB()로 바로 받음
    for i in range(3):      # 3번 반복. 전체 가지의 모양을 3개로 구분. 동리한 모양이 3번 반복
        t.forward(dist)      # 가지 처음 출발 부분 30 전진
        branch(dist)         # 30만큼 전진 후 후퇴
        t.left(45)           # 왼쪽으로 45 각도 변경
        branch(dist)         # 30만큼 전진 후 후퇴
        t.right(90)          # 오른쪽 90 각도로 변경. 
        branch(dist)         # 30만큼 전진 후 후퇴
        t.left(45)           # 전체 가지 방향이 되로고 변경
    t.backward(90)           # 가지의 출발점으로 오도록 함


for i in range(8):          # 가지가 8개
    draw_branch()                   # 그리기 함수 실행
    t.left(360/8)            # 가지가 8개면 360을 8로 나눈값으로 회전
    
turtle.done()

728x90
반응형

댓글