벡터(Vector) 下

 

 

 

 

◎벡터의 크기

기하학적으로 한 벡터의 크기는 해당 방향이 있는 선분의 길이이다.

벡터의 크기는 이중 수직선으로 표기한다.

Ex ) 벡터 u의 크기는 ||u||이다. 

 

3차원 벡터의 크기는 피타고라스의 정리를 두 번 적용해 구할 수 있다.

 

어떻게 ||u||가 저 식이 될까?

더보기

우선 u의 크기를 빗변으로, y축을 높이 y로 두고 원점으로부터 y까지 직각이 되는 거리를 a라고 둔다.

그러면 ||u|| (빗변) 은 피타고라스의 정리를 통해 y제곱과 a제곱에 루트를 씌운 값이 된다. 

그리고 거기서 a를 구하기 위해 피타고라스의 정리를 한 번 더 사용한다.

a를 빗변으로 두고 x를 밑변, z축의 값을 높이 z로 두어 계산한다.

그러면 ||u||가 위와 같은 식이 된다. 

 

 

벡터를 순수하게 방향을 나타내는 용도로만 사용하면 벡터의 길이는 그다지 중요하지 않을 수 있다.

그런 방향 전용 벡터에서는 벡터의 길이를 정확히 단위 길이인 1로 맞추어 두는 것이 편리하다. 

따라서 벡터의 길이를 단위 길이가 되게 해서 단위 벡터로 만드는 것을 가리켜 벡터의 정규화(normalization)라고 부른다.

벡터의 각 성분을 벡터의 크기로 나누면 벡터가 정규화 된다. 

 

벡터의 정규화

왜 벡터의 크기로 각 성분을 나누는지 이해가 되지 않는다면 이렇게 생각하면 쉽다. 

 

 

 

 

벡터의 곱셈에는 두 가지 종류가 있다. 내적과 외적이다.

 내적

스칼라 값을 나타내는 벡터 곱셈의 일종으로 점곱(dot product)라고도 한다.

 

내적은 결과 값이 뒤에 나올 외적의 결과와 달리 스칼라 값으로 나온다.

 

u = (u1, u2, u3), v = (v1, v2, v3)라고 가정했을 때 내적은

u · v = u1v1 + u2v2 + u3v3

즉, 대응되는 성분들의 곱들의 합이다.

 

 

코사인 법칙을 이용하면 내적의 기하학적 의미를 알아낼 수 있다.

u · v = ||u|| ||v|| cosθ

여기서 θ는 벡터 u와 v 사이의 각도이다. 0 θ π 사이의 값.

따라서 위의 식은 두 벡터의 내적이 두 벡터 사이의 각도의 코사인을 벡터 크기들로 비례 시킨 것이다. 

특히 u와 v가 둘 다 단위 벡터이면 u, v의 내적은 두 벡터 사이의 각도의 코사인이다. 

u · v = 1 * 1 * cosθ = cosθ

 

1. u·v = 0 이면 u ⊥ v이다. ( = 두 벡터는 직교한다. )

2. u·v > 0 이면 두 벡터 사이의 각도 θ는 90˚보다 작다. ( = 두 벡터는 예각을 이룬다.)

3. u·v < 0 이면 두 벡터 사이의 각도 θ90˚보다 크다. ( = 두 벡터는 둔각을 이룬다. )

 

 

 

 

 외적

결과 값이 스칼라 값을 나타내는 내적과는 달리 외적의 결과는 또 다른 벡터가위곱(cross product)라고도 한다. 

 

외적은 오직 3차원 벡터에 대해서만 정의된다.

두 3차원 벡터 u와 v의 외적을 구하면 u와 v 모두에 직교(수직)인 또 다른 벡터 w가 나온다.

 

즉, w는 u와 직교이고 v와도 직교이다.

 

 

u = (u1, u2, u3), v = (v1, v2, v3)라고 가정했을 때 외적은 다음과 같이 구한다. 

w = u x v = (u2v3 - u3v2, u3v1 - u1v3, u1v2 - u2v1) 

w = u x v 

 

 

 

 

 

 

 

 

참고 출처

Direct11을 이용한 3D게임프로그래밍 (저; 프랭크 D. 루나, 역; 류광, 출판사; 한빛미디어)

 

+ Recent posts