Posted on 2023-05-23 23:21
eryar 閱讀(888)
評論(0) 編輯 收藏 引用 所屬分類:
2.OpenCASCADE
OpenCASCADE曲面求交之網(wǎng)格離散法3
eryar@163.com
1 Introduction
由朱心雄等著《自由曲線曲面造型技術》書中對曲面求交之網(wǎng)格離散法描述如下:該法的基本思想是先將曲面離散為由小平面片組成的網(wǎng)格,當網(wǎng)格足夠密時,可以認為已經(jīng)非常接近真實曲面,對分別表示不同曲面的兩張網(wǎng)格,利用平面片求交法求得的交線,并以此交線近似代表曲面間的交線。這種方法原理簡明,便于實現(xiàn),適用范圍廣,任意參數(shù)曲面均可利用該法求交。但為獲取精確地交線,則必須生成非常細密的網(wǎng)格,這將導致占用內(nèi)存多,計算花費大。因此,實際工作中很少單一使用離散網(wǎng)格法,而常將其與其他方法結合使用。
OpenCASCADE中對于曲面求交也提供離散網(wǎng)格法,其中曲面的離散網(wǎng)格由類IntPatch_Polyhedron表示,兩個網(wǎng)格面求交使用類IntPatch_InterferencePolyhedron。在實際計算兩個面相交時并沒有使用這個類,而是使用類IntPolyh_Intersection,而離散網(wǎng)格使用類IntPolyh_MaillageAffinage。
2 網(wǎng)格離散
使用類IntPolyh_MaillageAffinage主要用來生成曲面的網(wǎng)格,其中MaillageAffinage是法語,翻譯過來是Mesh Refining網(wǎng)格細化,網(wǎng)格精度主要是通過參數(shù)U,V方向上的采樣點數(shù)量來確定。當不指定采樣點數(shù)量時,默認是參數(shù)U,V方向分別10個,即默認會生成10x10個采樣點,即使是平面也是生成100個采樣點。通過函數(shù)FillArrayOfPnt()生成采樣點。通過函數(shù)FillArrayOfTriangles()來生成三角形,三角形的數(shù)量通過如下圖所示公式計算,默認數(shù)量 為2x(10-1)x(10-1)=162。

對于簡單的平面,如果不指定采樣點數(shù)量,也會生成100個采樣點及162個三角形:

3 網(wǎng)格求交
兩個網(wǎng)格求交是通過類IntPolyh_Intersection來計算,計算的結果也是兩個網(wǎng)格之間的交線。還是將交線顯示出來便于觀察:

從生成的交線來看,這個結果要比IntPatch_InterferencePolyhedron要好,沒有多余的交線。類IntPolyh_Intersection中使用BVH來過濾不相交的三角形,所以速度也會快很多。
4 Conclusion
綜上所述,使用類IntPolyh_Intersection來計算兩個曲面網(wǎng)格的交線。曲面網(wǎng)格生成直接通過參數(shù)U,V上的采樣點數(shù)量來確定,雖然生成網(wǎng)格速度快,但是精度控制不好,即使是平面也會根據(jù)采樣數(shù)量生成大量采樣點和三角形,影響求交速度。網(wǎng)格求交作為曲面求交的預處理步驟,如何用更少的三角形來表示曲面,可提高網(wǎng)格求交性能。