티스토리 뷰
3.7 다양한 모양 그리기(Drawing Various Shapes)
- 파이썬의 터틀(turtle) 모듈은 펜의 움직임, 펜의 사이즈 지정, 펜을 들어올리기, 내리기 등의 기능이 메소드(methods)로 구현되어 있다.
- 터틀은 실제로 터틀 모듈을 임포드(import) 하였을 때 만들어지는 객체(objects)이다. 그리고 어떤 명령을 실행 하기위해 터틀 객체의 메소드를 호출 할 수 있다.
터틀(turtle)에 관한 기초 정리 포스팅을 보려면 *클릭*
터틀(turtle) 기본적 특징
- 터틀 객체가 만들어졌을 때, 터틀의 위치는 (0, 0)에 위치해 있다.
- 방향은 오른쪽을 향하고 있다.
- 터틀 모듈은 그림을 그리기 위한 펜(pen)을 이용한다고 생각하면 된다.
- 처음에는 펜이 내려가있는 상태로 시작한다.
- 펜이 내려가있는 상태에서 터틀을 움직이면, 원래있던 위치에서 이동할 위치까지 라인(line)을 그리며 이동한다.
* 터틀 펜 상태 메소드(Turtle Pen State Methods)
메소드(Methods) |
설명(Description) |
turtle.penup() |
펜을 들어올린다. ~ 펜 이동 시 라인을 그리지 않는다. |
turtle.pendown() |
펜을 내린다. ~ 펜 이동 시 라인을 그리며 이동한다. |
turtle.pensize(펜 두께) |
펜의 두께를 지정한다. |
* 터틀 모션 메소드(Turtle Motion Method)
메소드(Methods) |
설명(Description) |
turtle.forward(d) |
터틀 머리가 가르키는 방향으로 d 만큼 이동 |
turtle.backward(d) |
터틀 꼬리 방향으로 d 만큼 이동 |
turtle.right(angle) |
터틀을 angle 만큼 오른쪽으로 방향 전환 |
turtle.left(angle) |
터틀을 angle 만큼 왼쪽으로 방향 전환 |
turtle.goto(x,y) |
터틀을 (x, y) 위치로 이동 |
turtle.setx(p) |
터틀을 x축의 p 위치로 이동 |
turtle.sety(p) |
터틀을 y축의 p 위치로 이동. |
turtle.setheading(angle) |
터틀이 바라보는 방향을 angle(각도) 만큼 변경 (0 - 오른쪽, 90 - 위, 180 - 왼쪽, 270 - 아래) |
turtle.home() |
터틀을 (0,0)으로 이동 |
turtle.circle(r, ext, step) |
원(circle)을 그린다. (r = 반지름, ext = 이동할 길이, step = 원 반경내에 step 번 만큼의 다각형을 그린다.) * r은 필수 입력사항이며, ext와 step은 선택사항이다. step을 3으로 설정하면 삼각형이 그려진다. |
turtle.dot(diameter, color) |
터틀이 있는 위치에 반경 diameter 만큼의 원을 그린다. *cirlce()과 차이점은 circle은 터틀이 직접 그리고, dot은 터틀이 있는 위치에 원이 생성된다. |
turtle.undo() |
터틀이 이전에 했던 행동을 취한다. |
turtle.speed(s) |
터틀의 이동 속도를 지정한다. |
* 빠른 이해를 위해 위의 코드들은 한번 씩 실습해보는 걸 권장해드립니다.
* 도형그리기 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 |
import turtle as t
t.pensize(3)
#삼각형 만들기
t.penup()
t.goto(-200, -50)
t.pendown()
t.circle(40, steps = 3)
#사각형 만들기
t.penup()
t.goto(-100,-50)
t.pendown()
t.circle(40, steps = 4)
#오각형 만들기
t.penup()
t.goto(0,-50)
t.pendown()
t.circle(40, steps = 5)
#육각형 만들기
t.penup()
t.goto(100,-50)
t.pendown()
t.circle(40, steps = 6)
#원 만들기
t.penup()
t.goto(200,-50)
t.pendown()
t.circle(40) |
cs |
3.8 색 및 폰트 지정하기(Drawing with Colors and Fonts)
-터틀 객체(turtle object)에는 색깔(colors)와 폰트(fonts)를 지정할 수 있는 메소드를 가지고 있다.
* 터틀 펜의 색, 색채우기, 그리기 관련 메소드
메소드(Method) |
설명(Description) |
turtle.color(c) |
펜의 색을 지정한다. |
turtle.fillcolor(c) |
펜에 채울 색을 지정한다. |
turtle.begin_fill() |
색채우기를 시작한다. |
turtle.end_fill() |
색채우기 완료 하고 끝낸다. |
turtle.filling() |
색채우기 상태를 반한한다. ~ 색이 채워져 있다면 true, 채워져 있지 않다면 false |
turtle.clear() |
창에 출력된 모든 것을 지운다. ~ 터틀의 상태와 위치는 바뀌지 않는다. |
turtle.reset() |
창에 출력된 모든 것을 지우고 상태와 위치를 모두 초기화 시킨다. |
turtle.screensize(w, h) |
배경의 넓이와 폭을 지정한다. |
turtle.hideturtle() |
터틀을 화면에 안보이게 한다. |
turtle.showturtle() |
터틀을 화면에 보이게 한다. |
turtle.isvisible() |
터틀이 화면에 보인다면 true를 반환한다. |
turtle.write(s, font=("Arial", 8, "normal")) |
터틀이 있는 위치에 문자열 s를 작성한다. font는 폰트이름, 폰트사이즈, 폰트 타입 순으로 구성한다. |
* 도형 색칠하기 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 |
import turtle as t
t.pensize(3)
#삼각형 만들기
t.penup()
t.goto(-200, -50)
t.pendown()
t.begin_fill() # 색채우기 시작
t.color("red")
t.circle(40, steps = 3)
t.end_fill() # 색채우기 끝
#사각형 만들기
t.penup()
t.goto(-100,-50)
t.pendown()
t.begin_fill()
t.color("blue")
t.circle(40, steps = 4)
t.end_fill()
#오각형 만들기
t.penup()
t.goto(0,-50)
t.pendown()
t.begin_fill()
t.color("green")
t.circle(40, steps = 5)
t.end_fill()
#육각형 만들기
t.penup()
t.goto(100,-50)
t.pendown()
t.begin_fill()
t.color("yellow")
t.circle(40, steps = 6)
t.end_fill()
#원 만들기
t.penup()
t.goto(200,-50)
t.pendown()
t.begin_fill()
t.color("purple")
t.circle(40)
t.end_fill()
t.color("green")
t.penup()
t.goto(-100,50)
t.pendown()
t.write("도형 색칠하기",font = ("Times",18,"bold"))
t.done() |
cs |
참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]단일 if문, 이중 if-else 문, 생일 맞히기 (0) | 2017.07.15 |
---|---|
[파이썬]선택문, 부울, 랜덤 모듈과 랜덤함수 (0) | 2017.07.15 |
[파이썬]서식 지정하기, 포맷(Format) (0) | 2017.07.11 |
[파이썬]객체와 메소드의 개념 (0) | 2017.07.10 |
[파이썬]문자열 및 문자, 이스케이프 문자, 그 외 문자 함수들 (0) | 2017.07.08 |
- Total
- Today
- Yesterday
- 파이썬
- 파이썬 연산자
- 백준 1874
- 파이썬 클래스
- 파이썬 문자열
- 자료구조
- 파이썬 단계적 개선
- 자바스크립트 자료구조
- css 박스
- 파이썬 예제
- 버츄어박스
- 자바스크립트 그래프
- 백준
- 파이썬 함수
- 파이썬 객체
- 파이썬 터틀
- css
- 파이썬 리스트
- css 그리드
- 파이썬 while
- 파이썬 if문
- 백준 11501
- 파이썬 선택문
- 자바
- 파이썬 for
- 웹
- 파이썬 진수 변환
- 백준 10451
- 자바 에센셜 실습문제
- 명품 c++ 실습
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |