江苏快三开奖结果

posts - 432, comments - 579, trackbacks - 0, articles - 0

OpenCASCADE點向圓柱面投影

Posted on 2019-09-22 22:39 eryar 閱讀(721) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCASCADE點向圓柱面投影

eryar@163.com

 

OpenCASCADE的類Extrema_ExtPElS提供了點到基本曲面的投影計算功能,距離可能是最大值或是最小值。如下圖所示的點到圓柱的投影會有兩個投影點P1P2,則點到圓柱的距離的最小值是PP1的距離,最大值是PP2的距離。本文主要是對此類中點到圓柱的投影算法進行分析。

 

Extrema_ExtPElS類中計算點到圓柱的投影源碼列出如下:

 

結合源碼的注釋可以看出點P到圓柱S的投影主要按有如下步驟:

l 計算點P到以圓柱S軸線為法線的平面的投影點Pp

l 若點P在軸線上,則計算失敗返回;

l 計算點Pp在圓柱U方向的參數U1(角度);

l 將參數U1(角度)加180度得到參數U2

l 計算參數(U1V),(U2V)對應在圓柱面上的點;

江苏快三开奖结果SHANGSHUSHIXIANZHUYAOYESHISHIYONGXIANGLIANGDEYUNSUAN,SUOYICHENGXUJIANDANQIEXINGNENGGAO。QIZHONGBAOCUNDEJULISHIJULIDEPINGFANGZHI,ZHEZHONGFANGSHIZHUYAOKAOLVDESHIZIDAIDEKAIFANGHANSHUXINGNENG,CHUFEIHOUMIANYAOYONGDAOJULICAIHUIZIJIQUKAIFANG,ZHEYANGYESHITIGONGXINGNENGDEYIZHONGCHULIFANGSHI。

OpenCASCADE的向量類gp_Vec提供了一個函數AngleWithRef(),查看源碼可知這個函數主要是計算兩個向量之間的夾角,其中參數向量Ref是用來處理角度的正負。當兩個向量叉乘的向量與參考向量Ref反向時,也會將得到的角度值取負。

下面通過一個簡單的小程序來將計算結果在Draw Test Harness中可視化,這樣可以直觀地驗證一下:

 

將生成的腳本文件加載到DRAW中得到如下圖所示的結果:

 

從上圖可以看出,投影得到的兩個點P1P2的高度值與點P是相同的。


為了方便大家在移動端也能看到我的博文和討論交流,現已注冊微信公眾號,歡迎大家掃描下方二維碼關注。
Shing Liu(eryar@163.com)

只有注冊用戶登錄后才能發表評論。

網站導航:                管理