이번에는 위키피디아에 있는 공식을 참고하여 에피사이클로이드(epicycloid)를 그려 보았다. 에피사이클로이드는 검은색 원이 파란색 원에 외접하면서 주위를 회전할 때, 검은색 원의 한 고정점이 나타내는 자취를 말한다. 에피사이클로이드의 자취를 각 $\theta$에 대한 매개방정식(parametric equation)으로 나타낼 수 있는데, 이는 다음과 같다.
\begin{align*} x(\theta) &= (R+r)\cos \theta - d\cos \left({\frac {R+r}{r}}\theta \right) \\ y(\theta ) &= (R+r)\sin \theta - d\sin \left({\frac {R+r}{r}}\theta \right) \end{align*}
단, 이 경우 $d = r > 0$이다. 이 곡선은 서로 다른 $d$와 $r$ 값에 따라 여러가지 이름으로 불리는데, 이를 정리하면,
- 에피사이클로이드(epicycloid): $d = r > 0$인 경우
- 하이포사이클로이드(hypocycloid): $d = r < 0$인 경우
- 에피트로코이드(epitrochoid): $d \neq r > 0$인 경우
- 하이포트로코이드(hypotrochoid): $d \neq r < 0$인 경우
정도로 정리할 수 있다.
아래 슬라이더 중 $-1 < r \leq 1$은 검은색 원의 반지름이 길이를 나타내고 (단, $r<0$인 경우는 검은색 원이 파란색 원에 내접함을 의미), $0 \leq d \leq 5$는 는 검은 원의 중심에서 펜 까지의 거리를 나타낸다. 슬라이더를 움직인 후에는 꼭 왼쪽 아래에 Refresh 버튼을 눌러야 제대로 된 스파이로그래프를 볼 수 있다.
p5.js
코드 보기
'Others > Processing' 카테고리의 다른 글
p5.js 연습 007. 장미 곡선(Rose curve) (0) | 2017.07.21 |
---|---|
p5.js 연습 006. 프랙탈 스파이로그래프(fractal spirograph) (0) | 2017.07.14 |
p5.js 연습 004. 스파이로그래프(Spirograph) (0) | 2017.07.07 |
p5.js 연습 003. L-시스템을 이용한 시어핀스키 삼각형 그리기 (0) | 2017.07.07 |
p5.js 연습 002. 프랙탈 나무 (0) | 2017.07.05 |