728x90
저번에는 수작업으로 졸라맨을 그려봤는데요. 이번에는 반복문을 이용해서 색상도 변경하고, 조금 더 간단하게 코드 작성해 보겠습니다.
- 삼각형, 사각형, 등의 꼭짓점이 있는 모양을 만들 때는 left 또는 right의 숫자를 360 나누기 꼭짓점 개수로 계산해서 입력합니다.
- 꼭짓점 없이 커지는 모양이 만들고 싶을 때는 생각한 도형의 각도에서 +1이나-1을 해주면 됩니다. 예를 들어) 삼각형의 점점 커지는 모양을 만들고 싶을 때는 119 또는 121을 입력합니다. (360/3-1)
색상변경
import turtle as t
t.Turtle() ### 객체생성
t.bgcolor("black") ### 배경색
t.speed(15) ### 속도
기본적으로 배경색과 속도, 정도만 입력했습니다.
### 1번모양
length=15 ### 길이
t.color("white") ### 색상
for a in range(70): ### 70번반복
t.forward(length) ### 길이15
t.left(119) ### 각도119
length+=5 ### 길이5씩증가
for문을 사용해서 100번을 반복하게 만듭니다. 삼각형으로 점점 커지는 모양이라 왼쪽으로 119도 회전하도록 했습니다. 또한 forward에는 length변수를 입력해서 길이는 15로 설정하고 한번 반복할 때마다 길이가 5씩 커지게끔 설정했습니다.
### 2번모양
count=0 ### 횟수
length=15 ### 길이
for a in range(100): ### 100번반복
if count % 3 ==1: ### count가1이라면
t.color("white") ### 하얀색
elif count % 3 ==2: ### count가1이라면
t.color("yellow") ### 노란색
elif count % 3 ==0: ### count가1이라면
t.color("red") ### 빨간색
t.forward(length) ### 길이15
t.left(100) ### 각도100
length+=5 ### 길이5씩증가
count+=1 ### 횟수1씩증가
for문과 if문을 사용해서 펜 색상을 변경할 수 있습니다. 색상 변경하는 코드는 생각보다 쉽습니다. 색상을 몇 개 사용할지 정한 뒤 나머지를 구하는 %를 사용합니다.
- count변수를 만듭니다.
- for문을 사용해서 몇 번 반복할지 정합니다.
- if문을 사용해서 count가 0,1,2중에 해당하는 값이 있다면 설정한 펜 색상이 그려지게 작성합니다.
- 길이는 length변수를 사용하고, 마지막에 count+=1을 작성해서 코드가 한번 끝날 때마다 길이가 5씩 증가하고, count를 1씩 높입니다.
### 3번모양
colors=["white","yellow","blue","red","green","orange"] ### 색상
count=0 ### 횟수
length=15 ### 길이
for a in range(70): ### 70번반복
t.color(colors[count % 3]) ### 색상반복
t.forward(length) ### 길이15
t.left(100) ### 각도100
length+=5 ### 길이5씩증가
count+=1 ### 횟수1씩증가
3번 모양은 2번 모양과 똑같은데 코드만 더 짧게 작성해봤습니다. if문보다 for문을 사용하면 코드가 더 짧아집니다. 일단 색상을 리스트로 만듭니다.
- for문을 사용해서 몇 번 반복할지 정합니다.
- 컬러 색상을 정하는데, 아까 만든 리스트를 사용해서 만듭니다. 색상은 리스트 안에 있는데 count 횟수에 따라 색상이 변합니다. (삼각형 모양이면 3 사각형 모양이면 4 이렇게 숫자는 변경 가능합니다.)
- 길이와 각도를 정합니다.
- lengrh+=5와 count+=1을 작성해서 한번 끝날 때마다 길이와 횟수 증가합니다.
### 4번모양
t.color("white") ### 색상
length=15 ### 길이
for a in range (6): ### 6번반복
for b in range(6): ### 6번반복
for c in range(3): ### 3번반복
t.forward(length) ### 길이15
t.left(120) ### 각도120
t.left(60) ### 각도60
length+=10 ### 길이10씩증가
for문에 for문을 사용해서 더욱 복잡한 모양을 만들어 보겠습니다. 4번 모양은 오각형의 거미줄 모양이 나옵니다.
- 펜 색상과 길이는 정해줍니다.
- for문 c부터 설명하자면 길이 15의 삼각형을 만드는 겁니다. c가 끝나면 for문 b로 갑니다.
- for문 b는 c가 끝날 때마다 왼쪽으로 60도 회전합니다. 그 행위를 6번 반복합니다. b가 끝나면 for문 a로 갑니다.
- for문 a는 b가 끝날 때마다 길이를 10씩 증가합니다. 그 행위를 6번 반복합니다.
- c가 완료되면 b로, b가 완료되면 a로, 이 순서를 반복합니다.
### 5번모양
colors=["white","yellow","blue","red","green","orange"] ### 색상
length=15 ### 길이
count=0 ### 횟수
for a in range (6): ### 6번반복
t.color(colors[count % len(colors)]) #1
for b in range(6):
for c in range(3):
#1.색상
t.forward(length)
t.left(120)
#2.횟수
t.left(60)
length+=10
count+=1 #2
5번 모양은 4번 모양과 똑같은데 펜 색상만 다릅니다.
- 펜 색상 리스트와 횟수 변수를 만듭니다.
- 색상 코드를 작성해야 되는데 a, b, c 중에 어디에 작성하냐에 따라 그림색이 달라집니다. a에 코드 작성 시 b가 완료될 때마다 색상이 변하고, c에 코드 작성 시 선 한번 그을 때마다 색상이 변합니다.
- t.color(colors[count % len(colors)]) 해석하자면 count횟수로 colors길이를 나누었을 때 나머지 값을 colors리스트에 있는 값과 맞는 색상을 선택한다는 뜻입니다.
- 물론 t.color(colors[count % len(colors)]) 말고 t.color(colors[count % 6]) 처럼 숫자로 작성해도 됩니다.
728x90
'파이썬' 카테고리의 다른 글
파이썬 pyautogui 패키지 사용법 (0) | 2022.07.23 |
---|---|
파이썬 공부하기 기초부터 시작 (재귀함수) (0) | 2022.07.22 |
파이썬 turtle 패키지로 그림그리기 코드 작성 (졸라맨) (0) | 2022.07.20 |
파이썬 기본패키지 turtle 모듈 사용법 (0) | 2022.07.19 |
파이썬 tkinter 패키지로 계산기 코드 작성 (짧은버전) (0) | 2022.07.18 |
댓글