벡터에는 방향과 크기라는 두 가지 정보가 있다. 그런데 게임 프로그래밍을 할 때 방향 정보만 필요할 때가 있다.
이때는 벡터 크기가 1 이면 편리 하므로 일부러 벡터 크기를 1로 만든다.
이를 정규화
(normalization) 이라고 한다.
(벡터 A가 정규화된 벡터) = (벡터 A) / (벡터 A의 크기)
이렇게 하면 크기가 1인 벡터를 만들 수 있다.
예를 들어 (x, y) 벡터를 정규화한다고 하자.
정규화된 벡터를 (x1, y1)라고 하고, (x, y) 벡터 크기를 일단 1이라고 하자(1 = √(x² + y²) 이다.
(x1, y1) = (x, y) / 1 = ( x / 1, x / 1)
길이는 매우 간단하게 계산할 수 있다. 그리고 결과인 (x1, y1)의 크기가 1이 되면 성립하므로 이대로 검산을 계속할 수 있다. (x1, y1)의 크기는 1이라고 하자.
1² = x1² + y1² // 피타고라스 정리
= ( x / 1)² + (y / 1)² // 벡터 / 크기
= (x² / (x²)) + (y² / (x² + y²))
= (x² + y²) / (x² + y²)
= 1
검산 결과로 1의 제곱이 반드시 1이 된다. 앞에서 본 공식으로 정규화가 성립한다는 것을 알았다. 벡터의 방향만을 원할 때는 정규화를 하면 된다.
반대로 임의의 벡터를 원하는 크기로 만들고 싶을 때는 다음처럼 계산한다.
(벡터 A의 크기를 n으로 한 벡터) = (벡터 A를 정규화한 벡터) x a
방향은 정해져 있고 길이를 조정하고 싶을 때 사용한다.