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

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 Conic to BSpline Curves-Circle

Posted on 2014-10-13 22:03 eryar 閱讀(2700) 評論(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樣條技術(shù)在自由曲線曲面的設(shè)計和表示方面顯示出了其卓越的優(yōu)點,但在表示初等曲線曲面時卻遇到了麻煩。在很多應(yīng)用領(lǐng)域,例如飛機、造船、汽車等工業(yè)中,圓弧、橢圓弧、拋物線、圓柱面、球面、圓錐面、圓環(huán)面等經(jīng)常出現(xiàn),這些形狀都表示精確且往往要求較高的加工精度。傳統(tǒng)的B樣條技術(shù)只能精確地表示拋物線、拋物面,對其他的二次曲線曲面只能近似表示。因此,在一個造型系統(tǒng)內(nèi)無法用一種統(tǒng)一的形式表示曲線曲面,因而使得系統(tǒng)的開發(fā)復(fù)雜化。非均勻有理B樣條(NURBS)技術(shù)正是在這樣的需求背景下逐步發(fā)展成熟起來的。

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

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

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

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

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

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

2.The Effect of Multiple Knots (Multiplicity)

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

  //!  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);

重節(jié)點有如下重要性質(zhì):

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

v 重節(jié)點的插值基函數(shù)性質(zhì)。當(dāng)節(jié)點向量中的內(nèi)節(jié)點uj的重數(shù)為p,則只有定義在wps_clip_image-31799上的基函數(shù)在uj上取值為1,其余基函數(shù)在uj取值為0。當(dāng)節(jié)點向是中的端節(jié)點uj的重數(shù)為p+1,則只有定義在wps_clip_image-31097上的基函數(shù)在uj取值為1,其余基函數(shù)在uj取值為0。

如下圖所示為具有重節(jié)點的B樣條基函數(shù):

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

由上圖可知,重節(jié)點的出現(xiàn)對B樣條曲線有影響,如下所述:

當(dāng)節(jié)點向量內(nèi)部某節(jié)點的重數(shù)與次數(shù)相同時,則B樣條基數(shù)在此節(jié)點處的值為1,即由此得到的B樣條曲線的控制頂點將與B樣條曲線上的點重合。所以利用重節(jié)點的插值性質(zhì)可以在B樣條曲線內(nèi)部構(gòu)造尖點與尖角。

當(dāng)端節(jié)點重數(shù)為p時,p次的B樣條曲線的端點將與相應(yīng)的控制多邊形的端點相重,曲線在端節(jié)點處與控制多邊形相切。

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

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

3.Construction of Circles

如前所述,NURBS技術(shù)是Bezier技術(shù)的推廣。實際上,有理Bezier技術(shù)就可精確地表示圓錐曲線。由有理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度的圓弧可以使用多段小圓弧拼接而成。得用重節(jié)點技術(shù),使多段圓弧拼接起來。重節(jié)點的一種方法是使用2重節(jié)點,在有i段圓弧時,其內(nèi)部節(jié)點值可取為1/i,…,i-1/i,權(quán)因子的取法不變。

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

由圖可知基函數(shù)在1/2處取值為1,則對應(yīng)的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

用四段圓弧組成一個整圓,節(jié)點矢量為U={0,0,0,1/4,1/4,2/4,2/4,3/4,3/4,1,1,1},權(quán)因子取{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

相應(yīng)的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中提供了將圓轉(zhuǎn)換為NURBS曲線的功能,轉(zhuǎn)換后得到的NURBS曲線的參數(shù)范圍不再是[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;
}

結(jié)果如下圖所示:

wps_clip_image-1544

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

5.Conclusion

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

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

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

6. References

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

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

3. 朱心雄等,自由曲線曲面造型技術(shù),2000,科學(xué)出版社

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

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

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>
            激情综合中文娱乐网| 亚洲精品欧美日韩| 亚洲黄色成人网| 亚洲黄色影片| 99精品福利视频| 亚洲永久免费av| 欧美一区永久视频免费观看| 欧美亚洲日本网站| 久久久亚洲高清| 欧美激情精品久久久久久久变态| 欧美激情按摩在线| 日韩性生活视频| 亚洲欧美国产高清va在线播| 校园激情久久| 欧美韩国日本综合| 国产精品色午夜在线观看| 国产亚洲人成网站在线观看 | 国产精品美女久久久久aⅴ国产馆| 欧美视频在线观看免费| 国产精品天天摸av网| 精品69视频一区二区三区| 亚洲九九爱视频| 久久国产精品一区二区| 亚洲第一精品久久忘忧草社区| 亚洲国产一区在线观看| 欧美一区二区三区在线观看视频 | 国产欧美亚洲视频| 99热精品在线| 免费日韩一区二区| 亚洲校园激情| 久久这里有精品视频| 欧美日韩国内| 狠狠色伊人亚洲综合网站色| 亚洲一区免费| 91久久国产综合久久| 久久成人在线| 国产欧美精品在线| 亚洲一区二区三区在线视频| 欧美激情亚洲一区| 久久久精彩视频| 国产麻豆午夜三级精品| 99国产精品| 欧美国产欧美亚洲国产日韩mv天天看完整 | 午夜精彩国产免费不卡不顿大片| 免费看av成人| 一区二区三区在线看| 亚洲欧美日韩视频一区| 亚洲人线精品午夜| 欧美好骚综合网| **网站欧美大片在线观看| 欧美亚洲午夜视频在线观看| av成人天堂| 国产精品yjizz| 在线亚洲观看| 日韩一级片网址| 欧美日韩蜜桃| 亚洲一区久久| 亚洲女同性videos| 国产乱子伦一区二区三区国色天香| 亚洲特色特黄| 亚洲天堂av图片| 国产精品亚洲综合久久| 欧美一级专区| 欧美在线视频免费观看| 国产一区三区三区| 久久一区二区精品| 久久综合色影院| 亚洲精品少妇30p| 亚洲免费观看高清完整版在线观看熊 | 午夜一级在线看亚洲| 国产精品你懂得| 久久xxxx| 久久亚洲免费| 亚洲毛片在线观看.| 亚洲精品影视| 国产精品亚发布| 久久久久网站| 鲁大师成人一区二区三区| 亚洲高清电影| 99re6这里只有精品| 国产精品久久久久9999| 欧美一级视频一区二区| 久久久九九九九| 亚洲人成网站在线播| 一二三区精品| 韩国免费一区| 亚洲韩国精品一区| 国产精品一区二区你懂的| 久久婷婷成人综合色| 欧美韩日亚洲| 欧美制服丝袜| 欧美精品18+| 午夜精品成人在线| 久久香蕉国产线看观看av| 99国产一区| 久久精品亚洲热| 国产精品久久一区二区三区| 久久精品国产清自在天天线| 老牛嫩草一区二区三区日本| 亚洲一区二区3| 久久美女性网| 性8sex亚洲区入口| 欧美激情中文字幕乱码免费| 久久超碰97中文字幕| 欧美激情综合在线| 毛片基地黄久久久久久天堂| 欧美性猛交一区二区三区精品| 蜜臀久久久99精品久久久久久| 国产精品高清在线观看| 亚洲国产成人久久综合| 国产日产欧产精品推荐色| 亚洲欧洲免费视频| 亚洲盗摄视频| 先锋影音国产精品| 亚洲综合电影| 欧美日韩亚洲91| 91久久黄色| 亚洲黄色在线看| 久久久精品五月天| 久久久精品午夜少妇| 国产精品高清在线观看| 亚洲精品影院| 亚洲精品国久久99热| 久久精品国产清自在天天线| 欧美一区二区视频免费观看| 国产精品家教| 亚洲小说春色综合另类电影| 亚洲午夜一区二区三区| 欧美精品在线观看一区二区| 亚洲国产成人精品女人久久久| 亚洲国产精品v| 久久综合网色—综合色88| 久久亚洲精品一区| 激情小说另类小说亚洲欧美 | 亚洲日本va午夜在线电影| 欧美中文在线观看国产| 久久成人精品| 国内精品视频一区| 久久精品99国产精品日本| 久久久久久高潮国产精品视| 国产三级精品三级| 欧美一级理论片| 久久天天狠狠| 在线观看亚洲a| 久久躁狠狠躁夜夜爽| 欧美成年人网站| 亚洲美女av黄| 欧美午夜性色大片在线观看| 亚洲午夜免费视频| 久久国产加勒比精品无码| 国产午夜精品视频| 久久久水蜜桃| 亚洲青色在线| 亚洲女人天堂成人av在线| 国产精品尤物| 久热精品视频在线| 日韩午夜电影| 久久久精品五月天| 亚洲精品国产拍免费91在线| 欧美色一级片| 久久精品国产99精品国产亚洲性色| 美女国产一区| 中国日韩欧美久久久久久久久| 亚洲一级影院| 久久久久久久久久久久久久一区 | 欧美午夜大胆人体| 亚洲欧美三级伦理| 欧美国产高潮xxxx1819| 亚洲天堂av在线免费| 国产视频久久久久| 欧美精品videossex性护士| 亚洲少妇在线| 欧美 日韩 国产一区二区在线视频| 亚洲精品无人区| 国产欧美一区二区精品性色| 猛男gaygay欧美视频| 亚洲图片欧洲图片av| 欧美国产91| 久久免费国产精品| 亚洲欧美国产高清va在线播| 亚洲国产成人在线播放| 国产精品美女www爽爽爽视频| 久久综合一区| 亚洲欧美日韩视频一区| 亚洲国产激情| 久久久久国产精品麻豆ai换脸| 一区二区三区四区国产| 亚洲高清视频一区| 国产一区欧美| 国产日韩欧美精品综合| 欧美日本中文| 欧美成人蜜桃| 乱人伦精品视频在线观看| 欧美一区在线视频| 亚洲自拍啪啪| 亚洲一区二区三区四区五区午夜| 亚洲欧洲在线观看| 亚洲国产精品一区二区第一页| 久久午夜视频| 久久深夜福利免费观看|