스파이로그래프 Spirograph는 기술적으로 하이포트로코이드 hypotrochoids 및 에피트로코이드 epitrochoids로 알려진 다양한 수학적 룰렛 곡선을 생성하는 기하학적인 드로잉 장난감입니다. 크기가 각각 다른 톱니바퀴와 그 안에 뚫린 구멍에 볼펜을 꽂아 톱니로 이루어진 고정된 원 둘레를 돌리면 아름다운 기하 무늬가 나타난다. 이것은 영국의 엔지니어인 Denys Fisher가 개발했으며 1965 년에 처음 판매되었다.

하이포트로코이드

톱니바퀴를 원의 내부에서 돌릴 때 생기는 모양이다. 톱니바퀴의 반지름을 $r$, 톱니바퀴가 내부에서 돌아가는 원의 반지름을 $R$, 톱니바퀴의 중심으로부터 궤적을 그리는 점까지 거리를 d라 하면 하이포트로코이드의 매개변수 방정식은

$$ \begin{align} x &= (R − r) \cos \theta + d \cos \left( \frac{R-r}{r} \theta \right) ,\\ y &= (R − r) \sin \theta + d \sin \left( \frac{R-r}{r} \theta \right) \end{align} $$

이다. 이 방정식을 사용하여 스크래치에서 하이포트로코이드 그림을 그려 보겠다.

방정식을 이용한 하이포트로코이드

매개변수 방정식을 이용하기 때문에 스크래치에서 하이포트로코이드 그림을 그리는것은 어렵지 않다. 단지 방정식이 어렵게 생겼을 뿐이다. 하이포트로코이드 매개변수 방정식에서 두개의 반지름 $R$, $r$은 상수이다. $\theta$가 $0$에서 $360$으로 변화하는 동안 $(x, y)$의 자취를 그려주면 그림이 완성된다. 두개의 매개변수 방정식은 $\sin$, $\cos$함수로 되어있다. 스크래치에는 연산블록에는 $\sin$, $\cos$값을 계산하는 블록이 있기 때문에 이를 이용하여 계산하면 된다.

프로그램의 내부에 추가 블록을 이용하여 $\theta$를 변수로 하여 $x, y$를 계산하는 블록을 연산 블록을 결합하여 만든다. 이 블록을 이용하여 $\theta$를 $0.1$간격으로 변화를 주며 $x, y$를 계산하고 스프라이트를 계산된 위치로 이동하며 하이포트로코이드 자취를 그린다.

하이포트로코이드방정식

하이포트로코이드

방정식없이 유사한 하이포트로코이드 그리기

방정식을 이용하면 정확한 하이포트로코이드를 그릴수 있다. 하지만 방정식을 사용하지 않고 하이포트로코이드 그려지는 과정의 움직임을 통하여 유사한 하이포트로코이드를 그려보겠다. 유사한 이라고 붙인 이유는 방정식의 자취와는 완전히 일치하지는 않는 때문이다.

유사한 하이포트로코이드 움직임을 따라 그리는 방법은 원을 그리는 과정을 반복하여 그릴것이다. 우선 스크래치에서 원을 그리는 방법은 움직이기와 회전하기를 반복하여 그릴 수 있다.

원그리기

먼저 하이포트로코이드에서 톱니바퀴가 돌게 될 큰 원을 먼저 그린후, 톱니바퀴가 돌면서 그려지는 작은 원을 그린다.

원 안에 원그리기

여기서 큰원을 그리는 과정을 살펴보면 $15$만큼 이동하기와 $6\circ$ 회전하를 반복하여 그렸다. 이것을 1회 반복할때 마다 작은원을 그려보겠다.

유사한 하이포트로코이드

정확한 하이포트로코이드는 원을 그리는 과정에서 회전이 진행되어야 한다. 하지만 내부의 원이 하나가 그려지는 동안 적은 각의 회전이 이뤄지기 때문에 원을 그린후 회전을 통해 보정을 하여 유사한 하이포트로로코이드 그림을 그렸다. 그림으로만 봐서는 거의 정확한 모습이다.

다음은 방정식을 이용하여 정확히 그린 하이포트로코이드와 유사한 하이포트로코이드를 비교한것이다. 빨간색이 방정식을 이용하여 그린 그림이고 파란색이 유사한 하이포트로코이드 그림이다.

하이포트로코이드 비교

반응형