MATLAB 程式設計入門篇 動畫製作.

Slides:



Advertisements
Similar presentations
渡黑水溝 郁永河. 2 戎克船:是明末清初時期往返兩岸的主要交通工具 ∗ 1. 關於台灣的開發歷史,我們到底了解多少呢?不妨試著說出 就我們所知有關台灣開發史的故事、小說、電影、音樂與大 家分享。 ∗ 2. 什麼是黑水溝?黑水溝為什麼會成為大陸移民渡海來臺時最 大的威脅? ∗ 3. 有聽過「六死三留一回頭」、「有唐山公,無唐山嬤」這兩.
Advertisements

元大京華證券 組員名單 : A 楊之奇 A 廖本揚 A 宋俊承 A 陳冠廷 A 郭峻瑋 A 指導教授 : 許素華 副教授.
達悟族報告 作者 : 林琪崴, 許原碩 座號 :13 號,14 號 原碩負責 : 簡介, 傳說, 圖驣, 達悟族飛魚季, 琪崴 : 地理位置, 土地利用方式, 飲食文化, 豐收祭.
主讲:张天明 影像艺术工程师. 声音的聆听 指出听到的是什么物体发出的声音,这一 声音是在什么样的空间环境中传播的。 一、 答案: 1 、打气筒打气的声音 2 、手打打气筒给足球打气的声音 3 、手打打气筒给自行车轮胎打气的声音 4 、七次(七声)打气筒打气的声音 5 、(气流)摩擦的声音 6 、猪在发急时的叫声.
概念導向命題技巧與試題分析 臺灣師大地理系 陳國川. 教學評量是一種『抽樣調查』 實施教學評量時,需具備二項條件: 其一,瞭解命題的理論及其實踐的方法; 其二,瞭解各種題型的功能與命題方式。 壹、前言.
第十八章 林肯大郡 第十八章 林肯大郡災變緊急搶救應變措施 1997 年 8 月 18 日溫妮颱風襲台,汐止鎮 的林肯大郡山崩,遭崩場土石撞擊 1997 年 8 月 18 日溫妮颱風襲台,汐止鎮 的林肯大郡山崩,遭崩場土石撞擊造成二十八人罹難八十戶住宅倒塌的慘劇 此災變要喚起國人的重視 本章介紹搜救行動緊急應變措施。
高峰植物園行前解說 2005/12/07 By 羽明. 陽性先驅物種 陽性植物 --- 陽光需求量大 陰性 ( 或耐蔭性 ) 植物 --- 陽光需求量少, 或 日照太強反而無法生存 先驅植物 --- 森林大火或土石流地震後產生的 裸露空地, 先生長出來的植物.
報 告 人 : 胡 嘉 琪 ˙ˇ˙ 、 王 紫 庭 = ˇ = 台灣夜市文化 作者: 郭明澤‧私立明道高中‧綜二 4 班 馬炯修‧私立明道高中‧綜二 4 班.
5 ˙ 1 第五章 生物的協調作用 5 ‧ 1 神經系統. 5 ˙ 1 人體的神經系統 1. 協調動物生理反應的系統: 神經 系統、 內分 泌 系統。 2. 神經系統負責 統整 和 協調 。分為 中樞 神經 和 周圍 神經。 (1) 中樞神經包括 腦 和 脊髓 。 (2) 周圍 神經包括 腦神經 和.
从《西游》看大学生的成长 主讲人:颜廷学 时间: 地点:演艺大楼流行剧场.
新员工培训 设计部 思安新能源股份有限公司 主讲人: 韩少华 时 间:
前言:河流的主要功能 1. 交通運輸 優點-運費低廉,維護費用低 缺點-速度慢,裝載費時,不能到達生產區或消費區 的末端,需要轉載。 尚受到河流網路,河口位置,水量變化,河床 狀況,冰封時期 2. 水資源系統.
幽夢影~張潮 小佑子工作室 關於《幽夢影》 作者張潮,記寫他個人對人生世事之體驗透悟的 書。 書中文字,全為「語錄」形式,屬於格言,也是 最精鍊的隨筆。 全書可分為九卷:論才子佳人、論人與人生、論 朋友知己、論讀書、論閒情逸趣、論立身處世、 談文論藝、論四時佳景、論花鳥蟲魚。
成人高考高起点 语文 冲刺班 主讲老师:邓君媚. 复习指导 高考语文含四大块内容: 语言知识和语言表达,古代诗文阅读,现 代文阅读,写作。 在全面复习的前提下,按照《考试大纲》 的要求,要做好思路整理,建立高考的整体框 架的工作。认真归纳整理基础知识、培养基本 能力,复习做到有的放矢。 复习指导.
老师,我可以不 爱 吗? 山东省淄博市张店区实验中学 杜桂兰 星期一的早晨,我紧张而又兴奋,因为 我的赛教课就要开始了。 这是一次级别很 高 的竞赛。
财政部 国家税务总局 中国人民银行(央行) 银监会 证监会 保监会. 法定存款准备金率 利率 税率 政府投资 楼继伟,周小川,易纲.
油蔴菜籽 指導老師:陳瑜霞 學生: 商設一甲 謝旻璇 車輛三乙 許勝傑 工管四甲 彭凱雲. 作者介紹: 廖輝英( 1948 年生)臺大中文系畢業。 從初三開始寫作,早期作品多以散文為主,大四 畢業時才暫時封筆。畢業後進了廣告界,成為廣 告文案好手,後為企畫主管,在廣告界縱橫十餘 年,也曾任職於建設公司,辦過社區報高雄一周。
蘭嶼情人洞傳說 林庭羽製 林庭羽製. 台灣的蘭花特別多,台灣有個蘭 嶼島,島上面的蘭花更多.所以 叫蘭嶼.這裡留下了動人的傳說。
職業訪談報告. 成員 : 鐘怡君 劉沛君 謝明達 賴映辰.
南台科大幼保實習課程 見習幼兒園心得報告 夜四技幼保四甲 998i0021 黃欣婷.
第一章 生殖 1‧2 無性生殖.
高教三十条 — 科技创新能力提升 科技创新能力提升工程方案起草小组 2013年7月4日.
你不可不知之 十二年國教二三事 教務主任:傅瑞琪.
鞋 楦 的 材 質.
最古怪的15種動物.
走! 一起去拜訪筏子溪.
台灣文學館之旅.
單車環島之旅 組員: 495D0072 胡閎智 495D0074 何冠緯 495D0020 王怡雯 495D0047 葉亭君
 耕地分割 及 執 行 內政部地政司 視察:林玲女.
天津1班面试专项练习1 综合分析现象类 主讲:凌宇 时间:5月21日 19:00—22:00.
~完備、周密、迅速 ~ 行政院農業部畜產試驗所
建筑设计基础讲义 (02-1) 建筑水彩渲染.
現代文學導讀 (中國現代散文發展的歷史軌道)
谨以此文—— 送给所有的人.
45天备考指南 2013年下半年国考资格证笔试系列讲座(2) 华图教师事业部 石杨平.
班級:醫管3B 組別:第二組 組員:王品媛、郭雅瑄、謝淑玲、蔡孟蔙
说课课件 感悟工业革命力量,闪耀科技创新光辉 ----《走向整体的世界》教学设计及反思 爱迪生 西门子 卡尔·本茨 诺贝尔 学军中学 颜先辉.
學 習 輔 導 的 實 施 組長: 李貞儀 組員: 吳巧玲 李佳蔚
2014政法干警备考平台 2014政法干警考试群⑨ 中公教育政法干警考试 ——微博 中公教育政法干警考试
逻 辑 学 主讲:李贤军.
美国史 美利坚合众国创造了一个人类建国史的奇迹,在短短230年的时间从一个被英帝国奴役的殖民地到成为驾驭全世界的“超级大国”、“世界警察”,美国的探索为人类的发展提供了很宝贵的经验。
团队介绍 (1)西湖区社区街道挂职社会实践基地 (2)武义、缙云、双浦乡镇挂职社会实践基地 (3)BOX企业实习社会实践基地
個人投資理財分析 財務狀況匯總表 銀行存款 共同基金 外幣基金 股票投資 保險價值 黃金投資 支出預算 房貸計算 不動產價值 資源變化資料庫
资料分析 如何攻破最后瓶颈 主讲老师:姚 剑 4月6日20:00 YY频道:
台灣廢物物處理機構 邱騰煥 8 號.
Fuzzy系統 陳詩豐 助理教授 龍華科技大學 機械系.
我的心得報告 經過篩選,挑中我們 十多位學生由學校推薦進入公司,開始他們的學習之旅 學習的過程中有想像不到的意外驚喜
09学前教育班 魏文珍 自我介绍.
我国的人民民主专政.
全球工程師共同的語言 MathWorks 台灣總代理鈦思科技 指導老師 : 郭艷光教授 報告者 : 吳育驊
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
MATLAB 程式設計入門篇 握把式圖形與 GUI 設計
Introduction to MATLAB
数学建模与数学实验 MATLAB作图.
范洪源 臺灣師範大學數學系 分支宣告與程式設計 范洪源 臺灣師範大學數學系.
給你講一個故事 ﹕ 獻給所有未婚,將要結婚,和已婚的好朋友!!
第九单元 第1课 实验 Matlab动画 1.洛仑兹非线性奇异方程所描述的无序运动 2.作y=sin(x)的程序动画(1)
MATLAB 程式設計入門篇 二維平面繪圖 改自張智星講義
MATLAB 程式設計入門篇 三維立體繪圖 (part1)
三維繪圖 Helix t = 0:pi/50:10*pi; % linspace(0,10*pi,500); figure plot3(sin(t),cos(t),t) grid on axis square Remark: zlabel, view, surf.
北投溫泉博物館 建築特色 ★小組成員:高103林孟璇、林念儀、施妤柔★.
第三章 世界文明的蛻變與互動 第一節 歐洲社會的蛻變 第二節 世界文明的交匯 第三節 亞洲大帝國的發展 1.
張智星 (Roger Jang) 台大資工系 多媒體檢索實驗室
山清水秀的林芝 yy 曾元一
第二节 MATLAB 图形处理 内容: §1 二维图形显示 §2 图形可视编辑工具 §3 三维图形显示 §4 视角变换与三视图
经济学基础 主讲人:方春龙 安徽财贸职业学院
原版:清大資工系 張智星 新增版:方煒 台大生機系
體驗‧探索‧創造─ 〈晉公子重耳之亡〉.
Presentation transcript:

MATLAB 程式設計入門篇 動畫製作

6-1 MATLAB 動畫簡介 MATLAB 產生動畫的方式有兩種: 電影方式: 物件方式: 以影像的方式預存多個畫面,再將這些畫面快速的呈現在螢幕上,就可以得到動畫的效果。此種方式類似於電影的原理,可以產生很繽紛亮麗的動畫,但是其缺點為每個畫面都必需事先備妥,無法進行及時成像(Real-time Rendering),而且每個畫面,以至於整套動畫,都必需佔用相當大的記憶體空間。 物件方式: 在 MATLAB 的「握把式圖形」(Handle Graphics,詳見本書第七章)概念下,所有的曲線或曲面均可被視為一個物件,MATLAB 可以很快的抹去舊曲線,並產生相似但不同的新曲線,此時就可以看到曲線隨時間而變化的效果。使用物件方式(即握把式圖形)所產生的動畫,可以呈現即時的變化,也不需要太高的記憶體需求,但其缺點是較難產生太複雜的動畫。

6-2 以電影方式產生動畫 以電影方式來產生動畫,可由下列兩個步驟來達成: 使用 getframe 指令來抓取圖形做為電影的畫面,每個畫面都是以一個行向量的方式,置放於整個代表電影的矩陣。 使用 movie 指令來播放電影,並可指定播放的重複次數及每秒播放的畫面數目。

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

電影動畫之範例一 最後一個 frame 的畫面

電影動畫之範例二 將 peaks 函數畫在圓盤上,然後再變換此函數的高度,以動畫呈現 範例6-2: movie02.m clear M % 清除電影資料矩陣 M r=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(linspace(0, 2*pi, n)); fprintf('抓取畫面中...\n'); for i = 1:n surf(xx, yy, zz*scale(i)); % 畫圖 axis([-inf inf -inf inf -8.5 8.5]); % 固定圖軸的範圍 box on M(i) = getframe; % 抓取畫面,並存入電影資料矩陣 M end fprintf('播放電影中...\n'); movie(M, 5); % 播放電影 5 次

電影動畫之範例二 最後一個 frame 的畫面

電影動畫之範例三 改變影像的色盤矩陣,讓影像出現「從正片變到負片」的效果 範例6-3: movie03.m clear M % 清除電影資料矩陣 M load clown.mat image(X); colormap(map); % 畫出小丑臉 n = 30; % 抓取 30 個畫面 scale = cos(linspace(0, 2*pi, n)); fprintf('抓取畫面中...\n'); for i = 1:n colormap(((i-1)*(1-map)+(n-i)*map)/n); % 改變色盤矩陣 M(i) = getframe; % 抓取畫面,並存入電影資料矩陣 M end fprintf('播放電影中...\n'); movie(M, -5); % 播放電影 5 次(含正向與逆向播放)

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

電影動畫之範例三 正片 色盤矩陣是 map 負片 色盤矩陣是 1-map

電影動畫的其他範例 MATLAB 的 demo 程式中亦包含了數個與電影方式相關的動畫,讀者可以在指令視窗輸入下列任一指令: xpmovie vibes xpmovie logospin xpmovie crulspin

6-3 以物件方式產生動畫 以電影方式產生動畫可以說是「暴力法」,因為此方法佔掉了許多記憶體空間。另一個技巧性較高的方法則是以物件方式產生動畫,此種方法不需要大量的記憶體,而且可以產生「即時」(Real-time)或「互動式」(Interactive)的動畫。 MATLAB 的所有圖形元件(曲線、曲面、圖軸等)都是物件,您可以控制這些物件的各種性質,此種特性稱為「握把式圖形」(Handle Graphics),可詳見第七章。握把式圖形包含的層面很廣,但牽涉到動畫部份的基本概念並不複雜,以下我們以曲線的動畫來說明。

曲線的動畫 我們可以快速地改變圖形物件的性質(如顏色、座標等),就可以達到動畫的效果 每一條曲線都有下列三種性質: xdata:此為一向量,代表曲線的 x 座標值 ydata:此為一向量,代表曲線的 y 座標值 EraseMode:此為一字串,代表曲線被抹除的方式,亦即當 xdata 或 ydata 被改變時,對於舊曲線的處理方式。

曲線的 EraseMode EraseMode 對於動畫的呈現相當重要,此字串可是下列幾種選擇: normal:重畫整個畫面。 xor:將舊曲線的點以 xor 的方式還原。 background:將舊曲線的點改成背景顏色。 none:保留舊曲線的點,不做任何處理。 在上述四種 EraseMode 中,耗費時間的次序是 normal > xor > background > none xor 和 background 很接近,但是 background 會抹去其他舊曲線所掃過的其他物件(如圖軸、格線、另一條曲線等),所以較少用到,所以一般在產生動畫時,最常用到的 EraseMode 就是 xor。

曲線的動畫 有了這些概念後,產生曲線的動畫就很容易了!其主要步驟有兩點: 產生一條曲線,其 EraseMode 為 xor,background,或 none。 在 for-loop 之中,改變此曲線的 xdata 或 ydata(或兩者)。 我們產生一條隨 x 而衰減的正弦曲線,並讓 k 隨時間而便大(即改變正弦波的相角),使整條曲線產生舞動的效果。

物件動畫之範例一 我們產生一條衰減的正弦曲線 讓 k 隨時間而便大(即改變正弦波的相角),使整條曲線產生舞動的效果。 範例6-1: movie04.m x = 0:0.1:8*pi; h = plot(x, sin(x).*exp(-x/5), 'EraseMode', 'xor'); axis([-inf inf -1 1]); % 設定圖軸的範圍 grid on % 畫出格線 for i = 1:5000 y = sin(x+i/50).*exp(-x/5); set(h, 'ydata', y); % 設定新的 y 座標 drawnow % 立即作圖 end

物件動畫之範例一 我們產生一條衰減的正弦曲線 讓 k 隨時間而便大(即改變正弦波的相角),使整條曲線產生舞動的效果。 範例6-1: movie04.m x = 0:0.1:8*pi; h = plot(x, sin(x).*exp(-x/5), 'EraseMode', 'xor'); axis([-inf inf -1 1]); % 設定圖軸的範圍 grid on % 畫出格線 for i = 1:5000 y = sin(x+i/50).*exp(-x/5); set(h, 'ydata', y); % 設定新的 y 座標 drawnow % 立即作圖 end

物件動畫之範例一 最後一個 frame 的畫面

物件動畫之範例一 在上例中,我們使用 set 指令,總共改變曲線的 y 座標 5000 次,並以 xor 的方式抹掉舊曲線。 drawnow 的作用是使 MATLAB 立刻處理 set 指令,若無 drawnow,MATLAB 會累積 set 指令,直到 for-loop 結束時再一併處理圖形的變化,這時就不會看到動畫的效果。 如果您將上例的 EraseMode 改成 background,則會發現曲線會“抹掉”圖形中的格線及代表圖軸的直線。 如果您將上例的 EraseMode 改成 none,則舊的曲線會被保留下來,產生不同的效果。

物件動畫之範例: MATLAB MATLAB 有很多物件動畫之範例: lorenz:以3D動畫呈現的 Lorenz 混沌方程式(Chaotic Equation),好像慧星在運行。 truss:一座橋樑在地震時的震動方式,共有 12 種喔! travel:顯示如何以雜亂搜尋(Random Search)的方式來解 Traveling Salesperson Problem. fitdemo:顯示如何以 Downhill Simplex Search 來解決非線性曲線擬合(Nonlinear Curve Fitting)的問題。 spinner:常見的螢幕保護程式。 xphide:試試您的眼力…。

物件動畫之範例: Simulink 若您有安裝 Simulink,可試試下列動態系統模擬加上動畫呈現: onecart:傳統的彈簧加上砝碼的動態系統。 dblcart1:一條彈簧加上兩個砝碼的動態系統。 simppend:簡單的單擺系統。 dblpend1:兩截的擺動系統。 dblpend2:更複雜的擺動系統。 penddemo:倒單擺系統。

物件動畫之範例: 模糊工具箱 如果您有安裝 Fuzzy Logic Toolbox,可以試試由張老師開發的各項模擬及動畫展示: fcmdemo: Fuzzy C-means Clustering。 juggler:用板子接皮球。 invkine:兩截機器手臂的 Inverse Kinematics。 slcp1:倒單擺,桿子長度隨時間而變,您可以控制所欲到達的位置。 slcpp1:雙倒單擺,其中一個桿子的長度隨時間而變,您可以控制所欲到達的位置。 slbb:蹺蹺板加上滾球系統,您可以控制球的最後位置。 sltbu:倒車入庫系統