Posted on 2023-05-28 13:05
eryar 閱讀(922)
評論(0) 編輯 收藏 引用 所屬分類:
2.OpenCASCADE
OpenCASCADE曲面求交之迭代法2
eryar@163.com
1 Introduction
朱心雄等著《自由曲線曲面造型技術》書中對曲面求交的迭代法有詳細介紹,其中關于曲面迭代求交的原理介紹如下:為求得兩個曲面精確的交點,Newton-Raphson迭代法得到廣泛應用,該法的優點為
- 計算精度高,速度快,在初值選擇比較合理的情況下,一般僅需要迭代二到三次就可以使交點的精度從百分之幾提高到萬分之幾甚至百萬分之一的數量級。
- 適用范圍廣,只要能獲得曲面的幾何位置、切矢、法矢等信息,不論什么類型的曲面都可以使用迭代法。
其缺點是對初始值要求較嚴格,初始值選擇不當,可能導致迭代不收斂,也就無法得到精確的交點。
在曲面求交等問題中,一般可根據參與變化的參數數量將迭代法分為三參數迭代法和四參數迭代法兩種類型。我們知道,一張參數曲面有兩個參數,兩張參數曲面共有四個參數變量。采用三參數迭代法時,兩個曲面的四個參數中只有三個參數參與迭代過程,而保持另一個參數固定不變,這實際上就是計算不變參數的等參數線與另一張曲面的交點。采用四參數迭代法時,兩張曲面的四個參數變量都參與迭代過程,四者都可能變化。兩種迭代法各有其優缺點。在下述情況下以應用三參數迭代法為宜:
- 要求將交點迭代至某參數線上,以利于后繼追蹤求交法中濾除無效初值點;
- 當交線接近于參數邊界時,希望將交點迭代至準確的邊界上,以便進行裁剪等操作。
但對于一般交點,三參數法則未必適用。首先遇到的問題是在四個參數中選擇何者作為不變參數,固定參數選擇不當可能降低迭代收斂速度以至根本不收斂,或者破壞交線拓樸結構的正確性。迭代法本身不能夠成獨立的求交方法,主要在追蹤法中使用,OpenCASCADE中曲面求交追蹤法的類是IntWalk_PWalking。前面的blog已經介紹了曲面交求的離散網格法,和類IntWalk_TheInt2S實現原理,本文主要介紹OpenCASCADE曲面求交迭代法的類IntWalk_TheInt2S的用法結果。
2 Newton迭代求交
前文介紹了曲面求交的離散網格法,使用類IntPolyh_Intersection來計算兩個曲面網格的交線,計算結果是網格交線的一組交點。把離散網格的交點作為迭代法的輸入,來檢查一下迭代法的計算結果。

Newton迭代法的輸入是初始估計點分別在兩個曲面上的四個參數(u1, v1, u2, v2),及兩個曲面aS1和aS2,迭代終止精度TolTangency。將計算結果輸出,其中第一個距離是迭代的精確值與網格上交點的距離,第二個距離是精確交點的u1, v1, u2,v2分別在兩個曲面上點的距離,可以看出經過Newton迭代計算后,根據精確交點的參數u1, v1, u2, v2計算出兩個曲面上的點在指定的精度下是重合的。為了便于觀察,將計算結果輸出到DRAW中查看。

其中紅色的線是兩個曲面網格的交線,綠色的線是將網格交線經過Newton迭代后得到精確交線。再將兩個交線與實際曲面一起顯示來對比:

從圖上可以看出,綠色的交線已經能比較準確地表達兩個曲面之間的相交情況。比網格交線效果好。

3 Conclusion
綜上所述,將曲面求交的離散網格交線作為Newton迭代法的初始估計點,可以得到較好的交線。后面再分析一下曲面求交的追蹤法,看在追蹤法中是如何使用離散網格交線數據的。對于一般的NURBS曲面求交,先用離散網格法或分割離散法求得交線和交點的估計值,然后再應用Newton迭代法由估計值求得精確交點。如果認為估計交點分布不夠細密,可以對網格加密,由此可以得到完整、致密的精確交線而無需應用追蹤法。