国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種簡單的二次B樣條曲線擬合算法

2010-07-25 08:44高劍光
微型電腦應(yīng)用 2010年10期
關(guān)鍵詞:曲線擬合切點(diǎn)樣條

高劍光

0 引言

在飛機(jī)外形設(shè)計(jì)與機(jī)械零件加工中,經(jīng)常遇到許多有2次曲線弧和2次曲面片表示的形狀,如圓弧、橢圓弧、圓柱面、圓錐面、橢球面等,這些曲線曲面在設(shè)計(jì)中需要有明確的表現(xiàn)形式,在制造上又要求有較高的精確度。對于這種曲面的加工,一般是用激光坐標(biāo)測量儀測出每一斷面的一組離散、有序點(diǎn)列,然后對離散點(diǎn)進(jìn)行曲線擬合。擬合方法是直接用3次樣條或參數(shù)樣條或雙圓弧擬合等方法。雙曲圓弧擬合算法是常用的一種算法。

1 雙圓弧擬合算法

按平面曲線給定一列有序型值點(diǎn)(節(jié)點(diǎn)),每相鄰節(jié)點(diǎn)之間有兩條相切圓弧構(gòu)成,兩圓弧通過一個節(jié)點(diǎn),且節(jié)點(diǎn)處的切線斜率與曲線在節(jié)點(diǎn)處的斜率相等,叫做曲線的雙圓弧擬合如圖1所示。雙圓弧擬合有6個參數(shù)需要確定:兩節(jié)點(diǎn)Pi,Pi+1;兩節(jié)點(diǎn)Pi,Pi+1處的切線斜率;雙圓弧的切點(diǎn)T;雙圓弧切點(diǎn)處的公切線斜率。前4個參數(shù)可由曲線的參數(shù)方程按給定參數(shù)值求得。雙圓弧擬合方法主要根據(jù)后兩個參數(shù)的求法不同而不同,但不難證明兩圓弧相切點(diǎn)位置結(jié)論:相切點(diǎn)位置有無窮多個;相切點(diǎn)的軌跡是一個圓弧——軌跡弧。

為確保雙圓弧的正確擬合,要求:

(1)兩擬合圓弧應(yīng)滿足保凸要求,即兩相鄰節(jié)點(diǎn)Pi,Pi+1處切線PiM,Pi+1M需有實(shí)交點(diǎn)(沿某切線方向前進(jìn)時,與另一切線的反向延長線的交點(diǎn),反之為虛交點(diǎn));

(2)擬合的圓弧段需要采用劣弧,即兩節(jié)點(diǎn)連線PiPi+1與兩切線PiM,Pi+1M構(gòu)成的三角形中2/πβ<+a(如圖1所示)設(shè)節(jié)點(diǎn)A和B為在第i+1個區(qū)間[Pi,Pi+1] 上的相鄰節(jié)點(diǎn),有向直線gA和gB為擬合曲線jΓ在A和B上的有向切線。設(shè)C是直線gA和gB的交點(diǎn),a和β分別是gA和gB與橫軸的夾角,逆時針方向?yàn)檎?;?dāng)aβ<0(保凸)時,雙圓弧同向,為 C形雙圓弧。在局部坐標(biāo)系下,雙圓弧圓心和半徑可以統(tǒng)一地給出。左圓半徑

圖1 雙圓弧曲線

圓心坐標(biāo)

右圓半徑

圓心坐標(biāo)

共切點(diǎn)的坐標(biāo)

其中,αβω?=;θ是左圓弧的圓心角,ω-θ是右圓弧的圓心角;逆時針方向?yàn)檎徽龍A對應(yīng)正圓心角,負(fù)圓對應(yīng)負(fù)圓心角,πθπ<<?,L是AB的長度。對于該區(qū)間,當(dāng)切線gA和gB確定之后,選取不同的θ(即選取不同的公切點(diǎn))決定了雙圓弧的參數(shù)。這里選取θ=-a,亦即選取三角形的內(nèi)心作為公切點(diǎn)。

關(guān)于雙圓弧擬合,目前國內(nèi)外常用的方法有兩種。內(nèi)向法和交點(diǎn)法。內(nèi)向法計(jì)算簡便,但可能法向誤差不能保證符合要求。交點(diǎn)法的法向誤差較小,但交點(diǎn)計(jì)算復(fù)雜,需解四次非線性方程,計(jì)算量之大可想而知。實(shí)際自由曲線擬合繪制過程中,也常采用3次B樣條基函數(shù)進(jìn)行擬合運(yùn)算,為了使得曲線比用折線來代替要繪制的曲線看上去更光滑,應(yīng)盡可能多地進(jìn)行曲線上位置點(diǎn)的擬合計(jì)算,這樣,繪制一條B樣條曲線就需要反復(fù)多次計(jì)算各坐標(biāo)分量的3次多項(xiàng)式,其計(jì)算量也相當(dāng)大,繪制擬合速度極慢,難以滿足實(shí)際需要。

2 二次B樣條曲線擬合算法

本文提出了一種簡單的2次B樣條曲線擬合算法,即用兩條2次曲線近似一條3次曲線,以期達(dá)到計(jì)算量小,光滑度也達(dá)到要求,提高 B樣條曲線的繪制速度,適應(yīng)各應(yīng)用領(lǐng)域的快速繪制要求。

2.1 算法及其實(shí)現(xiàn)過程

通常情況我們是將4點(diǎn)擬合成一條三次B樣條曲線,由于3次曲線有拐點(diǎn),而2次曲線沒有。所以對于4點(diǎn)我們不可能擬合成一條2次曲線,而是用2條2次曲線拼接,中間出現(xiàn)一拐點(diǎn),來近似1條3次曲線。

算法實(shí)現(xiàn)過程如下:

2次B樣條曲線段參數(shù)方程表示為

顯然曲線段從A點(diǎn)出發(fā)到C點(diǎn)中止,在A點(diǎn)曲線與直線B-A相切,在C點(diǎn)與C-B相切。(如圖2所示)

圖2 A、B、C三點(diǎn)控制的曲線段

曲線段由A,B,C3點(diǎn)控制,將它簡記為

給定平面上4個點(diǎn)P1,P2,P3,P4擬合成2條相連的從P2到P3的2次樣條曲線,方法如下:

在此縮放是避免兩條插值曲線段打圈。(如圖3所示)

圖3 兩條插值曲線段打圈情形

乘系數(shù)0.293不是一定要這個值,其實(shí)可以用其他參數(shù),不超過0.5都合適。取這個值是保證正方形角上4點(diǎn)恰好可以擬合成一個圓。

把T1作為目標(biāo)曲線在P2點(diǎn)處的一階導(dǎo)矢,T2作為目標(biāo)曲線在點(diǎn)P3處的一階導(dǎo)矢:(如圖4所示)

假設(shè)組成目標(biāo)曲線的兩條B樣條曲線段為

通過求導(dǎo)易知在連接點(diǎn)導(dǎo)數(shù)都是D2-D1,故兩曲線段C在D1和D2的中點(diǎn)(D1+D2)/2處相連且一階導(dǎo)數(shù)連續(xù)。

2.2 算法運(yùn)用實(shí)例

給定平面上的一列點(diǎn)P1-P2,……,Pn擬合出一條依次經(jīng)過這些點(diǎn)的二次B樣條曲線。將點(diǎn)列前后各延拓一點(diǎn),成為P0,P1,P2……,Pn,Pn+1,延拓辦法為:將P3做線段P1P2中垂線的鏡像,鏡像點(diǎn)作為P0,將點(diǎn)Pn-2做線段Pn-1Pn中垂線的鏡像,鏡像點(diǎn)作為Pn+1。依次將點(diǎn)列P0,P1,P2……,Pn,Pn+1相鄰4點(diǎn)按上面的算法擬合成兩條B樣條曲線段,所有這些曲線段首尾相連,且在結(jié)點(diǎn)處的一階導(dǎo)數(shù)連續(xù),它們構(gòu)成所需要的目標(biāo)曲線。(如圖4所示)做出了給定平面上4個點(diǎn)P1,P2,P3,P4,擬合出依次經(jīng)過這些點(diǎn)的二次B樣條曲線;

圖4 過4點(diǎn)擬合的二次B樣條曲線

(如圖5所示)做出了經(jīng)過平面上給定的5個點(diǎn),擬合出2次B樣條曲線。同樣的方法,可以做出經(jīng)過給定的 n個點(diǎn),擬合出的B樣條曲線。

圖5 過5點(diǎn)擬合的二次B樣條曲線

3 算法的比較

用雙圓弧擬合離散型值點(diǎn)生成自由曲線,是近年來非圓曲線的零件自動編程與加工中常用的一種數(shù)學(xué)模型。雙圓弧擬合方法以其計(jì)算相對簡單,總體上一階光滑,易于局部處理等特點(diǎn),已得到了較為廣泛的應(yīng)用。但其計(jì)算量大。本文討論的簡單的2次B樣條曲線擬合算法。采用4點(diǎn)來確定2條2次曲線,用2條2次曲線近似1條3次曲線的方法。既彌補(bǔ)了3次曲線以及雙圓弧擬合中計(jì)算量大的缺陷,又彌補(bǔ)了2次曲線的不足,具有以下優(yōu)點(diǎn):

1、計(jì)算量小,快速性。因?yàn)閿M合采用二次曲線擬合算法,擬合速度較快,而且避免了解大量的方程組,提高了運(yùn)算速度。

2、光滑性。由于B樣條曲線是連續(xù)的,且它不通過任何一個控制點(diǎn)(型值點(diǎn)),比Bezier曲線更光滑。

3、局部性。B樣條曲線具有非整體性,即改變某一個控制點(diǎn)僅影響其附近的一段曲線,更有效地解決了4個以上控制點(diǎn)的擬合問題。

4 結(jié)語

本文針對雙圓弧擬合算法繪制一條 B樣條曲線需要反復(fù)多次計(jì)算各坐標(biāo)分量的3次多項(xiàng)式,計(jì)算量大,繪制擬合速度極慢,難以滿足實(shí)際需要等情況,提出了一種簡單的2次B樣條曲線擬合算法——采用4點(diǎn)來確定2條2次曲線,用2條2次曲線近似1條3次曲線,既彌補(bǔ)了3次曲線以及雙圓弧擬合中計(jì)算量大的缺陷,又彌補(bǔ)了2次曲線的不足,更有效地解決了4個以上控制點(diǎn)的擬合問題。

[1] Barsky B A. Computer Graphics and Geometric Modeling Using Beta-Spline [M] .Heidelberg:Springer-Verlag,1988.

[2] Hoschek J,Lasser D. Fundamentals of Computer Aided Geometric Design[M] . Wellesley, MA:A K Peters,1993.

[3] 施法中.計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B樣條[M] .北京:北京航空航天大學(xué)出版社,1994,228-255.

[4] 王沫然.MATLAB與科學(xué)計(jì)算(第2版)[M] .北京:電子工業(yè)出版社,2003.

[5] 虞銘財(cái),楊勛年,汪國昭.整體最優(yōu)雙圓擬合[J] .高校應(yīng)用數(shù)學(xué)學(xué)報(bào)A輯,2004,19(2):225-232.

[6] 蘇步清,劉鼎元.計(jì)算幾何[M] .上海;上海科技出版社,1981:121-140.

[7] 閻童,王琦.雙圓弧擬合在輪廓仿真加工中的應(yīng)用[J] .小型微型機(jī)算機(jī)系統(tǒng),1998,19(10):57-60.

猜你喜歡
曲線擬合切點(diǎn)樣條
一元五次B樣條擬插值研究
不同階曲線擬合擾動場對下平流層重力波氣候特征影響研究*
拋物線的切點(diǎn)弦方程的求法及性質(zhì)應(yīng)用
基于MATLAB 和1stOpt 的非線性曲線擬合比較
淺談Lingo 軟件求解非線性曲線擬合
一種偽內(nèi)切圓切點(diǎn)的刻畫辦法
三次參數(shù)樣條在機(jī)床高速高精加工中的應(yīng)用
曲線擬合的方法
三次樣條和二次刪除相輔助的WASD神經(jīng)網(wǎng)絡(luò)與日本人口預(yù)測
基于樣條函數(shù)的高精度電子秤設(shè)計(jì)
兴义市| 东至县| 黄平县| 盘山县| 屏南县| 芜湖县| 扶沟县| 岫岩| 平遥县| 达州市| 蓬溪县| 同心县| 五寨县| 江山市| 临颍县| 象州县| 华容县| 峨眉山市| 麦盖提县| 隆尧县| 乌鲁木齐县| 灵丘县| 苏尼特右旗| 偏关县| 芦山县| 乌兰察布市| 竹北市| 蓬安县| 黄浦区| 蒙山县| 西丰县| 昌乐县| 彝良县| 德安县| 泸溪县| 渭源县| 昌吉市| 睢宁县| 松原市| 行唐县| 游戏|