动画—动作的合成.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动画—动作的合成

動畫— 動作的合成 台大生物機電系 馮丁樹教授 利用 MATLAB 進行動畫有兩種方法,其一是先儲存一定數格的圖格,然後 再按順序播放,成為連續的電影;其二是在螢幕上連續繪圖及擦拭,以產生連續 的動作變化。故圖面內容若相當複雜,且有色彩搭配時,以採用第一種方式為宜, 如此可以產生一個接近實體之連續影像。這些影像可以事先輸入或繪製,播放時 只要將其一幕幕放映即可。這種方式可能會產生閃耀,且所佔的記憶體也較大。 第二種技巧是利用電腦的快速繪圖功能,將影像繪製完成後,再擦去,利用 MATLAB 所提供的模式可以選擇不同的呈現方式。這種方式速度快,但正確性 較差。在動力或機動學方面,可以示範組件的動作,故也相當理想。 擦拭模式 MATLAB 指令中,可以使用擦拭重畫法以產生動畫。產生動畫之原理是將 某一物體之座標改變之後,擦去前面所繪的圖像,重新依新座標繪製一次,如此 連續不斷,產生一系列的動作畫面。 典型的畫法是畫出該物體後,然後在迴圈 中,不斷地些微改變其位置座標,然後繼續畫出整個畫面。其座標分別以xyz 表 示。在指令中亦可用參數改變其擦拭的模式。總共有三種模式可供選用: none- MATLAB 會在繪出新圖案前不將舊圖清除。 background- MATLAB 會用背景顏色將舊圖重新繪製一次。故此種模式 除將舊圖清除外,其底下原有的繪製物如格線等亦被清除。 xor– 此模式僅擦拭物體部份,故最常用於動畫。 這三種模式是 MATLAB 繪圖指令中之執行速度最快者,但仍然視圖像的細 節及運算的時間而定。有時仍然需要使用延遲的功能才能看到它的變化。由於它 是一個較為簡易的方式,故本機動學二將以此功能配合各項分析結果產生動畫, 使學者可以瞭解其中之變化過程。 範例一 、正弦曲線圖 正弦函數圖之移動。程式如下 function demo_mot1(v) %demo_mot1.m - 1- x = -pi:pi/20:pi; t=0.1; h=plot(x,cos(x),linewidth,5); delx=v*pi/360*t; while 1 x=x+delx; set(h,xdata,x,ydata,cos(x)); drawnow pause(t); %if x2*pi, x=0;end; end 執行上列程式之後,可以看到一個正弦曲線之移動,並使座標亦配合產生移 動的情形 ,可參考下圖。 圖 1. 正弦曲線之移動 程式內容中 ,基本上先繪出正弦曲線,此可以利用 X 矩陣及其正弦函數 cosX 來完成。繪圖指令為 plot 。在此指令中,先要有x,y 座標,設定線粗細,然後給 一個握把。在 plot 之指令參數中,實際上有兩個參數可以儲存上述線的座標矩 陣,即’xdata ’與’ydaya ’ ,而此指令又賦予一個h 為握把(handle) 。在MATLAB 中 有些圖群或軸指令常會繪它一個名稱,或稱為握把,以便以後要叫那一個圖樣 時,可以立即叫出其名來。 既然 plot 指令有一裝繪圖座標的地方,我們也可以將新座標值丟到那個地 方,讓它一直進行繪圖,所以必需使用一個新的指令叫 set ,這個指令如下: -2- set(h,xdata,x,ydata,cos(x)); 注意這個指今要丟東西之前一定要知道那一個握把,否則不知道要往那裡丟 新的資料。新資料是我們不斷創造的,因為每次 x 均利用下列敘述更新一次,當 然 cos(x)也一同更新了: x=x+delx; 玩玩看,你會發現該圖動起來像蛇一樣變化是蠻有趣的。不過要記得,這個 程式是函數型式,故你得將述程式拷貝,並用 demo_mot1 當檔案名稱,而執行 時記得後面要給一個速度(v)的參數,50 或 100 隨便給一個試試看 。 範例二 、羅蘭茲旋轉圖 通常我們喜歡利用 3-D 來看不同時間的運動軌跡 。本例是一個非線性微分方 程式稱為羅蘭茲(Lorenz)奇特旋轉圖,其方程式如下: 其中 y(t) 為向量值

您可能关注的文档

文档评论(0)

zhuwo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档