프로젝트 목적
파이썬의 Turtle graphics를 이용해서 화면에 그림을 그려보자
import turtle
import random
pat = turtle.Turtle()
turtle.Screen().bgcolor('grey')
colors = ['cyan', 'purple', 'white', 'blue']
pat.penup()
pat.forward(90)
pat.left(45)
pat.pendown()
def branch():
for i in range(3):
for i in range(3):
pat.forward(15)
pat.backward(15)
pat.right(45)
pat.left(90)
pat.backward(15)
pat.left(45)
pat.right(90)
pat.forward(45)
for i in range(8):
branch()
pat.left(45)
import turtle
import random # 오른쪽 두 줄의 코드로 turtle과 random의 libereis를 불러 옴
pat = turtle.Turtle() # turtle을 편리하게 사용하기 위한 코드 / why-> turtle을 코드 안에서 사용하려면 항상 turtle.Tortle()의 형식을 항상 prefix로 매번 붙여줘야 한다. pat에 assign해 놓으면 수고를 줄여준다
turtle.screensize(canvwidth=500, canvheight=500, bg='grey')
# pat을 그릴 시작포인트 지정하는 코드
pat.penup() # 마치 펜을 공중에 들면 아무것도 drawing할 수 없는 상태가 되는 것과 같은 효과 / drawing의 start point를 변경하고 싶거나 점선 drawing과 같은 효과를 낼 때 사용됨
pat.forward(90) # drawing cursor가 cursor의 angle방향으로 가로안 숫자만큼 앞으로 이동
pat.left(45) # 커서의 angle를 변경 / 새로운 이동방향을 지정해 줌
pat.pendown() # 캔버스에 drawing이 눈으로 확인가능하게 만들어주는 기능 / 이제 드로잉 확인이 가능
# 파이썬에서는 def 표시는 해당 코드블럭이 function이라는 의미 / 눈꽃의 잎사귀 하나를 그리는 코드를 function으로 묶어 두었다
def branch():
for i in range(3):
for i in range(3):
pat.forward(15)
pat.backward(15)
pat.right(45)
pat.left(90)
pat.backward(15)
pat.left(45)
pat.right(90)
pat.forward(45)
# 눈꽃 하나를 그리는 코드 / 눈꽃은 총 8개의 잎사귀로 구성됨
for i in range(8):
branch()
pat.left(45) # 잎사귀 하나를 그린 후 커서를 45도 방향으로 틀어줘야 다음 잎사귀가 처음 잎사귀랑 겹치지 않게 그려진다. 45도씩 각도를 틀어가면서 총 8개의 잎사귀가 그려지면 눈꽃 한송이 완성!
import turtle
import random
pat = turtle.Turtle()
turtle.screensize(canvwidth=500, canvheight=500, bg='grey')
colors = ['cyan', 'purple', 'white', 'blue' ]
pat.penup()
pat.forward(90)
pat.left(45)
pat.pendown()
def branch():
for i in range(3):
for i in range(3):
pat.forward(15)
pat.backward(15)
pat.right(45)
pat.left(90)
pat.backward(15)
pat.left(45)
pat.right(90)
pat.forward(45)
for i in range(10):
for i in range(8):
branch()
pat.left(45)
pat.penup()
pat.forward(random. randint(0,360))
pat.right(random. randint(0,360))
pat.pendown()
pat.color(random.choice(colors))
import turtle
import random
pat = turtle.Turtle()
turtle.screensize(canvwidth=500, canvheight=500, bg='grey')
colors = ['cyan', 'purple', 'white', 'blue' ] #random libery를 이용해 눈꽃 색깔을 랜덤하게 설정하기 위한 list
pat.penup()
pat.forward(90)
pat.left(45)
pat.pendown()
def branch():
for i in range(3):
for i in range(3):
pat.forward(15)
pat.backward(15)
pat.right(45)
pat.left(90)
pat.backward(15)
pat.left(45)
pat.right(90)
pat.forward(45)
for i in range(10): # 눈꽃을 총 10개 그려준다
for i in range(8):
branch()
pat.left(45)
pat.penup() # 펜을 다시 non-drawing상태로 만듬
pat.forward(random. randint(0,360)) #새로 그릴 눈꽃의 위치를 설정해주는 코는 여기서부터 아래로 두 줄
pat.right(random. randint(0,360))
pat.pendown() # 새 눈꽃 그리기 시작점
pat.color(random.choice(colors)) # 새 눈꽃에 리스트로부터 값을 받은 새로운 색깔 부여
😒현재 발생하는 에러
1) 눈꽃이 정해진 캔버스 밖에 그려지는 현상
2) 눈꽃 겹쳐서 그려지는 현상