본문 바로가기
Base Knowledge/Math

Vector와 Scalar

by KingCat 2013. 12. 11.

<Vector와 Scalar>
스칼라 : 크기만 갖는 물리량. 크기만으로 그 물리량이 결정된다.
벡터 : 크기와 방향을 갖는 물리량. 크기와 방향이 정해져야 그 물리량이 결정된다.

 

<Vector의 표현방법>


벡터의 크기와 단위벡터(방향)로 표현

 

<Vector의 속성치>


Size : 벡터는 크기와 방향을 가지는데 크기를 나타내는 것이 벡터의 길이이다.
       벡터의 길이는 당연히 스칼라값이다.
       벡터의 길이를 나타내기 위해 ||v||와 같은 방식으로 표기한다.
       벡터의 길이를 구하는 공식은 ||v|| = sqrt(v0^2 + v1^2 + v2^2...+vn^2)


Normalization : 벡터의 정규화는 크기가 1이 아닌 벡터를 단위 벡터(1인 벡터)로 만들어 주는 것이다.
                1의 크기를 가지고 있는 단위벡터는 방향을 표현하는데 유용하게 사용되며
                컴퓨터 그래픽스에서 광원의 방향, 평면의 법선 방향, 카메라의 방향 등 방향을
                나타낼 때 사용되는 중요한 벡터이다.


Unit Vector : 크기가 1인 벡터


Normal Vector(법선 벡터) : 길이가 1인 단위 벡터. 법선 벡터의 크기는 항상 1이다.

 

<Vector의 연산(더하기, 빼기, 내적, 외적) 방법 및 주요 사용처>


내적 : 벡터끼리의 곱. 곱을 할 때는 x좌표는 x좌표끼리, y좌표는 y좌표끼리 곱하고 나중에 더한다.
       또한 두 벡터의 길이를 곱하고, 거기에 두 벡터의 코사인값을 곱해도 내적이 나온다.
       화면에 렌더링을 할 필요가 없는 폴리곤들을 검사하는데 쓸 수 있다.
       임의의 한점을 잡고, 카메라의 위치를 빼면 벡터가 하나 나오고, 그 벡터와 대상 폴리곤의
       법선벡터와의 내적을 구해서 0보다 작으면 앞면이 화면을 향하므로 렌더링을 하고,
       0보다 크면 뒷면에 화면을 향하므로 렌더링을 하지 않아도 된다.


외적 : 벡터 2개가 있을 때, 그 두 벡터에 대해 수직인 제3의 벡터를 외적이라한다.
       즉, z축은 x축, y축에 외적인 벡터라고 생각할 수 있다.
       v.x = v1.y * v2.z - v1.z * v2.y
       v.y = v1.z * v2.x - v1.x * v2.z
       v.z = v1.x * v2.y - v1.y * v2.x 이와 같이 나타낼 수 있다.
       이 외적은 폴리곤의 법선벡터를 구하는 데에 쓸 수 있다.
       폴리곤의 법선벡터는 그 폴리곤이 속해 있는 평면에 수직인 벡터를 말한다.
       폴리곤이 쳐다보고 있는 방향이라고 생각하면 된다.