수학이야기 64.벡터 (Vector: Arrows in Space)

지금까지 배운 수학(방정식, 넓이, 확률) 은 대부분 크기나 양(수치) 만 있는 데이터인 ‘스칼라(Scalar)’ 의 세계였습니다. “내 공격력이 $100$이다, 몬스터 체력이 $50$이다, 온도가 $30^\circ\text{C}$ 다.” 이런 데이터들은 단순히 엑셀 칸 하나에 들어가는 숫자 쪼가리일 뿐, 화면상의 “움직임” 이나 “물리가 작용하는 힘” 을 구현해 낼 수 없습니다.

하지만 게임과 물리 엔진의 세계에서, 총알이 어느 쪽으로 날아갈지, 우주선이 어느 방향으로 가속 엔진을 터트릴지 결정하려면 숫자 하나로는 턱없이 부족합니다. 우리에겐 “얼마나 쎈 힘으로 (크기 Magnitude)” + “어디를 향해 (방향 Direction)” 날아갈 것인지를 하나로 묶어놓은 위대한 화살표 데이터 팩토리얼 캡슐이 필요합니다.

이번 벡터(Vector) 단원에서는 2D/3D 공간에서 날아다니는 기하학의 화살표 렌더링을 뜯어봅니다. 단순히 길이를 갖는 몽둥이가 아니라, “방향” 이라는 영혼을 이식받은 화살표들이 어떻게 서로 꼬리를 물며 더해지고(합력), 충돌하며(차), 코딩 좌표평면 위를 찢고 날아가는지 파이썬 NumPy 배열 엔진과 함께 해부해 보겠습니다.


목차

서브목차