在很多情況下,我們只關心向量的方向兒不關心其大小,比如,在計算關照模型時,我們往往需要得到頂點的法線方向和光源方向,此時我們不關心這些向量有多長。在這些情況下,我們就需要計算標準化向量
標準化向量指的是那些長度爲1的向量,標準化向量也被稱爲歸一化的向量或者單位向量。
數學公式:
V是任意非零向量。
例:
公式解析:
1.求一個向量的標準化向量,本質是讓這個向量與自身的模相除;
2.向量與一個數值相除,本質是向量與一個標量相除;
代碼實現:
/// <summary>
/// 標準化向量.
/// </summary>
public Vector3 normalized
{
get
{
float temp = magnitude;//先計算得到向量的模.
//自身向量的各分量除以自身向量的模.
float X = this.x / temp;
float Y = this.y / temp;
float Z = this.z / temp;
return new Vector3(X, Y, Z);//最終返回一個新的向量.
}
}
注意:零向量是不可以被歸一化的,這是因爲做除法運算時分母不能爲0