01. 첫 번째 수업: 브레이크 밟는 순간, 1차원 직선 운동 (1D Motion)
게임에서 플레이어 캐릭터가 좌우(X축) 일직선상으로 전진과 후진을 반복하는 “수직 1D 액션 파이프라인” 을 하나 설계합니다.
- 위치 함수 (Position): $\mathbf{x(t) = t^3 - 6t^2 + 9t}$
캐릭터의 발자취가 시간 $t$ 초 단위 포맷에 따라 우측(+) 으로 갔다가 좌측(-) 으로 갔다가 와리가리 춤을 춥니다. 이제 컴퓨터가 미분 해킹 모듈로 묻습니다. “야. 이 캐릭터가 미친 듯이 전진(+ 속도) 하다가 $\to$ 갑자기 방향을 휙 틀어서 후진(- 속도 역주행) 으로 꺾어 달리는 타임라인 분기점(운동 방향이 180도 전환 터지는 그 찰나!) 이 언제냐? 초시계 $t$ 의 정답을 불어라!”
1. 스피드 해킹: 속도 $v(t)$ 센서 가동
위치 함수로는 역주행 여부를 알 수 없습니다! 방향과 전진/후진 기어 상태를 알고 싶으면, 오리지널 $x(t)$ 를 무조건 믹서기에 넣고 갈아서 $\mathbf{v(t)}$ 스피드 자판기로 바꿔야 합니다.
$x(t) = t^3 - 6t^2 + 9t$ $\downarrow$ 미분
diff(x_t, t)타격! $\downarrow$ $\mathbf{v(t) = 3t^2 - 12t + 9}$
이것이 현재 나의 스피드 계기판(도함수) 입니다.
2. 방향 전환의 버그 스팟: $\mathbf{v(t) = 0}$
전진 기어(+) 에서 후진 기어(-) 로 변속 레버를 손으로 확 잡아 당기려면? 반드시 기어가 가운데 ‘중립 N단 (스피드 Zero = 0)’ 위치를 덜컥 밟고 건너뛰어야 합니다. 자동차가 마찰력 없이 허공에 핑그르르 돌아서 후진을 갈길 수는 없습니다! 즉 바퀴가 스톱(Stop) 하는 $v(t) = 0$ 찰나의 순간이 운동방향의 변곡점 앵커가 됩니다!
- $v(t) = 3(t^2 - 4t + 3) = 0$
- $3(t - 1)(t - 3) = 0$
[해킹 결과 도출] “찾았다! 타임라인 $t = 1$호 랑 $t = 3$초 일 때, 이 미친 캐릭터의 엔진 스피드 바늘이 $\mathbf{0}$ 초가 딱 터지는구만!”
3. 부호 이펙트 폭파 점검
도출해 낸 1초와 3초 구간 전후로, 스피드 $v(t)$ 수치가 플러스(+) 였는지 마이너스(-) 로 꺾이는지 부호를 체크해 봅시다.
- $t=0$ 일 때 (출발시점): $v(0) = +9$ (오른쪽으로 우당탕탕 전진 중!)
- $t=1$ 일 때: 속도가 $0$ 으로 훅! 정차! (앞으로 가다 콱 브레이크 밟음!)
- $t=2$ 일 때: $v(2) = 3(4) - 12(2) + 9 = -3$ 음수! (이런! 뒤로 꺾어서 후진을 밟기 시작했다!)
- $t=3$ 일 때: 다시 속도가 $0$ 으로 훅! 정차! (이번엔 후진 밟다가 뒤로 브레이크 밟아 멈춤!)
- $t=4$ 일 때: $v(4) = 3(16) - 48 + 9 = +9$ 양수! 다시 오른쪽 무식한 폭주 전진 재개!
위치 데이터를 던져주고 $\to$ 미분 속도값을 풀어해쳐 $\to$ 언제 이 녀석이 앞뒤로 허세 방향전환(턴) 무빙을 치는지 시뮬레이션 데이터를 $100\%$ 완벽 복원해 낸 것입니다! 이 1차원 운동 스캔 코드를 장착했다면, 다음 장에서는 가장 헷갈리는 초보자들의 살상 코드 ‘속도’ 와 ‘속력’ 의 개념 포맷 차이를 뜯어 고쳐보겠습니다.