• <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>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            OpenCASCADE 曲線求交

            Posted on 2023-12-02 12:20 eryar 閱讀(1721) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

            OpenCASCADE 曲線求交

            eryar@163.com

            1 Introduction

            OpenCASCADE中提供了二維幾何曲線的求交類Geom2dAPI_InterCurveCurve,對(duì)應(yīng)到三維幾何只提供了GeomAPI_IntCS, GeomAPI_IntSS,沒(méi)有提供幾何的GeomAPI_IntCC求交類。這些幾何求交一般使用的是數(shù)值算法,即解方程。對(duì)于兩條幾何曲線P(u1), Q(u2),求交就是解P(u1) - Q(u2) = 0這個(gè)方程。為什么對(duì)于三維幾何曲線沒(méi)有提供數(shù)值算法?

            對(duì)于拓樸邊提供了求交算法IntTools_EdgeEdge,這個(gè)類是使用類似于曲面求交的離散網(wǎng)格法,使用了離散包圍盒法。

            基于包圍合盒的算法是個(gè)遞歸算法,算法思路:

            1. 1) 檢查兩條邊在參數(shù)范圍內(nèi)的包圍盒,若空間干涉,則進(jìn)行下一步;否則退出本次判斷;
            2. 2) 找出兩條邊包圍盒的公共部分對(duì)應(yīng)的參數(shù),若沒(méi)找到,則退出本次判斷;
            3. 3) 并將第一條邊在參數(shù)范圍內(nèi)分割成2或3部分,執(zhí)行第一步;
            4. 4) 退出條件:沒(méi)有相交或找到相交的參數(shù)值;

            第一次是分別分成2部分:

            在遞歸函數(shù)FindSolutions()中,只去對(duì)第一條邊進(jìn)行參數(shù)分割成3部分:

            2 輔助函數(shù)

            第一個(gè)輔助函數(shù)是FindParameters(),用來(lái)更新第二條邊在第一條邊的的包圍盒中的參數(shù)范圍,使用這個(gè)參數(shù)范圍更新包圍盒。

            第二個(gè)輔助函數(shù)是CheckCoincidence(),用來(lái)檢測(cè)兩段邊是否重合。第一步是快速計(jì)算,對(duì)邊采樣10個(gè)點(diǎn),若通過(guò)初步粗檢測(cè),后面再深入計(jì)算。這些算法都不太高效。

            第三個(gè)輔助函數(shù)是IsIntersection()用來(lái)判斷兩邊條在參數(shù)范圍內(nèi)是否相交。

            3 測(cè)試

            將兩條邊求交過(guò)程中的包圍盒顯示出來(lái),方便查看理解算法。先測(cè)試兩個(gè)圓之間的相交:

            其中第一條邊是綠色的圓,求交過(guò)程中的包圍盒也用綠色表示;第二條邊是紅色的圓,求交過(guò)程中的包圍盒也用紅色表示。因?yàn)閳A是閉合的,第一次都分割成2部分。將上面交點(diǎn)處理放大:

            后面都是將第一條邊分割成3部分,然后分別用這3部分的包圍盒去找與第二條邊相交的參數(shù)范圍,再更新第二條邊的包圍盒。繼續(xù)放大上面交點(diǎn)處:

            發(fā)現(xiàn)對(duì)于兩個(gè)圓的求交,執(zhí)行了100次,效率不高。又用兩個(gè)B樣條曲線求交來(lái)測(cè)試:

            發(fā)現(xiàn)對(duì)于B樣條曲線求交速度較快。

            4 Conclusion

            曲線求交需要考慮重合部分,opencascae中沒(méi)有使用數(shù)值算法來(lái)計(jì)算,而是采用基于包圍盒的算法來(lái)處理。這種算法一般情況下可以快速找到求交解,有時(shí)遞歸較深,對(duì)于基本曲線可以像曲面求交一樣分類處理以提高性能。opencascade中對(duì)于三維曲線求交算法性能還有優(yōu)化空間。

             

            国产成人精品综合久久久久| 囯产极品美女高潮无套久久久| 久久99精品久久只有精品| 久久精品国产亚洲精品2020| 国产精品久久久久国产A级| 久久精品免费网站网| 亚洲&#228;v永久无码精品天堂久久| 久久久国产视频| 国产精品九九九久久九九| 热久久最新网站获取| 97久久天天综合色天天综合色hd| 久久99精品久久久久久野外 | 久久精品蜜芽亚洲国产AV| 国产精品日韩深夜福利久久| 97精品依人久久久大香线蕉97| 国产成人精品久久综合| 日产精品久久久久久久| 久久综合九色综合欧美就去吻| 国产高潮国产高潮久久久| 日韩欧美亚洲综合久久| 国产成人精品久久亚洲高清不卡| 欧美熟妇另类久久久久久不卡| 亚洲AⅤ优女AV综合久久久| 国产亚洲成人久久| 亚洲成色999久久网站| 久久综合给合久久狠狠狠97色| 欧美成人免费观看久久| 久久无码国产| 日本久久久久久久久久| 久久亚洲天堂| 亚洲国产成人久久一区WWW| 久久精品成人欧美大片| 久久久久久A亚洲欧洲AV冫| 国产精品热久久毛片| 99久久国产综合精品网成人影院| 精品久久久久久中文字幕| 久久精品国产亚洲AV麻豆网站| 亚洲精品高清国产一线久久| 亚洲精品无码久久久影院相关影片 | 久久人人爽人人澡人人高潮AV| 久久99精品免费一区二区|