標準化向量/單位向量

在很多情況下,我們只關心向量的方向兒不關心其大小,比如,在計算關照模型時,我們往往需要得到頂點的法線方向和光源方向,此時我們不關心這些向量有多長。在這些情況下,我們就需要計算標準化向量

標準化向量指的是那些長度爲1的向量,標準化向量也被稱爲歸一化的向量或者單位向量。

數學公式:

\large _{V_{normalized}}=\frac{\mathrm{v} }{\mathrm{|V|} }

V是任意非零向量。

例:

\large \left [ 2,3,5 \right ]normalized= \frac{\mathrm{[2,3,5]} }{\mathrm{|[2,3,5]|}}= \frac{\mathrm{[2,3,5]} }{\mathrm{6.164}}

 

公式解析:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章