2020年12月22日 星期二

向量正規化的注意事項

 向量正規化的注意事項

前言

  最近的專案遽然發生了除0中斷,結果追了一下發生的地方,結果在自己寫的向量函示庫裡的向量正規化這裡發生,這裡把學習的過程做個紀錄。


內容

  計算向量正規化時,會先計算該向量長度,長度公式如下

向量長度公式

計算完長度後再將每個數值除以長度就可以完成正規化,但如果這個長度很小或根本是"0"的話就會發生問題,解決的方法是計算完長度後,如果小於"FLT_EPSILON"就放棄計算(或直接在結果填上零向量),"FLT_EPSILON"是 C++ 的標準 Macro ,可以解釋成 float 資料型態的最小精度。


  向量函示庫自己寫就是會碰到這種麻煩,不過也可以在這樣的過程中學習,這次可真是上了一課。


沒有留言:

張貼留言