벡터의 정규화

박지예·2023년 8월 25일
0

공부

목록 보기
32/42

벡터에는 방향과 크기라는 두 가지 정보가 있다. 그런데 게임 프로그래밍을 할 때 방향 정보만 필요할 때가 있다.

이때는 벡터 크기가 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

방향은 정해져 있고 길이를 조정하고 싶을 때 사용한다.

profile
언젠간 바다로 갈거야!🐋

0개의 댓글