본문 바로가기

Dev/graphics

[math] 벡터의 정규화란

그래픽에서 벡터는 유클리디안 벡터임(Euclidean vector == geometric vector)

일반적으로 벡터는 화살표로 표현함(화살표로 추상화 시키는거임 왜냐면 그래도 모든 성질을 만족하고 직관도 생기기때문)

간단히 프로그래밍에서 벡터를 사용하는 이유는 2차원에서 공튕기는 프로그램을 짤때 

var x = 100;
var y = 100;
var xSpeed = 1;
var ySpeed = 3.3;

// 움직임
x = x + xSpeed;
y = y + ySpeed;

이였던것을 간단히 아래와 같이 작성할수 있기 때문입니다.

var position = new PVector(100,100);
var velocity = new PVector(1,3.3);

position = position + velocity;

아 하여튼 벡터의 길이를 어떻게 알 수 있지? 벡터 성분 ex)vec3 0,0,1은 알지만 실제 화살표가 원점에서 몇 픽셀이지?"하고 궁금해 할 수 있습니다.  이게 벡터의 크기(화살표의 원점에서 몇 픽셀)

 

정규화란 비교를 위해서 1로 단위를 통일하는겁니다. 만약 삼각형에서 빗변에 대한 정규화란,

이런식으로 이루어지게 됩니다.

제가 이개념을 만난것은 어떤 모델에 3가지 축을 벡터로 표현하는데.. 그 축이 월드좌표계에서 끝도 없이 나타나게 될텐데 그냥 단위벡터로 표현하면 1이 되는거지