06-动画制作(精品).ppt
《06-动画制作(精品).ppt》由会员分享,可在线阅读,更多相关《06-动画制作(精品).ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MATLAB 程式設計入門篇動畫製作張智星(Roger Jang)jangmirlab.orghttp:/mirlab.org/jang台大資工系 多媒體檢索實驗室MATLAB 程式設計入門篇:動畫製作6-1 MATLAB 動畫簡介nMATLAB 產生動畫的方式有兩種:n電影方式:n以影像的方式預存多個畫面,再將這些畫面快速的呈現在螢幕上,就可以得到動畫的效果。此種方式類似於電影的原理,可以產生很繽紛亮麗的動畫,但是其缺點為每個畫面都必需事先備妥,無法進行及時成像(Real-time Rendering),而且每個畫面,以至於整套動畫,都必需佔用相當大的記憶體空間。n物件方式:n在 MATLA
2、B 的握把式圖形(Handle Graphics,詳見本書第七章)概念下,所有的曲線或曲面均可被視為一個物件,MATLAB 可以很快的抹去舊曲線,並產生相似但不同的新曲線,此時就可以看到曲線隨時間而變化的效果。使用物件方式(即握把式圖形)所產生的動畫,可以呈現即時的變化,也不需要太高的記憶體需求,但其缺點是較難產生太複雜的動畫。MATLAB 程式設計入門篇:動畫製作6-2 以電影方式產生動畫n以電影方式來產生動畫,可由下列兩個步驟來達成:n使用 getframe 指令來抓取圖形做為電影的畫面,每個畫面都是以一個行向量的方式,置放於整個代表電影的矩陣。n使用 movie 指令來播放電影,並可指定
3、播放的重複次數及每秒播放的畫面數目。MATLAB 程式設計入門篇:動畫製作電影動畫之範例一n在下例中,我們將以不同的角度來顯示 peaks 函數,並將其結果以電影的方式來呈現動畫。n範例6-1:movie01.mclear M%清除電影資料矩陣 Mn=50;%抓取 50 個畫面figure(Renderer,zbuffer);%Only used in MS Windowspeaks;fprintf(抓取畫面中.n);for i=1:nview(-37.5+i*360/n,30);%改變觀測角度M(i)=getframe;%抓取畫面,並存入電影資料矩陣 Mendfprintf(播放電影中.n)
4、;movie(M,3);%播放電影三次MATLAB 程式設計入門篇:動畫製作電影動畫之範例一n最後一個 frame 的畫面MATLAB 程式設計入門篇:動畫製作電影動畫之範例二n將 peaks 函數畫在圓盤上,然後再變換此函數的高度,以動畫呈現n範例6-2:movie02.mclear M%清除電影資料矩陣 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
5、);%產生 peaks 在極座標的資料n=30;%抓取 30 個畫面scale=cos(linspace(0,2*pi,n);figure(Renderer,zbuffer);%Only used in MS Windowsfprintf(抓取畫面中.n);for i=1:nsurf(xx,yy,zz*scale(i);%畫圖axis(-inf inf-inf inf-8.5 8.5);%固定圖軸的範圍box onM(i)=getframe;%抓取畫面,並存入電影資料矩陣 M endfprintf(播放電影中.n);movie(M,5);%播放電影 5 次MATLAB 程式設計入門篇:動畫製作
6、電影動畫之範例二n最後一個 frame 的畫面MATLAB 程式設計入門篇:動畫製作電影動畫之範例三n改變影像的色盤矩陣,讓影像出現從正片變到負片的效果n範例6-3:movie03.mclear M%清除電影資料矩陣 Mload clown.matimage(X);colormap(map);%畫出小丑臉n=30;%抓取 30 個畫面fprintf(抓取畫面中.n);for i=1:ncolormap(i-1)*(1-map)+(n-i)*map)/n);%改變色盤矩陣M(i)=getframe;%抓取畫面,並存入電影資料矩陣 M endfprintf(播放電影中.n);movie(M,-5)
7、;%播放電影 5 次(含正向與逆向播放)MATLAB 程式設計入門篇:動畫製作電影動畫之範例三n在上述範例中,正片(如下張投影片圖左)的色盤矩陣是 map,而 1-map 則是負片(如下張投影片圖右)的色盤矩陣,因此我們在抓影片時,讓色盤矩陣進行漸進式的變化,因此呈現的電影就有從正片變到負片的效果。n另外,movie(M,-5)代表電影將播放 5 次,但由於第二個參數是負數,所以每次播放會包含一次正向播放及一次逆向播放。MATLAB 程式設計入門篇:動畫製作電影動畫之範例三n正片n色盤矩陣是 mapn負片n色盤矩陣是 1-mapMATLAB 程式設計入門篇:動畫製作6-3以物件方式產生動畫n以
8、電影方式產生動畫可以說是暴力法,因為此方法佔掉了許多記憶體空間。另一個技巧性較高的方法則是以物件方式產生動畫,此種方法不需要大量的記憶體,而且可以產生即時(Real-time)或互動式(Interactive)的動畫。nMATLAB 的所有圖形元件(曲線、曲面、圖軸等)都是物件,您可以控制這些物件的各種性質,此種特性稱為握把式圖形(Handle Graphics),可詳見第七章。握把式圖形包含的層面很廣,但牽涉到動畫部份的基本概念並不複雜,以下我們以曲線的動畫來說明。MATLAB 程式設計入門篇:動畫製作曲線的動畫n我們可以快速地改變圖形物件的性質(如顏色、座標等),就可以達到動畫的效果n每一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 06 动画 制作 精品
限制150内