본문 바로가기

볼봇의 코딩 생활/게임 수학

벡터 크기의 이해와 정규화 과정

오늘부터 게임 개발에 필수적인 벡터에 대해 공부하면서, 배운 내용을 블로그에 정리해보겠다.

 

첫 포스팅은 벡터의 크기와 정규화 과정에 대해 이해해보겠다.

 

벡터의 크기

벡터의 크기는 곧 기하학적으로 그려진 벡터의 길이를 뜻한다.

 

3차원 그림을 그리자니 필자의 그림 실력이 후달려서 2차원으로 옮겨봤다.

(2차원이나 3차원이나 요소 하나의 차이이므로 상관 없다.)

 

그려진 벡터의 꼬리를 (0,0), 머리를 (2,1)이라고 해보자면 피타고라스 정리를 활용해

벡터의 크기를 쉽게 구할 수 있다.

 

(수식 입력 하는 방법을 조망간 찾아봐야겠다.)

벡터의 크기는 이중 수직선으로 표기하는데, 위 그림을 예로 들면 ||√5|| 라고 할 수 있겠다.

 

벡터의 정규화

벡터는 크기, 방향, 속력을 나타낼 수 있다는것을 알고있다.

만약 단순히 방향만 나타내고 싶다면 벡터의 크기를 1로 맞춰 앞으로 계산에서 편리함을 보탤 수 있을것이다.

 

이렇게 벡터의 크기를 1로 맞추는 작업을 정규화 라고 한다.

 

v 를 어떤 값을 가진 백터라고 하면. 아래와 같은 공식으로 정규화 할 수 있다.

(x / ||v|| , y / ||v|| , z / ||v||)

간단히, 각 요소를 벡터의 크기로 나누면 된다.

 

예를 들어, v = (1,-2, 3) 라고 해보겠다.

 

||v|| 의 크기를 구해보면 √14 라는 값을 구할 수 있다. (약 3.7 정도 값이 나온다.)

이 값을 x, y, z 에 모두 나눠보면 위 처럼 생긴 분수값을 얻을 수 있다.

 

벡터 v 를 정규화 한 값은

(0.27 -0.54, 0.8) 라고 볼 수 있다. (소수점 첫 자리에서 버림했기 때문에 실제 값과 약간 차이가 있다.)

정규화된 벡터의 길이를 구하면 1에 근사한 값을 얻을 수 있다.

(= 1.0039가 나온다.)

 

 

앞으로 벡터 공부를 하며 배운 내용을 이곳에 포스팅 해보겠다.

타블렛 있으니 그림도 다시 그리겠습니다. ㅠ