• <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曲線上點(diǎn)的反求

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

            OpenCASCADE曲線上點(diǎn)的反求

            eryar@163.com

            1 Introduction

            曲線可以用代數(shù)方程表示,如圓可以用X^2+Y^2=R^2表示,也可以用參數(shù)方程X(u)=RCos(u), Y(u)=RSin(u)表示。要判斷點(diǎn)是不是在線上,用曲線代數(shù)方程可以很直接得出結(jié)果,但是使用參數(shù)方程就沒(méi)有那么直接。這也是參數(shù)曲線上點(diǎn)的反求問(wèn)題,參數(shù)曲線上點(diǎn)的反求問(wèn)題應(yīng)用廣泛,如前面所述判斷點(diǎn)是否在曲線上、點(diǎn)向曲線投影、點(diǎn)與線的求交、點(diǎn)在參數(shù)曲線上的參數(shù)等,都與點(diǎn)的反求問(wèn)題相關(guān)。本文主要結(jié)合代碼介紹OpenCASCADE曲線上點(diǎn)的反求實(shí)現(xiàn)原理及使用過(guò)程中的一些注意事項(xiàng)。

            2 實(shí)現(xiàn)原理

            在《The NURBS Book》書(shū)中將點(diǎn)的反求問(wèn)題歸結(jié)為點(diǎn)向曲線投影距離最短的問(wèn)題,如下圖所示:

            建立函數(shù)f(u)=C’(u).(C(u) - P)表示點(diǎn)到曲線距離,當(dāng)f(u)=0時(shí)為點(diǎn)到曲線的最短距離,不管點(diǎn)P是否在曲線上。幾何意義是點(diǎn)到曲線任意點(diǎn)的向量與任意點(diǎn)處的切向量點(diǎn)積為零,表示在兩個(gè)向量垂直的時(shí)候求得極值點(diǎn)。注意數(shù)學(xué)方程中垂直這個(gè)幾何意義。

            OpenCASCADE中實(shí)現(xiàn)曲線上點(diǎn)的反求原理與《The NURBS Book》書(shū)中一致。點(diǎn)的反求使用類(lèi)GeomLib_Tool::Parameter()函數(shù):

            輸入曲線、點(diǎn)和最大距離,計(jì)算點(diǎn)是否在曲線上及若在曲線上,點(diǎn)對(duì)應(yīng)參數(shù)曲線的參數(shù)U。

            類(lèi)Extrema_ExtPC計(jì)算點(diǎn)P到線C的極值Extrema。根據(jù)代碼注釋可以看出點(diǎn)的反求數(shù)學(xué)方程與《The NURBS Book》書(shū)中一致:

            數(shù)學(xué)方程對(duì)應(yīng)的類(lèi)的變量為myF,類(lèi)名為Extrema_FuncExtPC,從類(lèi)math_FunctionWithDerivative派生,所以必須實(shí)現(xiàn)兩個(gè)關(guān)鍵虛函數(shù)Value()和Derivative()。其代碼注釋說(shuō)明了這兩個(gè)函數(shù)的實(shí)現(xiàn)細(xì)節(jié):

            其中F(u)對(duì)應(yīng)函數(shù)Value():

            DF(u)對(duì)應(yīng)函數(shù)Derivative(),最后使用Newton法math_FunctionRoots對(duì)方程進(jìn)行求根。

            3 注意事項(xiàng)

            OpenCASCADE中點(diǎn)的反求GeomLib_Tool::Parameter()、點(diǎn)向曲線投影GeomAPI_ProjectPointOnCurve、點(diǎn)與曲線的交點(diǎn)IntTools_Context::ComputeVE等算法都是使用了Extrema_ExtPC類(lèi)。

             

            當(dāng)使用GeomLib_Tool::Parameter()函數(shù)來(lái)判斷點(diǎn)是否在曲線上時(shí),注意端點(diǎn)處點(diǎn)的反求要滿足垂直的條件,即使點(diǎn)與曲線某個(gè)端點(diǎn)距離小于MaxDist時(shí),也是返回false。即對(duì)于曲線端點(diǎn)處的情況需要自己預(yù)先處理,直接算點(diǎn)P與曲線端點(diǎn)距離與MaxDist比較,先處理端點(diǎn)。

            可以看到這里也處理的端點(diǎn)處的情況,但是最后沒(méi)有與MaxDist有關(guān)系,最后容差是Precision::SquareConfusion()。

             

            狠狠综合久久综合中文88| 一级做a爰片久久毛片毛片| 久久香蕉国产线看观看精品yw| 久久99国产精品久久99小说| 国产偷久久久精品专区| 久久久久久久综合日本亚洲| 久久性生大片免费观看性| 亚洲欧美日韩中文久久| 欧美精品一本久久男人的天堂| 久久久久亚洲AV成人网人人软件| 99久久99久久精品国产片果冻| 久久精品中文字幕无码绿巨人| 国产三级观看久久| 少妇人妻88久久中文字幕| 久久se这里只有精品| 精品少妇人妻av无码久久| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 无码国内精品久久综合88 | 99久久国产热无码精品免费| 久久久久久国产精品免费免费| 久久精品亚洲精品国产色婷| 久久精品女人天堂AV麻| 国产精品一久久香蕉国产线看| 久久久久亚洲AV片无码下载蜜桃| 伊人丁香狠狠色综合久久| 久久久久99精品成人片直播| 伊人久久成人成综合网222| 亚洲国产精品热久久| 久久精品中文字幕久久| 成人妇女免费播放久久久| 日韩精品久久无码中文字幕| 伊人久久大香线蕉精品不卡| 三级片免费观看久久| 国产激情久久久久影院老熟女| 粉嫩小泬无遮挡久久久久久| 色欲久久久天天天综合网| 亚洲午夜久久久久妓女影院| 久久精品国产亚洲av麻豆图片| 国产精品99久久久久久宅男小说| 亚洲人成电影网站久久| 亚洲精品午夜国产va久久|