OpenCASCADE點向直線投影
在GeomLib_Tool類中提供了計算指定點在曲線、曲面上的參數,這個算法具有通用性,即對任意曲線、曲面來反求點的參數。
本文主要結合源碼分析點向直線投影的算法。在類Extrema_ExtPElC中提供了點向基本的曲線距離極值計算的功能,基本曲線就是常見的直線、圓、橢圓、拋物線、雙曲線等。其中點到直線的距離源碼如下:
根據源碼的意思畫出一個圖來說明會更直觀,其中向量V1是直線的方向向量,V是直線的起點到點P的向量。
算法主要使用向量點乘得到點投影到直線上的距離Mydist,再將點OR沿著直線的方向V1移動Mydist距離就得到了點投影到直線上的點。結合源碼及其注釋還可以看出只有點在直線的投影點到直線原點OR的距離Mydist在指定的范圍內才會保存計算結果。當有范圍限制時,即是計算的點到線段的投影,無限制時就是點到直線的投影。
向量的計算有時可以簡化程序而且算法性能高,充分理解向量的運算并熟練地運用是圖形學編程中的基礎。
為了方便大家在移動端也能看到我的博文和討論交流,現已注冊微信公眾號,歡迎大家掃描下方二維碼關注。
