728x90
파이썬 turtle(터틀) 그래픽을 이용하여 위와 같이 밤하늘의 별을 찍는 예제를 구현해 보자.
[구현 순서]
import turtle as t
import random
t.bgcolor("black")
t.pensize(2)
t.pencolor("yellow")
t.speed(500) # 0.5초
1. 먼저 turtle 모듈과 random 모듈을 불러온다.
2. 배경색, 펜굵기, 펜색깔, 그리는 속도를 지정해 준다.
for i in range(5):
starsize= random.randint(10,30)
t.forward(starsize)
t.right(144)
3. for문을 활용해 별 한개를 그린다:
3-1. 별의 크기는 랜덤으로 하되 10~30 사이로 하여 그린다(forward)
3-2. 한개의 선을 그리면 방향을 오른쪽으로 144도 돌린다
3-3. 별 한 개는 5개의 선으로 이루어져 있으므로 for문을 5번 반복한다.
for k in range(30):
t.penup() # 펜들기(그리지 않음)
x= random.randint(-350,350)
y = random.randint(0, 350)
starsize= random.randint(10,30)
t.goto(x,y)
t.pendown() # 그리기 시작
for i in range(5):
t.forward(starsize)
t.right(144)
t.mainloop()
4. 3번에서 그린 별을 똑같은 방식으로 30번 그리기 위해 중첩 for 문으로 작성한다.
5. penup() 상태에서(=그리지 않음) 별이 그려지는 범위를 지정한다 (가로축:-350 이상~ 350 이하, 세로축: 0이상 350 이하)
5-1. t.goto를 이용해 x,y 범위내에서 랜덤으로 별이 그려지는 위치만(허공에 위치만 둔다고 생각) 지정한다.
6. pendown()으로 지정한 위치에 별을 그린다.
7. 30번 반복한 후 for 문을 빠져나온다.
8. 마지막에 t.mainloop() 를 추가하여 그림이 생성되고 바로 창이 닫히는 것을 방지한다.
# 전체 코드
import turtle as t
import random
t.bgcolor("black")
t.pensize(2)
t.pencolor("yellow")
t.speed(500) # 0.5초
for k in range(30):
t.penup()
x= random.randint(-350,350)
y = random.randint(0, 350)
starsize= random.randint(10,30)
t.goto(x,y)
t.pendown()
for i in range(5):
t.forward(starsize)
t.right(144)
t.mainloop()
728x90
반응형
'Python' 카테고리의 다른 글
[파이썬] 간단한 계산기 만들기 예제 구현하기 (0) | 2023.10.18 |
---|---|
[파이썬] for문, if 문 활용한 문제 풀기-카카오택시 (0) | 2023.10.18 |
[파이썬] 반복문을 활용한 예제 구현하기(구구단, 섭씨화씨환산표) (0) | 2023.10.18 |
[파이썬] range() 내장함수를 활용한 예제 구현하기 (1) | 2023.10.18 |
[파이썬] 기초 입출력 및 문자열 포맷팅(%) 하는 법 (1) | 2023.10.17 |