• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于MATLAB動態(tài)實(shí)現(xiàn)Bezier曲線幾何作圖

      2015-12-24 01:51:05李朝紅

      李朝紅 蘭 虹

      (齊齊哈爾高等師范??茖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

      阿勒泰市| 台东县| 弥渡县| 泗阳县| 邳州市| 棋牌| 南木林县| 奈曼旗| 丹棱县| 富裕县| 自治县| 彩票| 红原县| 东光县| 中方县| 阳原县| 万载县| 潮州市| 银川市| 盖州市| 保康县| 定西市| 左云县| 通州市| 易门县| 延安市| 沙雅县| 高平市| 德保县| 壤塘县| 独山县| 毕节市| 仪陇县| 清新县| 潢川县| 涟源市| 遂宁市| 新乡县| 利津县| 滨海县| 乌拉特后旗|