← 날짜별 전체 목록(입구 페이지)으로

원을 굴려 한반도를 그리다 — 푸리에 에피사이클

크기와 회전 속도가 다른 원을 줄줄이 이어 붙이면, 마지막 원 끝점이 한반도 전체 해안선을 따라 그립니다.

조작

원 개수를 바꾸면 그 개수로 처음부터 다시 그립니다. 원이 적으면 둥근 덩어리, 많을수록 서해안의 리아스식 해안까지 살아납니다.

어떻게 그리는가

해안선을 따라 같은 간격으로 점 N개를 찍고, 각 점을 복소수 zn = xn + i·yn로 봅니다. 이 점들을 이산 푸리에 변환(DFT)하면 주파수 k마다 복소 계수 ck가 하나씩 나옵니다.

ck = (1/N) Σn=0N−1 zn · e−2πi·kn/N

z(t) ≈ Σk ck · e2πi·k·t   (0 ≤ t < 1)

두 번째 식의 각 항 cke2πikt가 원 하나입니다. 반지름은 |ck|, 시작 각도는 ck의 편각이고, 한 바퀴 그리는 동안 k번 돕니다(k가 음수면 반대 방향). 원을 반지름이 큰 순서로 이어 붙이면 앞의 큰 원이 대략적인 모양을, 뒤의 작은 원이 세부를 맡습니다.

섬은 따로 그린다

푸리에 급수 하나는 닫힌 곡선 하나만 그릴 수 있습니다. 그래서 한반도 본토(2048점), 제주도(256점), 울릉도(128점), 독도(64점)를 각각 따로 변환해 차례로 그립니다. 섬은 점이 적어서, 슬라이더 값이 그 섬의 점 수보다 크면 가능한 최대 개수만 씁니다.

해안선 데이터: Natural Earth 1:10m Admin 0 Countries (퍼블릭 도메인). 본토는 남한·북한 본토 다각형을 합쳐 휴전선 경계를 지운 한반도 해안선입니다. 경도에 cos 36°를 곱해 위도 36° 부근의 가로세로 비율을 맞췄습니다. 영감: YouTube “Italy through fourier” (Everything Math).