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

eryar

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

OpenCASCADE Conic to BSpline Curves-Circle

Posted on 2014-10-13 22:03 eryar 閱讀(2694) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

OpenCASCADE Conic to BSpline Curves-Circle

eryar@163.com

Abstract. The conic sections and circles play a fundamental role in CAD/CAM applications. Undoubtedly one of the greatest advantages of NURBS is their capability of precisely representing conic sections and circles, as well as free-form curves and surfaces. We assume a knowledge of conics and circles, the purpose of this paper is to study them in the framework of their representation as NURBS curves.

Key Words. OpenCASCADE, Conic Curves, Circle, Convert, BSpline Curve

1. Introduction

B樣條技術在自由曲線曲面的設計和表示方面顯示出了其卓越的優點,但在表示初等曲線曲面時卻遇到了麻煩。在很多應用領域,例如飛機、造船、汽車等工業中,圓弧、橢圓弧、拋物線、圓柱面、球面、圓錐面、圓環面等經常出現,這些形狀都表示精確且往往要求較高的加工精度。傳統的B樣條技術只能精確地表示拋物線、拋物面,對其他的二次曲線曲面只能近似表示。因此,在一個造型系統內無法用一種統一的形式表示曲線曲面,因而使得系統的開發復雜化。非均勻有理B樣條(NURBS)技術正是在這樣的需求背景下逐步發展成熟起來的。

NURBS曲線曲面能夠迅速接受的主要原因在于:

v NURBS技術可以精確表示規則曲線與曲面(如圓錐曲線、二次曲面、旋轉曲面等)。

v 可以把規則曲線曲面和自由曲線曲面統一起來表示。因而便于用統一的算法進行處理和使用統一的數據庫進行存儲,程序量可明顯減少;

v 由于增加了額外的自由度(權因子),若應用得當,有利于曲線曲面形狀的控制和修改。

v NURBS技術是非有理Bezier曲線的和B樣條形式的真正推廣;

本文主要介紹圓的NURBS表示方法,即如何將圓轉換為NURBS曲線。

2.The Effect of Multiple Knots (Multiplicity)

重節點的定義為在節點序列中順序r個節點相同或xi重復出現r次,稱為該節點xi具有重復度r(Multiplicity)。在OpenCASCADE中B樣條曲線類的構造就是用的節點Knots及其對應的重復度Multiplicities來實現的,如下所示:

  //!  Creates a  non-rational B_spline curve   on  the <br>
//!         basis <Knots, Multiplicities> of degree <Degree>. <br>
  Standard_EXPORT   Geom_BSplineCurve(const TColgp_Array1OfPnt& Poles,const TColStd_Array1OfReal& Knots,const TColStd_Array1OfInteger& Multiplicities,const Standard_Integer Degree,const Standard_Boolean Periodic = Standard_False);

重節點有如下重要性質:

v 重節點連續階性質。在每個節點區間(uj, uj+1)內部,Bi,p(u)為多項式函數,因此,所有導數存在。在一個節點uj處Bi,p(u)是p-mj次連續可微的,此處mj是該點的重數。所以增加次數,則增加連續性,而增加節點的重數,則降低連續性。通常為保證連續性,節點的最高重數為p;

v 重節點的插值基函數性質。當節點向量中的內節點uj的重數為p,則只有定義在wps_clip_image-31799上的基函數在uj上取值為1,其余基函數在uj取值為0。當節點向是中的端節點uj的重數為p+1,則只有定義在wps_clip_image-31097上的基函數在uj取值為1,其余基函數在uj取值為0。

如下圖所示為具有重節點的B樣條基函數:

wps_clip_image-25863

Figure 2.1 U={0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5} p = 2 B-spline Basis Function

wps_clip_image-28559

Figure 2.2 U={0, 0, 0, 0,1, 2, 3, 4, 4,4, 5, 5, 5,5} p = 3 B-spline Basis Function

由上圖可知,重節點的出現對B樣條曲線有影響,如下所述:

當節點向量內部某節點的重數與次數相同時,則B樣條基數在此節點處的值為1,即由此得到的B樣條曲線的控制頂點將與B樣條曲線上的點重合。所以利用重節點的插值性質可以在B樣條曲線內部構造尖點與尖角。

當端節點重數為p時,p次的B樣條曲線的端點將與相應的控制多邊形的端點相重,曲線在端節點處與控制多邊形相切。

當端節點重數為p+1時,p次B樣條曲線就具有與p次Bezier曲線相同的端點幾何性質。這時如果B樣條曲線的定義域僅有一個非零節點區間,則所定義的B樣條曲線就是Bezier曲線。由此可知,B樣條方法是Bezier方法的強有力的推廣。

理解重節點的作用非常重要,利用重節點技術可用來控制B樣條基以達到控制整條曲線在節點處的連續性的目的。

3.Construction of Circles

如前所述,NURBS技術是Bezier技術的推廣。實際上,有理Bezier技術就可精確地表示圓錐曲線。由有理Bezier曲線的公式得二次有理Bezier曲線弧的表示形式為:

wps_clip_image-17100

稱k為形狀不變因子,公式如下所示:

wps_clip_image-8521

一段小于180度的圓弧也可以用二次有理Bezier曲線來表示。由于對稱性,P0P1P2必須是一個等腰三角形,滿足P0P1=P1P2,計算得ω1=cos(θ)。

wps_clip_image-11050

Figure 3.1 圓心角度小于180度圓弧的二次有理Bezier表示

大于180度的圓弧可以使用多段小圓弧拼接而成。得用重節點技術,使多段圓弧拼接起來。重節點的一種方法是使用2重節點,在有i段圓弧時,其內部節點值可取為1/i,…,i-1/i,權因子的取法不變。

以180度的圓弧為例,可以使用兩段90度圓弧拼接而成。節點矢量可取為U={0,0,0,1/2,1/2,1,1,1}。權因子可以取為ω1=ω3=cos45,ω0=ω2=ω4=1。則對應的B樣條基函數及B樣條曲線如下圖所示:

由圖可知基函數在1/2處取值為1,則對應的B樣條曲線上的值與控制頂點重合。

wps_clip_image-21424

Figure 3.2 U={0,0,0,1/2,1/2,1,1,1} B Spline Basis

wps_clip_image-9492

Figure 3.3 Semi-Circle B Spline Curve

用四段圓弧組成一個整圓,節點矢量為U={0,0,0,1/4,1/4,2/4,2/4,3/4,3/4,1,1,1},權因子取{1,sqrt(2)/2,1,1,sqrt(2)/2,1,1,sqrt(2)/2,1},使用Tcl腳本在Draw Test Harness中顯示如下圖所示:

wps_clip_image-14261

Figure 3.4 A Circle represented by 4 arcs

Tcl代碼如下所示:

 

#
#    Copyright (c) 2014 eryar All Rights Reserved.
#
#        File    : colorscale.tcl
#        Author  : eryar@163.com
#        Date    : 2014-10-13 18:10
#        Version : 1.0v
#
#    Description : Demonstrate the rational 2d Bezier curve 
#                  and BSpline curve.
#


pload MODELING

# use 4 arc to composite a circle
2dbsplinecurve c2 2 \
 
5 0 3 1/4 2 2/4 2 3/4 2 1 3 \
 
10 0 1 \
 
10 10 sqrt(2.0)/2.0 \
 
0 10 1 \
 
-10 10 sqrt(2.0)/2.0 \
 
-10 0 1 \
 
-10 -10 sqrt(2.0)/2.0 \
 
0 -10 1 \
 
10 -10 sqrt(2.0)/2.0 \
 
10 0 1

# fit the 2d view
v2d
2dfit

也可用位于三角形上的控制點來表示圓,如下圖所示:

wps_clip_image-29784

Figure 3.5 A Circle represented by 3 arcs

相應的Tcl代碼如下所示:

 

pload MODELING
# a 2d periodic circle (parameter from 0 to 2*pi !!)
dset h sqrt(3)/2
2dpbsplinecurve c3 
2 \
4 0 2 pi/1.5 2 pi/0.75 2 2*pi 2 \
0 -h/3 1 \
0.5 -h/3 0.5 \
0.25 h/6 1 \
0 2*h/3 0.5 \
-0.25 h/6 1 \
-0.5 -h/3 0.5 \
0 -h/3 1
# fit the 2d view
v2d
2dfit

4.Code Analysis

OpenCASCADE中提供了將圓轉換為NURBS曲線的功能,轉換后得到的NURBS曲線的參數范圍不再是[0,1]。下面給出具體的實例:

 

void TestCircleConvert(void)
{
    gp_Circ2d aCircle;
    aCircle.SetRadius(
1.0);
    Convert_ParameterisationType aType 
= Convert_TgtThetaOver2;
    Convert_CircleToBSplineCurve aConvertor(aCircle, aType);

    Handle_Geom_Circle aGeomCircle 
= GC_MakeCircle(gp::XOY(), 1.0);
  Handle_Geom_BSplineCurve aBSplineCurve 
= 
    GeomConvert::CurveToBSplineCurve(aGeomCircle, aType);

    std::cout 
<< "Convert Circle to BSpline Curve: " << std::endl;
    DumpConvertorInfo(aConvertor);
}

int main(int argc, char* argv[])
{
    TestCircleConvert();

    
return 0;
}

結果如下圖所示:

wps_clip_image-1544

由上述結果可知,在默認參數化的情況下是按三段圓弧來拼接成一個整圓的。也可指定不同的參數化類型,將會得到不同的NURBS曲線。次數也可能不是2次,會用高次的NURBS曲線來表示圓。

5.Conclusion

利用重節點技術及二次有理B樣條的性質,可以用NURBS來精確表示圓。選擇不同的控制頂點,得到的圓的參數化效果也有所不同。

將常用的圓錐曲線用NURBS曲線來表示,即說明可以用NURBS曲線來統一表示圓錐曲線及自由曲線。這說明在理論上,一個造型內核的曲線可以只用一個類來表示,這個類對應OpenCASCADE中的Geom_BSplineCurve。

使用Tcl可以在Draw Test Harness中方便地產生NURBS曲線,從而可以快速驗證一些算法的正確性。

6. References

1. 趙罡,穆國旺,王拉柱譯Les Piegl,Wayne Tiller The NURBS Book(Second Edition) 2010 清華大學出版社

2. 莫容,常智勇 計算機輔助幾何造型技術 2009 科學出版社

3. 朱心雄等,自由曲線曲面造型技術,2000,科學出版社

4. Kelly Dempski, Focus on Curves and Surface, 2003, Premier Press

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

PDF version and Tcl script: OpenCASCADE Conic to BSpline Curves-Circle

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩一级黄| 欧美风情在线观看| 影音先锋亚洲一区| 国产亚洲精品成人av久久ww| 国产精品视频观看| 国产日韩欧美夫妻视频在线观看| 国产伦精品一区| 国产视频精品xxxx| 狠狠色丁香婷婷综合| 亚洲高清色综合| 日韩视频在线观看国产| 亚洲在线国产日韩欧美| 久久久久久有精品国产| 亚洲高清久久久| 亚洲另类在线一区| 亚洲视频在线二区| 久久久久看片| 欧美肉体xxxx裸体137大胆| 国产精品人人做人人爽人人添| 国产手机视频精品| 91久久夜色精品国产九色| 亚洲亚洲精品在线观看 | 亚洲人成毛片在线播放| 一区二区三区久久网| 久久爱另类一区二区小说| 欧美华人在线视频| 国产亚洲va综合人人澡精品| 亚洲精品国产无天堂网2021| 亚洲免费视频成人| 欧美成熟视频| 亚洲欧洲av一区二区三区久久| 欧美va亚洲va国产综合| 国产精品久久久久aaaa樱花| 在线免费观看日本一区| 亚洲在线视频观看| 亚洲国产福利在线| 欧美一区二区三区久久精品茉莉花| 欧美www视频| 久久婷婷麻豆| 一区二区三区**美女毛片| 美女视频黄免费的久久| 国产一区二区成人久久免费影院| 在线一区二区三区四区五区| 欧美福利网址| 久久亚洲二区| 狠狠入ady亚洲精品| 午夜日韩av| 一本色道久久精品| 欧美日韩大片一区二区三区| 亚洲第一在线综合在线| 久久男人av资源网站| 午夜激情久久久| 国产麻豆午夜三级精品| 亚洲在线电影| 一区二区三区久久精品| 国产精品久久久久久超碰 | aa成人免费视频| 亚洲乱码国产乱码精品精98午夜| 久久香蕉国产线看观看av| 国产一区二区视频在线观看| 欧美一区二区在线| 香蕉尹人综合在线观看| 国产麻豆精品在线观看| 欧美一区二区黄色| 亚洲欧美伊人| 国产视频欧美视频| 久久一区二区精品| 久久久之久亚州精品露出| 亚洲成人在线免费| 亚洲国产成人精品女人久久久| 久久人人看视频| 亚洲盗摄视频| 亚洲激情成人网| 欧美日韩一区不卡| 午夜亚洲视频| 欧美中文字幕在线观看| 亚洲国产精品成人| 99精品国产福利在线观看免费| 欧美视频中文字幕| 久久gogo国模裸体人体| 久久久久国产一区二区三区四区| 91久久精品久久国产性色也91| 亚洲区免费影片| 国产精品乱码妇女bbbb| 久久久久久综合| 欧美精品国产精品日韩精品| 亚洲伊人观看| 久久久精品日韩欧美| 日韩视频在线一区二区| 亚洲一级一区| 在线欧美日韩国产| 一本色道久久综合一区| 好吊色欧美一区二区三区四区| 欧美黄色aaaa| 国产精品一区二区在线观看| 欧美成人免费小视频| 国产精品国码视频| 欧美黑人在线播放| 久久久不卡网国产精品一区| 亚洲精品免费电影| 亚洲欧美国产一区二区三区| 亚洲国产婷婷香蕉久久久久久| 亚洲视频一起| 亚洲精品久久久久久久久久久久| 亚洲一区二区三区免费观看| 亚洲国产一区二区三区a毛片| 亚洲性视频h| 亚洲精品在线观看免费| 欧美亚洲自偷自偷| 亚洲婷婷综合久久一本伊一区| 久久久久久国产精品mv| 欧美一级欧美一级在线播放| 欧美日本韩国一区| 亚洲第一色在线| 国产香蕉97碰碰久久人人| 亚洲精品国产系列| 亚洲国产福利在线| 欧美在线一级va免费观看| 亚洲女同在线| 欧美午夜精品久久久久久孕妇| 亚洲电影观看| 亚洲黄色免费| 麻豆成人小视频| 狼狼综合久久久久综合网| 国产视频久久久久| 亚洲欧美色一区| 性欧美大战久久久久久久免费观看| 欧美日韩国产综合新一区| 亚洲国产精品第一区二区| 亚洲第一天堂av| 久久亚裔精品欧美| 欧美成人视屏| 亚洲福利专区| 欧美www视频| 91久久午夜| 日韩视频在线免费| 欧美日韩国产精品| 亚洲最新合集| 亚洲欧美日韩另类| 国产视频欧美视频| 久久精品网址| 欧美激情欧美狂野欧美精品| 亚洲精品乱码久久久久久黑人| 嫩草国产精品入口| 亚洲精品一区二区三区四区高清| 亚洲伦伦在线| 欧美另类69精品久久久久9999| 亚洲精品一区二区三区福利| 亚洲午夜av电影| 国产精品亚洲精品| 久久精品在线播放| 亚洲第一页中文字幕| 亚洲在线国产日韩欧美| 久久精品视频免费观看| 国语自产精品视频在线看抢先版结局| 亚洲欧美日韩国产另类专区| 老色鬼精品视频在线观看播放| 亚洲黄网站在线观看| 欧美日韩中文在线观看| 先锋影音一区二区三区| 欧美国产免费| 亚洲一区二区毛片| 国内外成人在线| 欧美aⅴ99久久黑人专区| 99在线热播精品免费| 久久精品男女| 亚洲精品综合精品自拍| 国产精品成人一区二区三区吃奶| 欧美一区二区三区在| **网站欧美大片在线观看| 欧美日韩成人激情| 欧美影院午夜播放| 亚洲欧洲日夜超级视频| 久久高清免费观看| 日韩亚洲欧美成人| 国产日韩欧美一区二区三区四区| 裸体一区二区| 性欧美超级视频| 亚洲黄网站黄| 久久综合九色九九| 亚洲无线视频| 亚洲精品国产精品久久清纯直播 | 亚洲宅男天堂在线观看无病毒| 噜噜噜久久亚洲精品国产品小说| 亚洲精品小视频| 伊人久久噜噜噜躁狠狠躁| 国产精品久久99| 欧美精品粉嫩高潮一区二区| 欧美中文日韩| 亚洲欧美视频一区二区三区| 亚洲日本中文字幕区| 久久亚洲春色中文字幕| 性视频1819p久久| 亚洲图片欧美一区| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲激情影视| 国产日韩欧美综合精品| 国产精品二区在线观看| 欧美激情一级片一区二区| 久热精品视频在线观看|