青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eryar

PipeCAD - Plant Piping Design Software.
PlantAssistant - Translate AVEVA RVM/SP3D VUE to glTF, STEP, etc.
posts - 606, comments - 590, trackbacks - 0, articles - 0

OpenCASCADE曲面交線分類

Posted on 2023-08-21 00:27 eryar 閱讀(797) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCASCADE曲面交線分類

eryar@163.com

Abstract. OpenCascade classify the intersection line between two surfaces. A intersection line may be either geometric: line, circle, ellipse, parabola, hyperbola as defined in the class GLine, or analytic as defined in the class ALine, or defined by a set of points(coming from a walking algorithm) as defined in the class WLine. Or described by a restriction line on one of the surfaces as RLine.

Key Words. Surface Intersection, Intersection Line

1 Introduction

OpenCASCADE中對兩個曲面求交得到的交線進行了分類,如下類圖所示:

交線總共分為四類:

  • ALine:Analytic解析曲線,主要為兩個二次曲面求交所得,如圓柱面、球面、圓錐面等之間的交線;
  • GLine:Geometric幾何曲線,即交線可以表示成簡單的二次曲線,如直線、圓、拋物線等;
  • WLine:Walking追蹤法得到的交線,保存了追蹤路線上的兩個曲面的交點;
  • RLine:Restriction受限交線,這條交線可能只在一個面上;

下面我們使用Tcl腳本在DRAW中驗證一下這四類交線的來源,加深對曲面求交算法的理解。分類帶來了麻煩,可以帶著問題:為什么要分這幾種類型?有什么好處?來看這篇文章。要用好開源的東西,其實要求還是很高的,需要對源碼有相對深入的理解。

2 ALine

Analytic交線是二次曲面求交所得,二次曲面是因為可以統一使用二次型來表示的解析曲面,也是《解析幾何》中研究的主要內容。我們可以在DRAW中構造圓柱面與圓錐面求交驗證一下。TCL腳本如下:

# Test for IntPatch_ALine.
# Geometry surfaces.
cylinder s1 0 0 0 1 1 1 2
cone s2 0 0 0 0 0 1 1 0 0 30 3
# Topology faces
mkface f1 s1 0 2*pi -8 8
mkface f2 s2 0 2*pi -5 5
# Intersection.
bop f1 f2
bopsection r
# Display result.
vdisplay f1 f2 r

生成結果如下圖所示,其中紅色為交線:

DEBUG源碼可以看到是使用類IntPatch_ImpImpIntersection 計算求交,即兩個解析曲面求交算法類。

3 GLine

Geometric幾何曲線形式簡單,如果交線用幾何曲線來表示,對于后續算法有好處。如平面與圓錐面求交線,圓柱面與圓柱面求交等,都會得到幾何曲線。將上面的圓柱面換成平面與圓錐面求交我們可以在DRAW驗證經典的圓錐與平面交線:根據平面位置不同,可以得到圓、橢圓、雙曲線等幾何曲線。TCL腳本如下所示:

# Test for IntPatch_GLine.
cone s1 0 0 0 0 0 1 30 3
plane s2 0 0 0 0 0 1 
mkface f1 s1 0 2*pi -5 5
mkface f2 s2 -8 8 -8 8
bop f1 f2
bopsection r
vdisplay f1 f2 r

計算交線結果如下圖所示:

我們改變平面的法向,使其斜著與圓錐面求交,會得到橢圓:

還可以得到雙曲線、拋物線等,同學們可以自己嘗試一下。

4 WLine

對于NURBS曲面求交,一般會使用Marching方法,國內教材翻譯為追蹤法。在看《地球脈動》時,注意到對于大草原上的水牛、大象等動物成群結隊的遷徙使用了這個詞,這個詞的字面意思有行進、行軍,列隊行進之意,如果結合opencascade中的walking感覺翻譯為行進法更貼切,因為在opencascade中對于求交專門有個package名為IntWalk,其中類IntWalk_PWalking來使用marching method對兩個參數曲面進行求交。Walk有行走之意,所以對于使用Walk方法得到的交線命名為WLine。對于NURBS曲面求交及二次曲面與NURBS曲面求交,使用了Marching方法,WLine的來源是清晰的。繼續使用上面的腳本,只需要將上述兩個面轉換成NURBS曲面即可觸發Marching法進行求交。TCL腳本如下:

# Test for IntPatch_WLine.
cone s1 0 0 0 0 0 1 30 3
plane s2 0 0 0 1 1 2 
mkface f1 s1 0 2*pi -5 5
mkface f2 s2 -8 8 -8 8
nurbsconvert f1 f1
nurbsconvert f2 f2
bop f1 f2
bopsection r
vdisplay f1 f2 r

通過IntWalk_PWalking行進法配合三參數迭代法,將行進過程中的交點都保存在WLine中。

雖然結果與上面看上去一樣,內部交線已經不是簡單的幾何曲線了。

5 RLine

Restriction交線是受限交線,這種類型的交線只會位于一個面上。這里我們構造一個平面及與平面重疊的一個NURBS曲面來求交進行解釋。TCL腳本如下:

# Test for IntPatch_RLine.
plane s1 0 0 0 0 0 1
plane s2 0 0 0 0 0 1
mkface f1 s1 -5 5 -5 5
mkface f2 s2 -8 8 -8 8
nurbsconvert f1 f1
bop f1 f2
bopsection r
vdisplay f1 f2 r

DEBUG會發現這兩個曲面的交線為RLine,并在生成RLine時指定交線屬于哪個曲面,是在S1曲面SetArcOnS1還是在S2曲面SetArcOnS2:

生成交線如下圖所示:

當然可以使用RLine來判斷兩個曲面是否有重疊,但是在opencascade中兩個曲面重疊叫Tangent Face,可以將上述NURBS面不轉換,還是使用兩個重疊平面來驗證:

求交最后對交線數據歸并時的代碼有點不敢恭維:

6 Conclusion

綜上所述,對兩個曲面求交得到的交線進行分類,避免交線都是NURBS曲線,可以是簡單的二次曲線,提高后續算法性能。在理解源碼的基礎上,可以根據實際應用場景選擇高效的算法。如若只是求兩個模型之間的交線,可以直接使用曲面求交算法,一般情況下性能還是不錯的。當然理解源碼后,可以結合實際應用場景可以對求交算法做進一步優化。

要深入理解opencascade源碼,熟練使用DRAW是一個相對容易的路線。因為在DRAW中可以使用Tcl腳本快速驗證各種想法,甚至直接DEBUG源碼,從表向深入到與源碼作者直接對話。

 

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩国产页| 日韩视频中文| 亚洲你懂的在线视频| 999亚洲国产精| 中文日韩电影网站| 亚洲欧美综合v| 日韩午夜电影av| 亚洲一区二区免费| 久久青草欧美一区二区三区| 国产精品你懂的在线欣赏| 欧美成人69av| 国产精品自在在线| 亚洲第一区在线| 亚洲午夜精品久久| 亚洲精品视频中文字幕| 国内精品国语自产拍在线观看| 亚洲第一级黄色片| 国产精品日韩久久久| 亚洲无亚洲人成网站77777 | 美女图片一区二区| 亚洲精品一区久久久久久| 亚洲区一区二区三区| 欧美一区二区国产| 国产亚洲日本欧美韩国| 亚洲日本在线视频观看| 亚洲视频在线观看网站| 午夜精品一区二区三区四区| 亚洲激情在线激情| 亚洲午夜日本在线观看| 久久人人爽人人| av成人免费观看| 久久久av水蜜桃| 国产在线精品自拍| 亚洲一二三区精品| 亚洲激情在线视频| 久久免费高清视频| 亚洲小说春色综合另类电影| 一区二区av| 亚洲男同1069视频| 欧美精品一区二区在线播放| 欧美福利一区| 亚洲欧美福利一区二区| 国产精品日韩欧美一区| 日韩香蕉视频| 一区二区三区蜜桃网| 亚洲一区日韩在线| 国产精品国产a级| 欧美 日韩 国产 一区| 亚洲第一搞黄网站| 性亚洲最疯狂xxxx高清| 久久久国产91| 久久精品午夜| 亚洲天堂成人在线视频| 亚洲少妇最新在线视频| 国产精品视频yy9299一区| 性欧美长视频| 免费成人你懂的| 亚洲图色在线| 久久久91精品国产一区二区精品| 免费在线看一区| 国产精品视频导航| 久久免费高清视频| 亚洲男人的天堂在线| 国产偷自视频区视频一区二区| 亚洲人成毛片在线播放女女| 日韩一级欧洲| 亚洲精品一品区二品区三品区| 亚洲综合不卡| 亚洲一区二区三区免费视频| 久久久国产精品亚洲一区| 亚洲看片网站| 午夜久久美女| 国产精品男gay被猛男狂揉视频| 国产精品亚发布| 久久电影一区| 国内外成人在线| 欧美日韩裸体免费视频| 久久全球大尺度高清视频| 国产嫩草一区二区三区在线观看| 好吊一区二区三区| 亚洲欧美日韩在线高清直播| 欧美伦理在线观看| 久久影院午夜论| 国产亚洲精品成人av久久ww| 亚洲自拍三区| 亚洲成人直播| 欧美成人精品一区二区三区| 亚洲毛片在线观看| 国产在线视频不卡二| 久久国产欧美日韩精品| 免费精品视频| 午夜精品福利一区二区三区av | 亚洲人体影院| 亚洲精品久久| 国产精品午夜av在线| 欧美激情免费在线| 欧美日韩激情小视频| 久久激五月天综合精品| 99成人在线| 亚洲精品少妇30p| 欧美视频免费在线观看| 亚洲一区二区三区777| 欧美激情视频网站| 亚洲男人的天堂在线观看| 亚洲精品久久久久久久久| 国产精品一区二区久久精品| 蜜桃av噜噜一区| 在线亚洲免费视频| 亚洲日韩中文字幕在线播放| 国产一区二区久久久| 国产欧美日韩另类视频免费观看| 99视频超级精品| 欧美金8天国| 欧美国产高潮xxxx1819| 免费在线成人av| 欧美视频免费在线观看| 国产精品视频自拍| 欧美激情在线播放| 欧美视频一区二区三区| 亚洲二区精品| 亚洲高清中文字幕| 久久国产视频网| 亚洲风情亚aⅴ在线发布| 99精品国产高清一区二区| 香蕉乱码成人久久天堂爱免费 | 国产精品久久久久久久久久直播| 亚洲精品久久久久久久久久久久久 | 国产日韩一区| 国产一区三区三区| 伊人久久av导航| 亚洲五月六月| 毛片一区二区| 性亚洲最疯狂xxxx高清| 欧美日本一区二区视频在线观看| 中日韩男男gay无套| 欧美一区二区三区在线| 欧美大片va欧美在线播放| 中国亚洲黄色| 亚洲黄色av| 久久人人97超碰国产公开结果| 在线视频中文亚洲| 久久综合一区| 国产一区深夜福利| 午夜精品剧场| 午夜激情亚洲| 国产精品久久久久久久久久免费看| 欧美大成色www永久网站婷| 国产精品v欧美精品v日韩 | 免费观看国产成人| 国产欧美一区二区精品婷婷| 99国产精品久久久久久久| 亚洲国产精品成人va在线观看| 国产精品免费看片| 亚洲一级片在线观看| 亚洲精品一区二区三区婷婷月| 亚洲欧洲另类国产综合| 另类专区欧美制服同性| 久久久久久亚洲综合影院红桃| 欧美在线视频观看免费网站| 国产精品三级视频| 免费成年人欧美视频| 美女在线一区二区| 亚洲免费影视第一页| 亚洲欧美在线高清| 亚洲国产影院| 亚洲一区二区三区乱码aⅴ| 在线视频精品一区| 欧美在线不卡视频| 日韩天堂在线观看| 欧美一区二区三区精品| 日韩亚洲不卡在线| 久久精品99久久香蕉国产色戒| 久久综合色88| 亚洲午夜精品一区二区| 麻豆91精品| 中文高清一区| 欧美在线播放| 亚洲欧美一区二区精品久久久| 欧美暴力喷水在线| 国产精品超碰97尤物18| 亚洲国产精品一区二区久| 亚洲精品在线免费| 在线观看欧美日韩| 欧美在线观看一二区| 亚洲视频网站在线观看| 欧美激情精品久久久久久黑人 | 性欧美暴力猛交69hd| 亚洲美女在线国产| 欧美xx69| 日韩视频在线观看免费| 欧美三区美女| 亚洲一区二区视频在线| 欧美日韩国产123| 中文精品在线| 国产精品毛片va一区二区三区 | 夜夜嗨av色综合久久久综合网| 美日韩丰满少妇在线观看| 国产日韩欧美一区二区三区在线观看 | 亚洲三级网站| 欧美成人午夜免费视在线看片 |