벡터의 정의
- 벡터(Vector)는 크기(magnitude)와 방향(direction)을 모두 가진 수량(quantity)을 가르키는 말이다.
- 크기와 방향을 모두 가진 수량을 벡터값 수량(Vector-Valued Quantity)이라고 한다.
- 벡터값 수량의 예로는 크기와 방향을 가진 힘, 변위 그리고 속도 등이 있다.
기하학적 의미의 벡터
시각적으로 벡터는 아래의 그림처럼 나타낼 수 있다.

벡터를 그릴때 위치는 중요하지 않다. 왜냐하면 위치를 바꾸어도 벡터의 크기와 방향은 변하지 않기 때문이다. 또 다른 말로는 벡터를 다른곳으로 이동(Translation)해도 그 벡터의 의미는 변하지 않는다.
두 벡터가 길이가 같고 같은 방향을 가르킬 때 그 두 벡터를 서로 상등(Equal)하다 라고 할 수있다.

유클리드 공간상의 벡터 (Euclidian Space Vector)
유클리드 기하학의 5개 공리가 성립되는 공간이라고 설명하면 에바쎄바 참치이고…..
유클리드 공간이란 인간에게 실용적인 공간으로, 평면과 공간에 대한 것을 일반화 한 것이다. 3차원으로 이루어진 우리가 3D 게임 엔진에서 자주 보는 직교 좌표계로 표현하는 그 공간이라고 생각하면 편하다.
좌표계상의 벡터
3차원 좌표계를 하나 두고 벡터를 모두 원점에서 시작하게 하면 벡터를 공간에 맞게 X, Y, Z 좌표로 수치적인 표현이 가능해진다.
벡터는 기준으로 하는 좌표계에 따라 좌표 표현이 달라진다. 월드좌표와 로컬좌표를 생각하면 이해가 쉽다.
왼손 좌표계와 오른손 좌표계

DirectX의 경우 왼손 좌표계, OpenGL의 경우 오른손 좌표계를 사용한다.
벡터 연산들
벡터의 좌표 표현을 이용해서 벡터의 상등, 덧셈, 스칼라 곱셈, 뺄셈을 정의하면 아래와 같이 정의할 수 있다.
예로 벡터 A(Ax, Ay, Az), B(Bx, By, Bz)가 있다고 가정해보자
- 벡터는 대응되는 좌표성분들이 같을 때 상등한다고 한다. (Ax=Bx, Ay=By, Az=Bz 일 때 A=B)
- 벡터의 덧셈은 성분별로 이루어진다. 예를들어 A+B로 나오는 C 벡터는 C(Ax+Bx, Ay+By, Az+Bz)이다. 벡터의 덧샘은 같은 차원에서만 가능하다.
- 벡터에는 스칼라(Scalar)를 곱할 수 있으며 그에 대한 결과는 벡터이다. t가 하나의 스칼라라고 할 때, tA=(tAx, tAy, tAz)이다. 이를 스칼라 곱셈이라 한다.
- 벡터의 뺄셈은 벡터의 덧샘과 스칼라 곱셈을 같이 응용해 정의한다. 구체적으로 서술하면 A-B 일 경우 A+(-1*B)가 되며 A+(-1*B)=(Ax-Bx, Ay-By, Az-Bz) 이다.
- 벡터에 음의 스칼라를 곱할 경우 기하학적으로 한 벡터를 부정(Negation, 부호를 반대로 만든 것)하는 것은 그 벡터의 방향을 뒤집는 것이다.
- 스칼라 곱셈은 벡터의 길이(크기)를 비례(확대, 축소)하는 것에 해당한다.
Bonus. 모든 벡터의 성분이 0일 경우 그 벡터를 영벡터(Zero Vector) 라고 한다.
Bonus. 벡터의 뺄셈이 A-B 로 이루어진다고 할 때, 그 벡터는 결국 B의 머리에서 A의 머리로 가는 벡터와 같다.

그림이 최고야.
알짜힘
물리학적인 이야기지만 두 벡터를 더하고 빼어 나오는 벡터들이 힘의 단위로 계산된다면 결과값은 힘들의 합인 알짜힘(Netforce, 합력)을 구하는 것과 같은 맥락이다.
길이와 단위벡터
기하학적으로 한 벡터의 크기는 해당 지향 선분의 길이이다.
3차원에서 벡터의 크기를 구하는 방법은 피타고라스의 정리를 두 번 이용하는 것이다.
벡터의 길이를 구하는 공식은 모든 성분에 제곱을 한 뒤 루트를 씌우는 방법이다.


벡터를 방향만 나타낼 경우 벡터의 길이는 중요하지 않아진다. 그럴 때 방향 전용 벡터로 길이를 정확히 1로(단위 벡터로) 만들 수 있는 방법이 있다. 그 방법을 정규화(Normalize)라고 한다.
벡터 정규화(Vector Normalize)는 벡터의 각 성분을 벡터의 크기로 나누면 벡터가 정규화 된다.

벡터의 내적
내일 써야징~
참조 :
Comments