1/22/07

第二章 動畫之製作

機動學中,物件之動作與位置變化是重要的考慮。如何利用Matlab之動畫功能,以瞭解物件之動作過程,也是重要的一環。動畫之中必須配合繪製物件,其中包括圓形、矩形及線形等,這些繪圖方法及語法,已在另外章節加以說明,讀者可以參考。目前在此處比較重要的是繪出物件之示意圖,所用之工具也較為簡單。


線為圖之基礎,適當地組合線群可以形成複雜的圖形。畫線指令line可以完成這項任務。繪線必須有起始點及終止點,但若有連續的點,採用矩陣表示時,則會 自動連線,繪出整個圖形。故若使用line指令,應可以利用點群之座標,一筆畫繪出需要的圖形。多點連線時,參數可以矩陣表示,但每行代表一線,亦亦採用 多行,形成方形矩陣,下面為其一例:

2.1.1 簡單之線圖


實例1.1:若x=[1 3 5]; y=x²

>> x=[1 3 5],y=x.*x
x = 1 3 5
y = 1 9 25

>> line(x',y')
>> line(x,y)
>> grid on


圖2.2 一維向量之繪圖

2.1.2一筆畫線


利用line之功能可繪製一筆畫之圖形。這種畫法可以利用方格紙先將初稿繪於其上,然後點出其對應座標,即可利用上述line之畫線功能繪製圖案。這種圖案未來可作為程式中應用之基本元件,構成更複雜的機構。以三角形為例,可以將座標分為對應之兩行如下:

triangle=[0 0;1 0;0 2;-1 0;0 0];

其中頭尾均為共同點,以保證整個圖為封閉區線。

實例1.5: 繪出三角形



>> triangle=[0 0;1 0;0 2;-1 0;0 0]
triangle =
0 0
1 0
0 2
-1 0
0 0
>> line(triangle(:,1),triangle(:,2))
>> axis equal
>> line(triangle(:,1),triangle(:,2))


圖2.3 繪出一三角形

實例1.6:星形



>> star5=[4 0;-3.2361 2.3511;1.2361 -3.8042;1.2361 3.8042; -3.2361 -2.3511;4 0];
>> line(star5(:,1),star5(:,2))
>> axis equal %調整座標之比例使成1:1



圖2.4 繪出一星形

實例1.7:房屋



>> house=[25 94;8 56;8 16;44 5;44 52;44 5;60 16;72 12;92 28;...
92 62;92 28;72 12;72 60;72 12;60 16;60 50;60 25;...
48 16;56 21;56 40;48 36;48 16;44 16;16 40;36 36;...
36 52;16 56;16 40;8 50;2 46;24 96;48 44;62 52;52 72;...
60 88;76 52;96 64;80 96;60 88;68 92;60 108;24 96];
>> line(house(:,1),house(:,2))
>> line(house(:,1),house(:,2))
>> axis equal



圖2.5 房屋

實例1.8:斗笠



>> banhat=[0 0;5 0;2 1;0 3;-2 1;-5 0;5 0;4 0;2 1;1.5 0.99;1 0.96;...
0 0.94;-1 0.96;-1.5 0.99;-2 1;-4 0;-3 0;-1.5 0.99;0 3;...
-0.5 0.95;-1 0;-2 0;-1 0.96;-2 0;2 0;1 0.96;2 0;1 0;...
0.5 0.95; 0 3;1.5 0.99;3 0;4 0;2 1;1.5 0.99;0 3;0 0];
>> line(banhat(:,1),banhat(:,2))
>> line(banhat(:,1),banhat(:,2))
>> axis off
>> axis equal


圖2.6斗笠


利用上述之方式,應該可以創出許多不同的作品,唯一需要的是個人的創意。