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

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 Curve Length Calculation

Posted on 2014-08-25 21:31 eryar 閱讀(3945) 評論(2)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCASCADE Curve Length Calculation

eryar@163.com

Abstract. The natural parametric equations of a curve are parametric equations that represent the curve in terms of a coordinate-independent parameter, generally arc length s, instead of an arbitray variable like t or u. According to the natural equations, the curve length is the integration of the curve parametric equation’s derivation. So the core algorithm for curve length calculation is the numerical integration method. OpenCASCADE use Gauss-Legendre to calculate the integration for single variable and multiple variables. Because of curve in OpenCASCADE is single variable function, so can use the Gauss-Legendre to calculate the arc length for the curve.

Key Words. OpenCASCADE, The Gauss-Legendre Integration, Parametric Curve, 

          The Natural Parametric Equations,  Arc Length,

 

1. Introduction

對于同一條曲線,選擇的參數不同其表達形式也不盡相同。而曲線自身的弧長是曲線本身的不變量,它與坐標系的選擇無關,因此取曲線的弧長作為參數來研究曲線具有非常重要的意義。以曲線弧長作為曲線方程的參數,這樣的方程稱為曲線的自然參數方程。由曲線的自然參數方程可知曲線的弧長是曲線參數方程導數的積分。所以計算曲線弧長的核心算法成了計算函數的積分了。

OpenCASCADE中數學計算庫TKMath中有一種高精度計算積分的算法Gauss-Legendre積分法,可對單變量和多變量的函數進行積分計算。由于OpenCASCADE中曲線是單變量的參數方程,所以可以用Gauss-Legendre來計算積分,進而得到曲線的弧長。如下圖所示:

wps_clip_image-27897

Figure 1.1 Length of Curve

本文對曲線的自然參數方程的概念進行說明,并簡要介紹Gauss-Legendre算法及其在OpenCASCADE中的應用,即求曲線的弧長。

2. The Natural Parametric Equations

對于同一曲線若選擇的參數不同,則其表達式亦不同,故用坐標系討論曲線時,具有人為的性質,而曲線自身的弧長則曲線的不變量,它與坐標系的選取無關。因此,我們取曲線自身的弧長作為參數來研究曲線的內在性質。無論是理論探索還是實用研究,弧長參數化都有很重要的意義。

給定空間曲線r,在其上任取一點P0(x0, y0, z0)作為計算弧長的起點。應用弧長積分公式,即可計算該曲線上任意點P(x,y,z)到P0之間的弧長。由此,曲線上點的位置與該點處的弧長是一一對應的,如下圖所示:

wps_clip_image-1600

Figure 2.1 Arc length parameterization

即曲線上點的坐標是以弧長為參數的函數:

wps_clip_image-21590

由其矢量方程可知,曲線是弧長為參數的矢函數,我們將其稱為弧長參數化(Arc length parameterization)。弧長稱為自然參數(Natural Parameter),曲線方程稱為自然參數方程(Natural Parametric Equations)。現討論曲線的自然參數方程與參數方程的聯系:已知曲線的矢量方程為:

wps_clip_image-2116

則弧長的微分和積分公式分別為:

wps_clip_image-3606s(u)即為與參數u0和u1對應的兩點P0和P之間的弧長。弧長參數化是一類重要的概念,但是如果用上式來計算弧長比較繁瑣,可以通過累加弦長方法來近似計算。

給定曲線:

wps_clip_image-25405

wps_clip_image-3494是參數軸上的一個等距分劃;又令wps_clip_image-14274為曲線上與參數ui對應的點列,則可用下式計算弦長:

wps_clip_image-2194

wps_clip_image-1829

Figure 2.2 Parametric Curve

其中將參數軸等分越多,則求得的曲線的弧長越準確。


3. The Gauss-Legendre Integration

上述累加弦長的計算方法應該是Newton-Cotes積分計算法,Newton-Cotes就是將積分區間等分,并取分點為求積節點。容易看出當積分區間較大時,直接使用Newton-Cotes公式所得積分近似值的精度是很難保證的。

關于積分的數值算法有很多,其中Gauss-Legendre求積公式具有計算工作量小,所得近似值精確度高等優點,是一種高精度的求積公式。形式如下所示的求積公式:

wps_clip_image-23833

代數精度達到了2n+1,則稱它為高斯型求積公式,并稱相應的求積節點x0, x1, ... xn為高斯點(Gauss Point)。Ak為求積系數。

OpenCASCADE的核心模塊的數學庫TKMath中有Gauss-Legendre求積算法,可用來對單變量和多變量的函數進行積分計算,對應的類分別為:math_GaussSingleIntegration和math_GaussMultipleIntegration。計算所需的高斯點及系數通過查表的方式取得,數據以數組的形式在文件math.cxx中列舉出,如下圖所示:

wps_clip_image-14378

Figure 3.1 Gauss Point for Gauss-Legendre Integration

Gauss-Legendre積分用處之一就是根據曲線的自然參數方程計算曲線的弧長,代碼實現如下所示:

 

//=====================================================================
//function : Length
//purpose  : 3d with parameters
//=====================================================================

Standard_Real CPnts_AbscissaPoint::Length(
const Adaptor3d_Curve& C,
                      
const Standard_Real U1,
                      
const Standard_Real U2) 
{
  CPnts_MyGaussFunction FG;
//POP pout WNT
  CPnts_RealFunction rf = f3d;
  FG.Init(rf,(Standard_Address)
&C);
//  FG.Init(f3d,(Standard_Address)&C);
  math_GaussSingleIntegration TheLength(FG, U1, U2, order(C));
  
if (!TheLength.IsDone()) {
    Standard_ConstructionError::Raise();
  }
  
return Abs(TheLength.Value());
}

根據上述求曲線弧長的代碼可知,只需要給定曲線及其求積區間,即可計算出此區間內曲線的弧長。因為采用直接求積計算,所得曲線的弧長值的精度還是很高的。

高斯型求積公式是一種高精度的求積公式。在求積節點數相同,即計算工作量相近的情況下,利用高斯型求積公式往往可以獲得準確程序較高的積分近似值。但是,它必須在不等距的節點上計算被積函數的值,而且當節點數改變時,所用數據都要重新查表計算。


4. Conclusion

曲線自身的弧長是曲線本身的不變量,它與坐標系的選擇無關,因此取曲線的弧長作為參數來研究曲線具有非常重要的意義。以曲線弧長作為曲線方程的參數,這樣的方程稱為曲線的自然參數方程。由曲線的自然參數方程可知曲線的弧長是曲線參數方程導數的積分。所以計算曲線弧長的核心算法成了計算函數的積分了。

在《計算方法》、《數值分析》等教材中都有關于求積分的算法,在OpenCASCADE中實現了Gauss-Legendre求積算法。Gauss-Legendre求積算法是一種高精度的求積方法。所以根據曲線的自然參數方程可知曲線弧長就是對曲線參數方程導數的求積分。所以使用高斯求積法可以得到曲線弧長較精確值。

對數值積分的具體算法感興趣的朋友,可以參考《計算方法》、《數值分析》、《數值計算》等相關書籍。


5. References

1. 朱心雄. 自由曲線曲面造型技術. 科學出版社. 2008

2. 王仁宏, 李崇君, 朱春鋼. 計算幾何教程. 科學出版社. 2008

3. 易大義, 沈云寶, 李有法. 計算方法. 浙江大學出版社. 2002

4. 易大義, 陳道琦. 數值分析引論. 浙江大學出版社. 1998

5. http://mathworld.wolfram.com/NaturalParametricEquations.html

6. http://mathworld.wolfram.com/Legendre-GaussQuadrature.html

7. http://en.wikipedia.org/wiki/Gaussian_quadrature

8. http://pomax.github.io/bezierinfo/legendre-gauss.html

 

Feedback

# re: OpenCASCADE Curve Length Calculation  回復  更多評論   

2014-08-26 09:07 by OpenCASCADE-3D
錯誤真不少啊

# re: OpenCASCADE Curve Length Calculation  回復  更多評論   

2014-08-26 09:30 by eryar
@OpenCASCADE-3D
什么錯誤?
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            在线亚洲一区二区| 欧美精品福利视频| 蜜桃伊人久久| 久久婷婷影院| 免费成人高清| 91久久精品美女| 美女网站久久| 最新热久久免费视频| 日韩香蕉视频| 亚洲欧美文学| 女人天堂亚洲aⅴ在线观看| 欧美激情一区二区三区蜜桃视频| 欧美精品在线观看91| 国产精品大全| 18成人免费观看视频| 一本色道久久加勒比88综合| 亚洲欧美日韩精品久久奇米色影视 | 亚洲国产精品久久久久久女王| 亚洲国产岛国毛片在线| 一道本一区二区| 久久av二区| 亚洲欧洲中文日韩久久av乱码| 亚洲一区二区三区四区视频| 久久精品电影| 欧美午夜视频网站| 1204国产成人精品视频| 亚洲综合精品四区| 欧美激情精品久久久久久| 亚洲午夜精品网| 欧美a级片网| 夜夜精品视频| 欧美一区二区黄色| 欧美日韩亚洲另类| 亚洲大胆av| 久久国产一区二区| 99精品国产高清一区二区| 久久久不卡网国产精品一区| 欧美视频在线观看| 亚洲精品美女在线观看| 久久久久久久成人| 亚洲一区二区三区精品在线观看 | 亚洲精品乱码久久久久久按摩观| 亚洲一区二区三区精品动漫| 欧美激情亚洲国产| 亚洲高清视频一区| 久久久在线视频| 亚洲免费视频网站| 欧美午夜精品久久久久久孕妇| 91久久精品国产91性色| 美女视频黄 久久| 久久国产高清| 国产午夜精品一区二区三区视频| 亚洲一区视频在线| 一本色道88久久加勒比精品| 欧美精品一区二区三区在线看午夜 | 欧美精品免费在线| 亚洲韩国精品一区| 欧美xart系列高清| 久久综合色综合88| 国语自产精品视频在线看| 久久国产一区| 欧美在线播放视频| 一区二区亚洲精品| 久久久久久久综合色一本| 欧美在线看片| 国产一区二区三区最好精华液| 亚洲一区二区三区涩| 亚洲国产高清一区| 欧美日韩国产综合在线| 一本久道久久久| 一区二区三区高清视频在线观看| 欧美日本亚洲视频| 99re6热在线精品视频播放速度| 美女图片一区二区| 欧美人体xx| 午夜精品一区二区三区在线播放 | 欧美日韩另类在线| 亚洲欧美日韩区| 欧美一区亚洲一区| 亚洲国产二区| 亚洲美女视频| 久久综合精品国产一区二区三区| 欧美亚洲免费高清在线观看| 亚洲中字黄色| 激情视频一区二区| 亚洲国产小视频| 国产精品国产自产拍高清av王其| 久久国产日本精品| 欧美成人按摩| 欧美呦呦网站| 欧美国产91| 久久精品一二三区| 欧美华人在线视频| 久久精品成人欧美大片古装| 免费观看在线综合色| 亚洲一区二区三区中文字幕在线| 欧美一区二区三区喷汁尤物| 日韩系列欧美系列| 欧美一区二区三区免费视频| 亚洲最新合集| 久久夜色撩人精品| 午夜精品影院在线观看| 男人的天堂亚洲| 欧美在线观看视频一区二区三区| 免费观看在线综合色| 欧美在线资源| 欧美三级电影一区| 欧美激情日韩| 国产日韩在线一区| 亚洲最新在线视频| 最新中文字幕一区二区三区| 亚洲欧美综合v| 亚洲私拍自拍| 欧美福利视频一区| 免费亚洲电影| 国内在线观看一区二区三区| 一本久久综合亚洲鲁鲁五月天| 狠狠色丁香婷婷综合久久片| 亚洲午夜激情| 亚洲少妇自拍| 欧美日韩福利| 亚洲激情在线| 亚洲欧洲日产国产综合网| 欧美中文字幕久久| 欧美一区二区三区久久精品| 欧美日韩免费一区二区三区视频| 欧美成人精品福利| 激情小说亚洲一区| 午夜精品久久久久久久99黑人| 在线一区二区三区四区| 欧美大片网址| 亚洲国产高清一区| 亚洲美女av电影| 欧美高清视频一二三区| 欧美激情一二区| 亚洲三级网站| 欧美精品在线观看一区二区| 亚洲国内精品在线| 中国成人亚色综合网站| 欧美日韩亚洲91| 一区二区三区你懂的| 亚洲永久视频| 国产日韩精品一区二区| 欧美中文在线字幕| 欧美激情视频在线播放 | 亚洲婷婷在线| 亚洲一级二级在线| 欧美日韩综合久久| 一区二区三区www| 午夜精品免费在线| 国产亚洲欧美另类中文| 久久久精品2019中文字幕神马| 欧美 日韩 国产 一区| 亚洲精品一区二区三| 欧美精品在线观看91| 亚洲午夜在线视频| 久久久xxx| 亚洲黄色在线| 欧美18av| 亚洲一二三四久久| 久久人人爽人人爽| 在线不卡亚洲| 欧美日本亚洲| 欧美在线日韩在线| 亚洲国产99| 性欧美xxxx视频在线观看| 国产综合香蕉五月婷在线| 麻豆精品网站| 亚洲天堂激情| 欧美xxxx在线观看| 午夜日韩在线观看| 亚洲全黄一级网站| 国产欧美短视频| 欧美高清在线观看| 亚洲视频一区在线| 免费在线国产精品| 亚洲欧美美女| 91久久精品美女| 国产精品一二三四| 欧美.www| 久久久精品动漫| 亚洲一区中文字幕在线观看| 免费人成精品欧美精品| 亚洲免费伊人电影在线观看av| 精品999日本| 国产精品久久久久影院色老大 | 亚洲香蕉成视频在线观看 | 久久国产黑丝| 在线视频免费在线观看一区二区| 久久综合久久综合久久| 亚洲天堂成人在线观看| 亚洲丁香婷深爱综合| 国产乱理伦片在线观看夜一区| 免费观看亚洲视频大全| 久久成人国产精品| 亚洲香蕉网站| 亚洲天堂免费观看| 日韩亚洲欧美一区| 亚洲日韩成人| 亚洲国产乱码最新视频|