벡터는 여러 값을 갖는 다차원의 수를 표현하는 방법이며, 행렬로 표현할 때 행 또는 열의 크기가 1인 특별한 행렬이라고 생각할 수 있음.
열벡터와 행벡터
열벡터 (Column Vector)
⎝⎜⎛abc⎠⎟⎞
행벡터 (Row Vector)
(abc)
열벡터, 행벡터 변환
라이브러리마다 벡터의 표현법이 다름. DirectX, Direct3D 는 행벡터를 사용하며, OpenGL 라이브러리는 열벡터를 사용함. 벡터에 어떤 변환을 위해 행렬을 곱하면, 열 벡터의 경우 벡터의 앞에 행렬을 곱하고, 행 벡터의 경우 벡터의 뒤에 전치된 행렬을 곱함. 벡터는 열벡터를 기본으로 다룰 것임.
열 벡터 변환
Mv=⎝⎜⎛acebdf⎠⎟⎞(xy)=⎝⎜⎛ax+bycx+dyex+fy⎠⎟⎞
행 벡터 변환
vTMT=(xy)(abcdef)=(ax+bycx+dyex+fy)
(∵(Mv)T=vTMT)
벡터의 길이
벡터 v = (vx,vy,vz) 의 길이 ∥v∥
∥v∥=vx2+vy2+vz2(∵피타고라스정리)
벡터 정규화 (Normalization)
벡터의 길이 1로 만드는 작업. 벡터를 벡터의 길이로 나눠줌.
정규화 결과 크기가 1인 단위 벡터(Unit vector)를 얻을 수 있음.
∥v∥v
2. 기저와 좌표계
기저 (Basis)
벡터 공간에서 모든 벡터를 선형 결합으로 표현할 수 있는 벡터들의 집합.
즉, 임의의 크기와 방향을 가진 벡터는 Basis vector 의 Linear combination(ax+by) 로 표현할 수 있음.
축이 되는 벡터들.
어떠한 베이시스가 주어지든 곱해지는 실수 값만 잘 조절하면 어떠한 벡터든 표현할 수 있음.
좌표계 (Coordinate System)
좌표계(Coordinate system)는 원점(Origin) + 기저(Basis) 로 구성됨.
컴퓨터그래픽스에서는 공간(Space)과 같은 의미.
다양한 기저가 존재하지만 서로 직교하며 크기가 1인 Basis vector 를 사용함.
직교하는 것을 Orthogonal 이라고 하며, 직교하면서 크키가 1이면 Orthonormal 하다고 함.
일반적으로 사용하는 Standard orthonormal basis (1,0,0), (0,1,0), (0,0,1) 을 사용할 것임.