normalize
単位ベクトル化(正規化)
ベクトルをX,Y,Zの各成分が合計1となるように、それぞれの割合を
設定したものを単位ベクトルと呼びます。
各成分がそれぞれの割合を示しているので、この状態のものは
ベクトルの計算に使いやすいのです。
ベクトルvの単位ベクトルを求めるには
単位ベクトル = v * ( 1 / ベクトルvの大きさ );
C++
TVector normalize(TVector &a)
{
float mag = magnitude(a);
if (mag == 0) mag = 0.000001;
mag = 1 / mag;
TVector ret;
ret.v[0] = a.v[0] * mag;
ret.v[1] = a.v[1] * mag;
ret.v[2] = a.v[2] * mag;
return ret;
};
Java
static Vertex normalize(Vertex dest)
{
float mag = magnitude(dest);
mag = 1 / mag;
dest.x *= mag;
dest.y *= mag;
dest.z *= mag;
return dest;
}
2008年02月18日(月) 06:48:14 Modified by eruvasu