본문 바로가기
파이썬 수학

[파이썬 수학] 원 그리기 ① -터틀: Turtle

by 데이터 큐레이터 2018. 6. 28.

파이선 코딩을 처음 배울 때 복잡한 문법에 대해서 전부 다 외우겠다고 덤벼들면 안 되는 것 같습니다.

40대 나이에 비전공자로 코딩을 본격적으로 배우기 시작한 저는
공부를 시작한 지 얼마 되지 않은 시점에는 욕심이 많았던 것 같아요. 모든 개념을 전부 다 이해하고 진도를 나가려다 보니 시간이 오래 걸렸습니다. 나이도 있고 처음 배우는 개념이 많아서, 하루 이틀 지나면 기억이 잘 나지 않았습니다. 

그래서 일단 이해했으면 넘어가고 필요할 때 다시 찾아보는 것으로 공부하는 방법을 바꿨습니다. 그리고, 파이썬 공식 사이트나 인터넷 여기저기에서 흘러 다니는 공개 소스 코드들을 조금씩 변형해 보면서 쉽게 쉽게 넘어가려고 의식적으로 노력했습니다. 지나고 보니, 스트레스를 덜 받으면서도 효율적으로 공부할 수 있는 방법이었다고 생각합니다.  

파이썬은 어린이 교육용으로 Turtle(우리말: 거북이)이라는 내장모듈(따로 설치가 필요 없는 소스 코드)를 제공합니다. 따라서, 아이들도 아주 쉽게 따라할 수 있습니다. 아이들에게 명령어를 전부 이해하라고 주입식으로 강요하지 마시고, 소스 코드를 하나씩 따라해 보면서 결과를 눈으로 확인할 수 있도록 도와주세요.  

아이와 함께 컴퓨터 모니터 화면에 도형이 그려지는 것을 확인해 보세요. 아이들의 호기심을 이끌어 내면서 상상력을 자극할 수도 있습니다. 또한, 수학을 책으로만 보고 개념적으로만 이해하던 내용을 실제 눈으로 보면서 감각적으로 익힐 수 있습니다. 자연스럽게 원, 사각형, 삼각형 등 도형에 대한 개념도 쉽게 받아들이는 계기가 될 수 있습니다.    


1단계: 평면좌표에 X, Y축 그리기

소스 코드를 입력합니다. turtle에서는 실제 pen을 손에 들고, 그림을 그린다고 생각하면 이해가 빠릅니다. X축, Y축이 직각으로 교차하는 평면 좌표를 그립니다.

 

 

 import turtle          # turtle 모듈을 불러 옵니다 
 t = turtle.Turtle()     
# turtle 모듈의 서브 클래스 Turtle를 활용한 객체 t를 만듭니다  

 # X축 그리기 
 t.penup()               
# t라는 펜이 있다고 생각하고, 종이에 잉크가 묻지 않도록 펜을 위(up)로 들어 올린다고 생각하세요   
 t.goto(-200,0)         
# 펜(t)을 캔버스 위 (x, y) 좌표 (-200, 0)으로 위치를 옮깁니다 
 t.pendown()           
# 펜(t)을 캔버스(종이?)에 닿을 때까지 아래(down)로 내립니다 
 t.goto(200,0)          
# 캔버스 위 (x, y) 좌표 (200, 0) 위치까지 펜을 움직입니다. 길이 400의 선이 그려집니다. (X축) 

 # Y축 그리기 
 t.penup()               
# 종이에 잉크가 묻지 않도록 펜을 다시 위(up)로 들어 올립니다 
 t.goto(0,200)          
# 펜(t)을 캔버스 위 (x, y) 좌표 (0, 200)으로 위치를 옮깁니다 
 t.pendown()           
# 펜(t)을 다시 아래(down)로 내립니다 
 t.goto(0,-200)         
# 캔버스 위 (x, y) 좌표 (0, -200) 위치까지 펜을 움직입니다. 길이 400의 선이 그려집니다. (Y축)

 

 

 

 

 

2단계: 원 그리기

위 소스 코드의 아래 쪽에 바로 이어서 입력하세요. 원을 그리는 Circle()함수는 반지름을 인자로 입력합니다. X축, Y축 위에 원점을 중심으로 하고, 반지름이 100인 원을 그립니다. 

 # 원 그리기  
 t.penup()                
 # 다시 설명할 필요는 없겠죠. 펜을 들어 올립니다.  
 t.goto(0, -100)       
   # 원을 그릴 시작점으로 펜을 이동합니다. 원점이 (0, 0)이고 반지름 100인 원을 그리기 위해서 
                                좌표 (0, -100)으로 이동합니다 
 t.pendown()             
# 펜(t)을 다시 아래(down)로 내립니다 
 t.circle(100)              
# 반지름이 100인 원을 반시계 방향으로 그립니다

 

 

 

 

댓글