4. 자전거 바퀴의 궤적: 사이클로이드 (Cycloid)
[도입부] 학습 목표 (Learning Objectives)
- 굴러가는 바퀴에 테이프 하나를 붙였을 때 테이프가 공중에서 그리는 놀라운 궤적, ‘사이클로이드’를 알아봅니다.
- 사이클로이드가 가지는 기적의 성질: ‘최단 강하 곡선(Brachistochrone)’을 완벽하게 이해합니다.
- 복잡해 보이는 도형의 궤적을 파이썬(Python)과 라이브러리로 모델링하여 애니메이션처럼 상상할 수 있는 감각을 기릅니다.
1. 달리는 자전거 바퀴의 수학
놀이터에서 놀다 자전거 바퀴에 야광 스티커를 하나 붙였습니다. 그리고 깜깜한 밤에 자전거가 앞으로 쭉 굴러간다면, 그 야광 스티커의 불빛은 어떤 모양을 그리면서 움직일까요?
단순히 동그라미를 그리며 날아갈 것 같지만, 자전거가 앞으로 전진하고 있기 때문에 실제 궤적은 바닥에서 통통 튀어오르는 듯한 여러 개의 아치(Arch) 모양을 그립니다. 바퀴가 직선 위를 미끄러지지 않고 굴러갈 때, 바퀴 둘레의 한 점이 그리는 곡선을 가리켜 사이클로이드(Cycloid)라고 부릅니다.
수학적으로 회전하는 각도 $\theta$에 매개변수를 두면, $x = r(\theta - \sin\theta)$, $y = r(1 - \cos\theta)$ 라는 매우 아름다운 삼각함수 파동 식을 얻습니다.
2. 사이클로이드의 기적 2가지
이 평범해 보이는 궤적은 17세기 수학자 갈릴레오, 파스칼, 뉴턴 등을 엄청난 충격에 빠뜨린 기적의 성질 두 개를 가지고 있습니다!
-
최단 강하 곡선 (미끄럼틀의 마법) 높은 곳에서 낮은 곳으로 공을 굴릴 때, 1) 대각선 직선 코스, 2) 밑으로 쑥 빠진 원형 코스, 3) 둥근 사이클로이드 코스 중 누가 가장 빨리 도착할까요? 정답은 3번 사이클로이드 곡선입니다. 초반에 가파르게 떨어져 중력 가속도를 엄청나게 벌어들여 쏜살같이 골인 지점에 먼저 도착해버리는 마법! (독수리가 먹이를 낚아챌 때도 이 궤적으로 떨어집니다)
-
등시 곡선 (진자의 마법) 사이클로이드 그릇을 뒤집어 놓고 위쪽 꼭대기에서 구슬을 굴리든, 그릇 바닥 바로 근처에서 구슬을 조금 굴리든, 바닥에 도달하는 시간이 완벽하게 일치합니다! 출발선이 달라도 동시에 도착하는 미친 그릇이죠. 이 원리를 이용해 한 치의 오차도 없는 회중시계 톱니바퀴를 만들었습니다.
3. 💻 파이썬(Python)의 수학 식 매개변수 다루기
직선처럼 단순하지 않은 파동이나 바퀴 궤적을 컴퓨터가 그리게 하려면 시간 이나 회전 각도 역할을 하는 $t$ (혹은 $\theta$)라는 매개변수를 이용해 반복문을 돌립니다.
🐍 파이썬 예제: 매개변수 방식을 이용한 점 추적기
import math
r = 10 # 자전거 바퀴의 반지름이 10이라고 합시다!
print("--- 사이클로이드 궤적 좌표 추적 ---")
# 바퀴가 0도에서 총 180도(반바퀴) 구를 때까지의 x, y 좌표
# math.radians() 를 이용해 우리가 아는 '도(Degree)'를 컴퓨터 언어로 변환
for degree in range(0, 181, 45): # 45도 간격으로 찰칵! 찰칵!
t = math.radians(degree) # 매개변수 세팅 완료!
# 사이클로이드 절대 마법 공식
x = r * (t - math.sin(t))
y = r * (1 - math.cos(t))
# 바닥면(바퀴와 맞닿은 점 y=0) 에서 점점 최고점 위로 붕 떠오릅니다!
print(f"회전 {degree:3d}도 -> 바퀴 스티커의 위치: x={x:5.2f}, 공중 높이 y={y:5.2f}")
# 결과 예측 (180도일 때 = 코사인 값이 -1 이 되므로 y는 r*2 인 20 높이!!)
# ... 어둠 속에서 찍힌 위치가 최고점이라는 것을 수학이 예측해냅니다.
자전거가 얼마나 굴러갔느냐(시간이나 각도)를 독립적인 제3의 통제 변수($t$)로 꺼내놓고, 그것에 맞춰 $X$ 좌표와 $Y$ 좌표가 알아서 연산되도록 짜여진 매개변수 방정식은 로봇 팔의 궤적을 그리거나 컴퓨터 애니메이션에서 유령이 폴터가이스트 현상을 일으키듯 부드럽게 돌아다니는 효과를 줄 때 널리 쓰이는 고급 프로그래밍 기법입니다.
[결론] 학습 정리 (Summary)
- 사이클로이드: 원이 바닥에 미끄러지지 않고 굴러갈 때 원에 찍힌 한 점이 그려내는 아치 모양의 곡선입니다.
- 최단 거리보다 빠른 최단 시간: 대각선 숏컷 도로보다, 사이클로이드 곡선 모양의 미끄럼틀로 물건을 떨어뜨리는 것이 시간을 가장 단축시키는 ‘최단 강하 곡선’의 진리를 배웁니다.
- 매개변수 방정식: 파이썬 프로그래밍에서는 직접 $y = f(x)$ 로 복잡하게 접근하지 않고, 제 3의 각도 팩터($\theta$)를
math.sin등에 대입하는 매개변수로 컴퓨터 애니메이션 렌더링을 매우 가볍고 우아하게 처리합니다.