수학

벡터의 개념과 벡터의 내적,외적 - 게임 수학(3)

콘파냐 2014. 5. 26. 10:14

벡터는 크기만 가진 스칼라의 진화형으로 방향과 크기를 가집니다.  게임 프로그래밍에 필수적인 요소기 때문에 벡터에 관한 내용은 자세히 공부할 수록 좋다고 생각됩니다. 물리계에서 사용하는 힘, 속도, 가속도를 벡터로 표현할 수 있기 때문에 물리엔진의 구현에도 벡터는 필수적입니다.

벡터의 개념은 라그랑즈(1736-1813)가 1788년에 출판한 "Mechanique Analytique"에서 발견되었습니다. 라그랑즈 이후에 벡터의 개념이 수학, 역학, 물리학, 공학 등에 보편화 되는데 100여년이 걸렸습니다.

게임내에서 벡터의 쓰임은 오브젝트의 위치, 운동의 표현, 폴리곤, 카메라나 시선처리, 조명을 위한 법선 처리 등 공간적 방향을 표현하는데 쓰이기도 합니다.



백터의 개념


유향선분

유향선분의 평행이동

위 그림처럼 AB와 A'B'는 같은 벡터입니다. 벡터는 이렇게 시작점은 의미가 없습니다.

벡터 전체의 집함은 원점을 시작으로하는 유향선분 전체의 집합과 같습니다.  또한 n차원 벡터 전체의 집합은 n차원 실수 전체의 집합과도 같습니다.

2차원 평면상에서 원점을 시점으로 하고 종점을 (v1,v2)로하는 벡터는 다음과 같이 표현합니다.



(2,2)가 시점이고 (3,4)가 종점인 벡터는 다음과 같이 표현됩니다.



n차원 벡터의 크기는 다음과 같습니다.


단위벡터는 다음과 같습니다.


임의의 벡터 V의 단위벡터는 다음과 같이 나타낼수 있습니다.

크기가 1인 단위벡터는 방향을 표현하는데 유용하게 쓰이며, 3D 그래픽에서 평면의 법선방향, 카메라의 방향 등을 나타낼 때 사용합니다. 이 때 벡터를 크기가 1인 단위벡터로 만들어 주는 것, 즉 벡터의 방향을 구하는 것을 정규화(Normalization)라고 하며 위와 같이 구할 수 있습니다.


다음은 3차원 공간에서 표준 단위벡터입니다.



표준단위벡터는 임의의 벡터를 표준단위로 분해하거나 사원수(quaternion)에서 이용됩니다.



나란한 벡터

영벡터가 아닌 두 벡터A,B에 대해서 A=kB인 실수가 존재하면 A와 B는 나란하다고 정의합니다.

k>0이면 나란하다고 정의하고 k<0이면 반대방향이라고 할 수 있습니다. 0벡터는 모든 벡터와 나란한 것으로 여깁니다.

예를들어 (1,2,3)과 같은 방향의 단위벡터를 구하면 다음과 같습니다.





벡터의 연산

벡터의 덧셈


벡터의 뺄셈





벡터와 스칼라(실수)의 곱



벡터 연산의 법칙




벡터의 내적(inner product)



정사영(orthogonal projection)




정사영의 증명


t의 최소값을 구하는 것이 포인트.



Bcosθ의 스칼라값에 A방향의 단위벡터를 곱하는 것이 포인트.


벡터의 내적 공식 증명



내적의 활용



두 벡터 A,B사이를 이루는 각

내적의 값이 양수일 때 -> 예각

내적의 값이 음수일 때 -> 둔각

내적의 값이 0일 때 -> 직각

 

위 식에서 θ의 값(각)은 분모의 값이 항상 양수이므로 분자의 값에 영향을 받습니다. 즉 벡터의 내적의 값에 따라서 cos값의 부호가 결정됩니다. 내적이 양수인 경우 cos값이 양이되는 θ의 값은 예각인 경우입니다. 0이되는 경우 직각 음수인 경우 둔각이 됩니다.

이는 컴퓨터 그래픽에서 하나의 삼각 평면에 수직한 벡터와 카메라의 방향 벡터간의 내적을 동해 해당 평면이 눈에 보이는지 보이지 않는지를 결정하는데 매우 중요하게 사용됩니다.

또한, 벡터의 내적과 정사영을 통해 두 벡터 사이에 여러 유용한 벡터를 뽑아낼 수 있습니다. 3D 그래픽에서는 정사영과 내적, 두 벡터 사이의 각에 대해 정확한 이해가 필수 적이므로 확실히 이해해야 합니다.



벡터의 외적


왼손으로 하는 것이 편할 수도 있다. 왼손으로 하면 아래(가운데손가락)부터 차례로 a-b-c가 된다.


벡터의 내적 결과 값이 스칼라값인 것과 달리 벡터의 외적(Cross Product)은 결과값이 벡터 값 입니다.

벡터의 외적은 두 벡터 모두에 수직한 벡터를 결과값으로 갖습니다.

외적은 3D 그래픽이나 물리에서 매우 자주 사용되며 어떤 평면의 한 점에 대해 서로 다른 접선 벡터가 주어질 때 그 평면에 수직한 법선벡터를 구하는 데 주로 사용됩니다.



벡터의 외적의 정의




벡터의 외적의 성질




벡터 외적인 경우 두 벡터 모두 수직인 벡터가 결과값이므로, 두 벡터가 평행일 때 0 벡터가 됨.



표준단위벡터의 외적




두개의 축방향 단위 벡터를 통해 나머지 하나의 축 방향 단위벡터를 구할 수 있습니다. 이렇게 벡터 외적의 정의를 이용하여 다음과 같은 식을 구할 수 있는데 3D 그래픽, 물리, 쿼터니언 등에서 자주 사용되는 식 입니다.

출처 - 한국콘텐츠진흥원

반응형