지오지브라로 거북이 데리고 놀기

수학이야기 2015. 11. 30. 13:03
반응형

1 첫만남


아주 오래 전 1정 연수 받을 때 서울대학교 수학 실험실에서 거북 수학을 만났다. 한 동안 잊고 지내다가 영재학급 수업에 활용하기 위해 다시 찾았는데 역시 재미있었다. 하지만 자바 실행을 막아 놓은 컴퓨터가 많아 번거롭다. 지오지브라에도 같은 기능이 있음을 알고 지침을 찾아 우리말로 옮겨 놓는다. 이제 지오지브라 거북을 데리고 노는 법을 배워 보기로 하자. 

https://wiki.geogebra.org/en/Tutorial:GeoGebra_Turtle을 옮긴 글이다.


아래와 같은 명령으로 거북이를 불러낼 수 있다. 로마자는 대소문자 구별하지 않는다.

Turtle[] 또는 거북이[]


그림과 같은 거북 을 좌표 (0,0)에 불러내고 x축 양의방향을 앞으로 정한다. 동시에 아래 구석에 실행 단추 이 나타난다. 이 버튼을 누르면 명령에 따라 거북이 움직이고 바뀐 단추를 누르면 멈춘다. 지오지브라 거북은 색을 바꿀 수 없는 것과 같은 한계가 조금 있지만 '점' 개체와 같은 성질을 가진 개체다. 거북의 위치를 바꾸기 위해 좌표 명령(SetCoords)을 쓸 수 있고 x()와 y()를 써서 정확한 위치를 정해줄 수 있다. 이 함수들은 거북의 마지막 위치를 결정해 준다.

2 거북 명령 사용법

먼저 가장 기본적인 명령을 살펴보자.
• 움직이기(Translation) TurtleForward[ Turtle, Distance ]와 TurtleBack[ Turtle, Distance ] 주어진 거리만큼 직선을 그리면서 움직인다. 거리에 음수를 쓰면 뒤로 가게 되므로 굳이 두 가지 명령을 다 쓸 필요는 없다.
• 돌리기(Rotation) TurtleRight[ Turtle, Angle ]와 TurtleLeft[ Turtle, Angle ] 주어진 각만큼 방향을 회전한다. 육십분법과 라디안을 모두 사용할 수 있다. ’Alt+o’로 육십분법의 단위 ${}^o$를 ’Alt+p’ 로 π 라디안을 쓸 수 있다. 마찬가지로 음의 각을 쓸 수 있다. 

• 자취(Traces) TurtleDown은 자취를 남기고 TurtleUp은 자취를 남기지 않는다. 


이 밖에 몇 가지 [Repeat, RunUpdateScript, RunClickscript] 명령이 더 있다.

 

3 정사각형 그리기
이름이 ’t’인 거북을 원 점에서 출발하여 한 변의 길이가 1인 정사각형을 그리게 하자. 먼저 아래와 같이 입력하자. 입력하고 엔터를 눌러도 거북은 움직이지 않다가 실행 단추를 누르면 비로소 움직인다.

 

 

t=Turtle[]
TurtleForward[t,1]
TurtleLeft[t,90°]
TurtleForward[t,1]
TurtleLeft[t,90°]
TurtleForward[t,1]

TurtleLeft[t,90°]
TurtleForward[t,1] 반복(repeat) 명령은 8가지 명령을 아래와 같이 간단하게 줄여준다.
t=Turtle[]
repeat[4, TurtleForward[t,1], TurtleLeft[t,90°]]

이 명령은 아래와 같이 변수 c를 정의하여 쓸 수 있다.

repeat[4, TurtleForward[t,c], TurtleLeft[t,90°]]

4 잘 포개진 정사각형 그리기


위에 있는 명령을 아래와 같이 정의하면 한 변의 길이가 늘어나면서 잘 포개진 정사각형을 그릴 수 있다.
c=1
n=5
Repeat[n,repeat[4, TurtleForward[t,c], TurtleLeft[t,90°]],setvalue[c,c+1]]

5 개체에게 스크립트 할당하기


지오지브라 스크립트 언어(Logo)는 간단한 경로를 만드는 절차를 디자인할 목적으로 만들어졌다. 이런 절차를 효과적으로 이용하면 복잡한 결과를 얻을 수 있다. 아래에 주어진 예제를 따르면 서로 관계가 정해진 절차를 정의하여 개체에게 스크립트를 할당할 수 있다. 특별한 경우 할당되는 스크립트를 텍스트 도구로 설명해 둔다.

먼저 텍스트 도구를 열어 아래와 같이 입력하자.
square construction : c
repeat[4, TurtleForward[t,c], TurtleLeft[t,90°]]
대화상자를 열어 이름을 square로 바꾼다. 그리고 둘째 줄 반복 명령을 잘라서 OnClick 부분에 스크립트 탭에 붙여넣기 하고 확인 단추를 누른다.
c=2
t=turtle[]
명령을 실행하면 거북이 한변의 길이가 2인 정사각형을 그린다. 이제 잘 포개진 사각형을 그려보자. 거북 명령은 대소문자를 구별하지 않지만 보통 스크립트는 대소문자를 구별하므로 조심하자.


먼저 텍스트 도구를 열어 아래와 같이 입력하자.
square construction : n: c
repeat[n,RunClickScript[square],SetValue[c,c+1]]
대화상자를 열어 이름을 nested square로 바꾼다. 그리고 둘째 줄 반복 명령을 잘라서 OnClick 부분에 스크립트 탭에 붙여넣기 하고 확인 단추를 누른다.
c=1
n=5
실행하면 위에 있는 그림을 얻을 수 있다.

6 밀밭 그리기
조금 더 복잡한 그림을 그려 보자. 밀밭으로 이름 붙인 그림을 그리기 위해 Leaf(잎), Spike(줄기), Field(밭)으로 이름 지어진 텍스트를 정의하자.


Leaf code
TurtleLeft[t,45°]
TurtleForward[t,2]
TurtleBack[t,2]
TurtleLeft[t,90°]
TurtleForward[t,2]
TurtleBack[t,2]
TurtleRight[t,135°] Spike code
TurtleLeft[t,90°]
TurtleForward[t,5]


Repeat[3,TurtleRight[t,90°], RunClickScript[Leaf], TurtleLeft[t,90°], TurtleForward[t,1.25]]
TurtleBack[t,8.75]
TurtleRight[t,90°]


Field code
Repeat[3,RunClickScript[Spike],TurtleUp[t],TurtleForward[t,4],TurtleDown[t]]
아래와 같은 스크립트를 포함한 애니매이션 실행 단추를 만들어 지우고 다시 그릴 수 있다.
Delete[t]
t=Turtle[]
SetCoords[t,-8,-1]
StartAnimation[]

 

 

 

Turtle.pdf
다운로드

반응형