[경성 프로그래밍 교육 1일차]파이썬 프로그래밍 - 다양한 도형 그리기

중고생을 위한 경성 프로그래밍 교육(파이썬 프로그래밍) - 1.프로그래밍 기초

파이썬특강1.pptx



다양한 도형 그리기

파이썬의 turtle 모듈은 펜을 움직이고, 펜의 크기를 설정하고, 펜을 들어올리고 내려놓기 위한 메소드를 포함한다.

circle 메소드를 이용하여 삼각형, 사각형, 오각형, 육각형 및 원을 그리는 예제 코드를 살펴보자.




import turtle


turtle.pensize(3) #펜의 두께를 3픽셀로 저장한다.

turtle.penup() # 펜을 들어올린다.

turtle.goto(-200, -50)

turtle.pendown() # 펜을 내려놓는다.

turtle.circle(40, steps = 3) # 삼각형을 그린다.


turtle.penup()

turtle.goto(-100, -50)

turtle.pendown()

turtle.circle(40, steps = 4) # 사각형을 그린다.


turtle.penup()

turtle.goto(0, -50)

turtle.pendown()

turtle.circle(40, steps = 5) # 오각형을 그린다.


turtle.penup()

turtle.goto(100, -50)

turtle.pendown()

turtle.circle(40, steps = 6) # 육각형을 그린다.


turtle.penup()

turtle.goto(200, -50)

turtle.pendown()

turtle.circle(40) # 원을 그린다.


turtle.done()


Turtle의 펜 그리기 상태 메소드


 메소드 명

설명 

turtle.pendown() 

펜을 내려놓는다 - 움직일 때 그려진다 

turtle.penup() 

펜을 들어올린다 - 움직일 때 그려지지 않는다. 

turtle.pensize() 

선의 두께를 특정 폭으로 설정한다. 


Turtle의 이동 메소드


메소드 명 

설명 

turtle.forward(d) 

turtle이 향하고 있는 방향으로 특정 거리 d만큼 앞으로 이동시킨다. 

turtle.backward(d) 

turtle이 향하고 있는 반대 방향으로 특정 거리 d만큼 뒤로 이동 시킨다. turtle의 방향은 바뀌지 않는다. 

turtle.right(angle) 

turtle을 특정 각만큼 오른쪽으로 회전시킨다. 

turtle.left(angle) 

turtle을 특정 각만큼 왼쪽으로 회전시킨다. 

turtle.goto(x, y) 

turtle을 절대 위치 (x, y)로 옮긴다. 

turtle.setx(x) 

turtle의 x좌표를 특정 위치로 옮긴다. 

turtle.sety(y) 

turtle의 y좌표를 특정 위치로 옮긴다. 

turtle.setheading(angle) 

특정 각도로 turtle의 방향을 설정한다. 0-동쪽, 90-북쪽, 180-서쪽, 270-남쪽 

turtle.home 

turtle을 원점 (0,0)으로 옮기고 동쪽 방향으로 설정한다. 

turtle.circle(r, ext, steps) 

특정 반지름 r, 경계 ext와 단계 step인 원을 그린다. 

turtle.dot(diameter, color) 

특정 지름 diameter와 색상 color인 원을 그린다. 

turtle.undo() 

turtle의 마지막 명령을 (반복적으로) 되돌린다. 

turtle.speed(s) 

1부터 10사이의 정수(10이 최대) s로 turtle의 속도를 설정한다. 



색 및 폰트 지정하기

turtle 객체는 색상과 폰트를 설정하기 위한 메소드를 포함한다.



import turtle


turtle.pensize(3) #펜의 두께를 3픽셀로 저장한다.

turtle.penup() # 펜을 들어올린다.

turtle.goto(-200, -50)

turtle.pendown() # 펜을 내려놓는다.

turtle.begin_fill() # 도형을 색상으로 채우기 시작한다.

turtle.color("red")

turtle.circle(40, steps = 3) # 삼각형을 그린다.

turtle.end_fill() # 도형을 색상으로 채운다.


turtle.penup()

turtle.goto(-100, -50)

turtle.pendown()

turtle.begin_fill()

turtle.color("blue")

turtle.circle(40, steps = 4) # 사각형을 그린다.

turtle.end_fill()


turtle.penup()

turtle.goto(0, -50)

turtle.pendown()

turtle.begin_fill()

turtle.color("green")

turtle.circle(40, steps = 5) # 오각형을 그린다.

turtle.end_fill()


turtle.penup()

turtle.goto(100, -50)

turtle.pendown()

turtle.begin_fill()

turtle.color("yellow")

turtle.circle(40, steps = 6) # 육각형을 그린다.

turtle.end_fill()


turtle.penup()

turtle.goto(200, -50)

turtle.pendown()

turtle.begin_fill()

turtle.color("purple")

turtle.circle(40) # 원을 그린다.

turtle.end_fill()


turtle.color("green")

turtle.penup()

turtle.goto(-150, 50)

turtle.pendown()

turtle.write("화려한 형형색색의 도형", font=("맑은고딕", 18, "bold"))

turtle.hideturtle()


turtle.done()

메소드명

설명 

turtle.color(c) 

펜 색상을 c로 설정한다. 

turtle.fillcolor(c) 

펜 채우기 색상을 c로 설정한다. 

turtle.begin_fill() 

도형을 채우기 전에 이 메소드를 호출한다. 

turtle.end_fill() 

begin_fill 에 대한 마지막 호출 전까지 그려진 도형을 채운다. 

turtle.filling() 

채우기 상태를 반환한다. 채우기 상태이면 True, 그렇지 않으면 False 

turtle.clear() 

창을 깨끗하게 지운다. turtle의 상태와 위치는 영향을 받지 않는다. 

turtle.reset() 

창을 깨끗하게 지우고 turtle의 상태와 위치를 원래 기본값으로 재설정한다. 

turtle.screensize(w, h) 

캔버스의 폭과 높이를 w와 h로 설정한다. 

turtle.hideturtle() 

turtle을 보이지 않게 만든다. 

turtle.showturtle() 

turtle을 보이게 만든다. 

turtle.isvisible() 

turtle이 보이면 True를 반환한다. 

turtle.write(s, font=("Arial", 8, "normal")) 

현재 turtle의 위치에 문자열 s를 쓴다. 폰트는 폰트명, 폰트크기, 폰트유형의 세 값으로 구성된다. 




실행결과