matlab 程式设计入门篇动画制作

matlab 程式设计入门篇动画制作

ID:5399234

大小:541.50 KB

页数:22页

时间:2017-11-10

matlab 程式设计入门篇动画制作_第1页
matlab 程式设计入门篇动画制作_第2页
matlab 程式设计入门篇动画制作_第3页
matlab 程式设计入门篇动画制作_第4页
matlab 程式设计入门篇动画制作_第5页
资源描述:

《matlab 程式设计入门篇动画制作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MATLAB程式設計入門篇 動畫製作6-1MATLAB動畫簡介MATLAB產生動畫的方式有兩種:電影方式:以影像的方式預存多個畫面,再將這些畫面快速的呈現在螢幕上,就可以得到動畫的效果。此種方式類似於電影的原理,可以產生很繽紛亮麗的動畫,但是其缺點為每個畫面都必需事先備妥,無法進行及時成像(Real-timeRendering),而且每個畫面,以至於整套動畫,都必需佔用相當大的記憶體空間。物件方式:在MATLAB的「握把式圖形」(HandleGraphics,詳見本書第七章)概念下,所有的曲線或曲

2、面均可被視為一個物件,MATLAB可以很快的抹去舊曲線,並產生相似但不同的新曲線,此時就可以看到曲線隨時間而變化的效果。使用物件方式(即握把式圖形)所產生的動畫,可以呈現即時的變化,也不需要太高的記憶體需求,但其缺點是較難產生太複雜的動畫。6-2以電影方式產生動畫以電影方式來產生動畫,可由下列兩個步驟來達成:使用getframe指令來抓取圖形做為電影的畫面,每個畫面都是以一個行向量的方式,置放於整個代表電影的矩陣。使用movie指令來播放電影,並可指定播放的重複次數及每秒播放的畫面數目。電影動畫之

3、範例一在下例中,我們將以不同的角度來顯示peaks函數,並將其結果以電影的方式來呈現動畫。範例6-1:movie01.mclearM%清除電影資料矩陣Mn=50;%抓取50個畫面peaks;fprintf('抓取畫面中...');fori=1:nview([-37.5+i*360/n,30]);%改變觀測角度M(i)=getframe;%抓取畫面,並存入電影資料矩陣Mendfprintf('播放電影中...');movie(M,3);%播放電影三次電影動畫之範例一最後一個frame的畫面電

4、影動畫之範例二將peaks函數畫在圓盤上,然後再變換此函數的高度,以動畫呈現範例6-2:movie02.mclearM%清除電影資料矩陣Mr=linspace(0,4,30);%圓盤的半徑t=linspace(0,2*pi,50);%圓盤的極座標角度[rr,tt]=meshgrid(r,t);xx=rr.*cos(tt);%產生圓盤上的x座標yy=rr.*sin(tt);%產生圓盤上的y座標zz=peaks(xx,yy);%產生peaks在極座標的資料n=30;%抓取30個畫面scale=cos(

5、linspace(0,2*pi,n));fprintf('抓取畫面中...');fori=1:nsurf(xx,yy,zz*scale(i));%畫圖axis([-infinf-infinf-8.58.5]);%固定圖軸的範圍boxonM(i)=getframe;%抓取畫面,並存入電影資料矩陣Mendfprintf('播放電影中...');movie(M,5);%播放電影5次電影動畫之範例二最後一個frame的畫面電影動畫之範例三改變影像的色盤矩陣,讓影像出現「從正片變到負片」的效果範例6

6、-3:movie03.mclearM%清除電影資料矩陣Mloadclown.matimage(X);colormap(map);%畫出小丑臉n=30;%抓取30個畫面scale=cos(linspace(0,2*pi,n));fprintf('抓取畫面中...');fori=1:ncolormap(((i-1)*(1-map)+(n-i)*map)/n);%改變色盤矩陣M(i)=getframe;%抓取畫面,並存入電影資料矩陣Mendfprintf('播放電影中...');movie(M,

7、-5);%播放電影5次(含正向與逆向播放)電影動畫之範例三在上述範例中,正片(如下張投影片圖左)的色盤矩陣是map,而1-map則是負片(如下張投影片圖右)的色盤矩陣,因此我們在抓影片時,讓色盤矩陣進行漸進式的變化,因此呈現的電影就有「從正片變到負片」的效果。另外,movie(M,-5)代表電影將播放5次,但由於第二個參數是負數,所以每次播放會包含一次「正向播放」及一次「逆向播放」。電影動畫之範例三正片色盤矩陣是map負片色盤矩陣是1-map電影動畫的其他範例MATLAB的demo程式中亦包含了數

8、個與電影方式相關的動畫,讀者可以在指令視窗輸入下列任一指令:xpmovievibesxpmovielogospinxpmoviecrulspin6-3以物件方式產生動畫以電影方式產生動畫可以說是「暴力法」,因為此方法佔掉了許多記憶體空間。另一個技巧性較高的方法則是以物件方式產生動畫,此種方法不需要大量的記憶體,而且可以產生「即時」(Real-time)或「互動式」(Interactive)的動畫。MATLAB的所有圖形元件(曲線、曲面、圖軸等)都是物件,您可以控制這些物件的各種性質

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。