李朝紅 蘭 虹
(齊齊哈爾高等師范??茖W(xué)校 理工系,黑龍江 齊齊哈爾 161005)
基于MATLAB動態(tài)實(shí)現(xiàn)Bezier曲線幾何作圖
李朝紅蘭虹
(齊齊哈爾高等師范??茖W(xué)校 理工系,黑龍江 齊齊哈爾 161005)
摘要:基于De Casteljau算法的Bezier曲線生成遞歸公式,利用MATLAB語言,動態(tài)繪制n次Bezier曲線生成,并給出了完整的MATLAB程序。通過動態(tài)生成曲線可以加深學(xué)生對抽象理論的理解。
關(guān)鍵詞:Bezier曲線;De Casteljau算法;動態(tài)繪圖
1De Casteljau算法與Bezier曲線
(1)
(2)
公式(2)可以用圖1形象說明分割過程。當(dāng)n=3,即三次Bezier曲線p(u)的分割過程如圖1所示,其頂點(diǎn)變化如圖2。
2MATALAB動態(tài)畫圖功能
MATLAB除了強(qiáng)大的矩陣運(yùn)算、仿真分析外,繪圖功能也是相當(dāng)?shù)貜?qiáng)大。在MATLAB中有很多種繪制動態(tài)圖形的方法,如AXIS 移動坐標(biāo)系(適合于數(shù)據(jù)已經(jīng)全部生成的場合,先畫圖,然后移動坐標(biāo)軸);Hold On模式(先畫上一幀,接著保留原始圖像,追加下一幀圖像,此種方式比較繁瑣);Plot背景擦除模式(適合畫動畫,效率比較高,刷新閃爍小)等。
現(xiàn)利用繪圖函數(shù)plot背景擦除模式來繪制De Casteljau算法動態(tài)生成Bezier曲線,在plot命令中加入“EraseMode”參數(shù),“EraseMode”包含以下幾種擦除方式:
(1)normal方式:使用該選項(xiàng)后,重畫整個顯示區(qū),該模式產(chǎn)生的圖像最準(zhǔn)確,但較慢。
(2)background方式:將舊對象的顏色變成背景色,從而達(dá)到擦除的目的。這種模式將損壞被擦除對象下面的對象。
(3)xor方式:對象的繪制和擦除由該對象顏色與屏幕顏色的同異而定。只畫與屏幕顏色不一致的新對象點(diǎn),只擦除與屏幕顏色不一致的原對象點(diǎn)。該方式不損害被擦除對象下面的其他圖像。
(4)none方式:不做任何擦除。
3MATLAB實(shí)現(xiàn)De Casteljau算法的動態(tài)繪制
h1=plot(x,y,′EraseMode′,′xor′);
h2=plot(x,y,′EraseMode′,′xor′);
h3=plot(x,y,′.′,′markersize′,10,′EraseMode′,′none′);
x=[0,0];y=[0,0];
plot(o(:,1),o(:,2),′r′);
hold on;
for u=0∶0.0005∶1
x1=[(1-u)*V(1,1)+u*V(2,1),(1-u)*V(2,1)+u*V(3,1),(1-u)*V(3,1)+u*V(4,1)];
y1=[(1-u)*V(1,2)+u*V(2,2),(1-u)*V(2,2)+u*V(3,2),(1-u)*V(3,2)+u*V(4,2)];
x2=[(1-u)*x1(1)+u*x1(2),(1-u)*x1(2)+u*x1(3)];
y2=[(1-u)*y1(1)+u*y1(2),(1-u)*y1(2)+u*y1(3)];
x3=(1-u)*x2(1)+u*x2(2);
y3=(1-u)*y2(1)+u*y2(2);
set(h1,′xdata′,x1,′ydata′,y1);
set(h2,′xdata′,x2,′ydata′,y2);
set(h3,′xdata′,x3,′ydata′,y3);
drawnow;
4結(jié)語
本文主要以MATLAB語言為基礎(chǔ),以De Casteljau算法為指導(dǎo),動態(tài)生成n次Bezier曲線,并給出了完整的MATLAB程序。通過動態(tài)生成曲線,可以幫助學(xué)生在學(xué)習(xí)過程中,克服以靜態(tài)的理論理解De Casteljau算法的想象局限,同時也可以使學(xué)生進(jìn)一步理解掌握MATALB語言的應(yīng)用,特別是動畫程序設(shè)計。
參考文獻(xiàn):
[1]施法中.計算機(jī)輔助幾何設(shè)計與非均勻有理B樣條[M].北京:北京航空航天大學(xué)出版社,2001:114—256.
[2]張若楠,黃有度.一類有理Bézier曲線的等距線算法及MATLAB實(shí)現(xiàn)[J].大學(xué)數(shù)學(xué),2012,(2):59—63.
[3]張志涌,楊祖櫻.MATLAB教程[M].北京:北京航空航天大學(xué)出版社,2010:154—190.
責(zé)任編輯:柴造坡
作者簡介:第一李朝紅(1976—),女,黑龍江依蘭人,副教授。研究方向:計算幾何、數(shù)字圖像處理。
基金項(xiàng)目:黑龍江省教育廳科學(xué)技術(shù)研究項(xiàng)目(編號:12535205)
收稿日期:2014-11-05
中圖分類號:TP391.72
文獻(xiàn)標(biāo)志碼:A
文章編號:1674-6341(2015)01-0024-02
doi:10.3969/j.issn.1674-6341.2015.01.011