관련 내용이 상세하게 설명된 터틀 공식 문서이다 >> 클릭
오늘은 터틀 모듈에서 다양한 원을 만들어보겠다.
원을 만들기 위해서 circle() 메소드를 쓴다.
파라미터는 radius, extent, steps가 있다.
파라미터 조정하기
radius는 반지름의 길이를 의미한다.
radius 에 입력되는 값에 따라 원의 크기가 결정된다.
steps은 원을 그리는 데 걸리는 걸음 수를 의미한다.
step=3이라면 3번 만에 원을 그려야 한다는 뜻이다.
extent의 뜻은 범위이며, 그려지는 원의 범위를 결정한다.
만약 extent= none이라면 터틀은 완성된 원을 그린다.
그 외에 extent= 값을 설정하면, 팬이 마지막에 있는 위치에서 해당 값만큼 이동한다.
그러면서 터틀은 값에 따라 일정 범위의 호를 그리는데,
원이 다 그려지지 않을 수도 있고, 하나의 원을 초과할 수도 있다.
radius가 양수이면 반시계 방향으로, 음수이면 시계 방향으로 그린다.
<코드>
import turtle as t
import random
#tim객체는 반지름 10, 발걸음 3, 색깔 빨강색의 원을 그림
tim = t.Turtle()
tim.pencolor("red")
tim.circle(10, steps = 3)
#tim2객체는 반지름 20, 발걸음 5, 색깔 파란색의 원을 그림
tim2 = t.Turtle()
tim2.pencolor("blue")
tim2.circle(20, steps = 5)
#tim3객체는 반지름 40, 발걸음 10, 색깔 검정색의 원을 그림
tim3 = t.Turtle()
tim3.circle(40, extent= None, steps = 10)
#tim4객체는 반지름 40, 발걸음 10, 굵기가 20이고, 색깔은 초록색인 원을 100만큼 그림
tim4 = t.Turtle()
tim4.pensize(20)
tim4.pencolor("green")
tim4.circle(40, extent= 100, steps = 10)
<실행 화면>
파라미터 값을 더 다양하게 조정해보자.
<코드>
#tim4객체는 반지름 -40, 발걸음 10, 굵기가 20이고, 색깔은 빨강인 원을 500만큼 그림
tim4.pencolor("red")
tim4.circle(-40, extent= 100, steps = 10)
#tim4객체는 반지름 -80, 발걸음 10, 굵기가 20이고, 색깔은 노랑인 원을 200만큼 그림
tim4.pencolor("yellow")
tim4.circle(-80, extent= 100, steps = 10)
<실행화면>
이번에는 원의 기울기를 조절해보자.
이전에 배웠던
turtle.right(angle값) 또는 turtle.left(angle값)을 넣어 조정한다.
색깔은 랜덤함수를 사용해 무작위로 결정된다.
<코드>
import turtle as t
import random
# 색깔모드 rgb, 무작위로 선정되기
t.colormode(255)
def random_color():
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)
color = (r, g, b)
return color
tim = t.Turtle()
# 왼쪽으로 50만큼 회전하여 시작하기
for i in range(5):
tim.pencolor(random_color())
tim.circle(50)
tim.left(50)
<실행화면>
마지막 미션으로, 하나의 원을 완성해보자!
<코드1>
import turtle as t
import random
t.colormode(255)
def random_color():
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)
color = (r, g, b)
return color
tim = t.Turtle()
#하나의 원을 만드려면 360도 나누기 움직이는 각도 = 횟수 정하기
for i in range(36):
tim.pencolor(random_color())
tim.speed(0)
tim.circle(50)
tim.left(10)
<코드2>
각도에 따라 횟수가 자동 계산되는 함수를 만들자.!
import turtle as t
import random
t.colormode(255)
def random_color():
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)
color = (r, g, b)
return color
tim = t.Turtle()
def draw_spirograph(angle):
#하나의 원을 만들기 위한 횟수 정해져 작동하는 함수 만들기
for i in range(int(360/angle)):
tim.pencolor(random_color())
tim.speed(0)
tim.circle(50)
tim.left(angle)
draw_spirograph(10)
<실행화면>
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[18-5 파이썬] 네임튜플 namedtuple (0) | 2022.08.27 |
---|---|
[18-4 파이썬] 튜플 메서드(tuple method) (0) | 2022.08.27 |
[18-2 파이썬] 튜플에 관한 모든 것(list와 공통점, 차이점 포함) (0) | 2022.08.26 |
[18-1 파이썬] 터틀 실습하기 (0) | 2022.08.26 |
오픈 트리비아 데이터베이스(open trivia database) - 질문 저장 창고 (0) | 2022.08.25 |