Unit 21
터틀 그래픽스로 그림 그리기
1. 사각형 그리기
>>> import turtle as t
>>> t.shape('turtle')
- 파이썬 셸에서 t.shape('turtle')까지 입력하면 파이썬 터틀 그래픽스 창이 표시된다.
- t.shape는 거북이의 모양을 설정하며 초기 모양은 화살표 모양이다.
※ 이때 발생할 수 있는 에러들
1. ModuleNotFoundError: No module named ... : 모듈 이름을 잘못 입력했을 때 발생하는 에러이므로 turtle의 철자가 맞는지 확인해야 한다.
2. TurtleGraphicsError: There is no shape named ... : 거북이의 모양을 잘못 지정해서 발생하는 에러이므로 t.shape에'turtle'로 입력했는지 확인해야 한다.
- t.forward(100)나 t.backward(100)를 입력하여 거북이를 100픽셀만큼 앞이나 뒤로 이동시킬 수 있다.
>>> t.forward(100)
- t.right(90)나 t.left(90)를 입력하여 방향을 왼쪽과 오른쪽으로 90도씩 회전시킬 수 있다.
>>> t.right(90)
- 앞에서 사용한 방식들을 반복하여 사각형을 그릴 수 있다.
>>> t.forward(100) >>> t.right(90) >>> t.forward(100) >>> t.right(90) >>> t.forward(100) >>> t.right(90) >>> t.forward(100)
※ 이동 방법
- 앞으로 이동 : forward, fd
- 뒤로 이동 : backward, back, bk
- 왼쪽으로 회전 : left, lt
- 오른쪽으로 회전 : right, rt
2. 반복문을 이용하여 다각형 그리기
# 반복문으로 사각형 그리기
import turtle as t
t.shape('turtle')
for i in range(4): # 사각형이므로 4번 반복
t.forward(100)
t.right(90)
- 다각형을 그리는 방법 : 다각형에서 외각의 합은 항상 360℃ 임을 기억한다.
ex) 오각형을 그릴 때
: 외각의 합은 항상 360℃이므로 사각형은 90℃가 4개 들어있는 것이다. 오각형도 이처럼 360을 5로 나누어 외각을 구 할 수 있다.
import turtle as t
t.shape('turtle')
for i in range(5): # 오각형이므로 5번 반복
t.forward(100)
t.right(360 / 5) # 360을 5로 나누어서 외각을 구함
- 위의 소스 코드를 응용하여 사용자가 입력한 숫자에 해당하는 다각형을 그릴 수 있다.
- 단, 일각형과 이각형은 도형이 아니므로 숫자 1, 2를 입력하면 그릴 수 없다.
import turtle as t n = int(input()) # 7 입력 t.shape('turtle') for i in range(n): # n번 반복 t.forward(100) t.right(360 / n) # 360을 n으로 나누어서 외각을 구함
3. 다각형을 색칠하기
- t.color()로 펜의 색을 설정할 수 있다.
- 도형을 그리기 전 t.begin_fill()로 색칠할 준비를 하고 for 반복문으로 도형을 그린 뒤, t.end_fill()을 사용하면 도형에 현재 펜의 색이 칠해진다.
import turtle as t n = 6 # 육각형 t.shape('turtle') t.color('pink') # 펜의 색을 분홍색으로 설정 t.begin_fill() # 색칠할 영역 시작 for i in range(n): # n번 반복 t.forward(100) t.right(360 / n) # 360을 n으로 나누어서 외각을 구함 t.end_fill() # 색칠할 영역 끝
4. 복잡한 도형 그리기
- 터틀에서 원을 그릴 때는 circle을 사용한다.
>>> import turtle as t >>> t.shape('turtle') >>> t.circle(120) # 반지름이 120인 원을 그림
- for문을 사용하여 원을 반복해서 그릴 수 있다.
- 코드를 실행하면 그물망 모양이 나온다. 360 / 30 = 12 이므로 오른쪽으로 12도씩 회전하면서 원을 그리게 된다.import turtle as t n = 30 # 원을 30번 그림 t.shape('turtle') t.speed('fastest') # 거북이 속도를 가장 빠르게 설정 for i in range(n): t.circle(120) # 반지름이 120인 원을 그림 t.right(360 / n) # 오른쪽으로 12도 회전
- speed는 거북이의 속도를 설정하는데, 속도는 문자열 또는 숫자로 설정할 수 있다.(숫자는 0.5~10까지 가능)
ex) 'fastest' : 0, 'fast' : 10, 'normal' : 6, 'slow' : 3
- 선을 이용해서도 복잡한 무늬를 그릴 수 있다.
import turtle as t t.shape('turtle') t.speed('fastest') # 거북이 속도를 가장 빠르게 설정 for i in range(300): # 100번 반복 t.forward(i) # i만큼 앞으로 이동. 반복할 때마다 선이 길어짐 t.right(91) # 오른쪽으로 91도 회전
※ 터틀의 shape에는 'arrow', 'turtle', 'circle', 'square', 'triangle', 'classic' 등을 지정하여 여러가지 터틀 모양을 사용할 수 있고, t.shape()와 같이 shape를 그래도 호출하면 현재 모양을 알아낼 수 있다.
>>> import turtle as t
>>> t.shape('arrow') # 화살표 모양 사용
>>> t.shape() # 현재 모양 알아내기
'arrow'
'Python 코딩도장' 카테고리의 다른 글
파이썬 코딩도장 Unit 22 정리(2) : 리스트 (0) | 2022.01.19 |
---|---|
파이썬 코딩도장 Unit 22 정리(1) : 리스트 조작 (0) | 2022.01.18 |
파이썬 코딩도장 Unit 20 정리 : FizzBuzz (0) | 2022.01.16 |
파이썬 코딩도장 Unit 19 정리 : 중첩 루프 사용 (0) | 2022.01.16 |
파이썬 코딩도장 Unit 13 ~ Unit 20 심사문제 풀이 (0) | 2022.01.16 |