KARIU의 IT 블로그

[Python turtle] 03. 터틀로 도형 그리기 본문

프로그래밍 언어/Python turtle

[Python turtle] 03. 터틀로 도형 그리기

카리우 2020. 12. 30. 20:57
반응형

 

 

 터틀에 내장되어 있는 함수를 이용하여 위와 같이 다향한 도형을 그릴 수 있습니다.

 

 위의 도형들 처럼 그리기 위해선 circle()이라는 함수가 필요합니다. circle()은 원을 그릴 때 쓰는 함수인데 삼각형이나 사각형을 그릴 때도 사용할 수 있습니다.

 

 먼저 위의 사진에서 맨 왼쪽에 있는 원을 그려보겠습니다. 반지름은 50으로 지정하였습니다.

 

1
2
3
4
5
6
7
8
9
10
import turtle
 
turtle.setup(width=1000, height=300#터틀 창의 크기를 가로 1000, 세로 300으로 지정
t=turtle.Turtle() #터틀 불러오기
 
t.penup() #커서의 이동경로가 표시 안되게
t.goto(-400,0#해당좌표로 커서 이동
t.color("red"#색깔 지정
t.pendown() #커서의 이동경로가 표시 되게
t.circle(50#반지름 50짜리 원 그리기
cs

 그냥 circle함수 안에 반지름 크기만 적어주면 알아서 그려줍니다.

 

 그럼 다각형들은 어떻게 그리냐?

 다각형들 또한 circle함수만 이용해 그릴 수 있습니다. 삼각형을 그려보겠습니다.

 

1
2
3
4
5
6
7
8
9
10
import turtle
 
turtle.setup(width=1000, height=300#터틀 창의 크기를 가로 1000, 세로 300으로 지정
t=turtle.Turtle() #터틀 불러오기
 
t.penup() #커서의 이동경로가 표시 안되게
t.goto(-400,0#해당좌표로 커서 이동
t.color("red"#색깔 지정
t.pendown() #커서의 이동경로가 표시 되게
t.circle(50,steps=3#반지름 50짜리 원을 깍아서 삼각형 그리기
cs

 

 원을 그릴 때와 무슨 차이가 있는지 알아차리셨나요?

 모든 코드는 다 같지만 10번째 줄만 다릅니다. 바로 circle함수 안에 steps=3이라는 내용이 추가 되었습니다. steps의 숫자에 따라 원을 깍아서 도형을 그립니다.

 steps가 3이면 삼각형, 4면 사각형, 5면 오각형... 이런 식으로 그림을 그려줍니다.

 

 

 

 그러면 응용을 하여 여러가지 다각형을 circle함수만을 이용해 그릴 수 있습니다. 점점 steps의 숫자가 증가할수록 도형은 원에 가까워지게 됩니다.

 

 맨 위의 사진과 같은 결과가 나오게 코드를 짜보겠습니다. 알아보기 쉽게 도형 아래에 이름도 적어줬습니다.

 

 

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import turtle
 
turtle.setup(width=1000, height=300#터틀 창의 크기를 가로 1000, 세로 300으로 지정
t=turtle.Turtle() #터틀 불러오기
 
t.penup() #커서의 이동경로가 표시 안되게
t.goto(-400,0#해당좌표로 커서 이동
t.color("red"#색깔 지정
t.pendown() #커서의 이동경로가 표시 되게
t.circle(50#반지름 50짜리 원 그리기
t.penup()
t.goto(-400,-50)
t.write("원",font=(15))
t.pendown()
 
t.penup()
t.goto(-300,0)
t.color("orange")
t.pendown()
t.circle(50,steps=3)
t.penup()
t.goto(-300,-50)
t.write("삼각형",font=(15))
t.pendown()
 
t.penup()
t.goto(-200,0)
t.color("green")
t.pendown()
t.circle(50,steps=4)
t.penup()
t.goto(-200,-50)
t.write("사각형",font=(15))
t.pendown()
 
t.penup()
t.goto(-100,0)
t.color("green")
t.pendown()
t.circle(50,steps=5)
t.penup()
t.goto(-100,-50)
t.write("오각형",font=(15))
t.pendown()
 
t.penup()
t.goto(0,0)
t.color("blue")
t.pendown()
t.circle(50,steps=6)
t.penup()
t.goto(0,-50)
t.write("육각형",font=(15))
t.pendown()
 
t.penup()
t.goto(100,0)
t.color("purple")
t.pendown()
t.circle(50,steps=7)
t.penup()
t.goto(100,-50)
t.write("칠각형",font=(15))
t.pendown()
 
t.penup()
t.goto(200,0)
t.color("red")
t.pendown()
t.circle(50,steps=8)
t.penup()
t.goto(200,-50)
t.write("팔각형",font=(15))
t.pendown()
 
t.penup()
t.goto(300,0)
t.color("orange")
t.pendown()
t.circle(50,steps=9)
t.penup()
t.goto(300,-50)
t.write("구각형",font=(15))
t.pendown()
 
t.penup()
t.goto(400,0)
t.color("green")
t.pendown()
t.circle(50,steps=10)
t.penup()
t.goto(400,-50)
t.write("십각형",font=(15))
t.pendown()
 
cs

 

 하나하나 다 적어주어 코드가 좀 길어졌습니다.(노가다) 이러한 형식으로 맨 위의 사진과 같은 결과를 얻을 수 있습니다. 

 코드는 github에도 올려놓겠습니다.

 

코드 다운로드

github.com/kariray/turtle_polygon

반응형
Comments