字體:小 中 大 | |
|
|
2013/06/25 05:46:29瀏覽211|回應0|推薦2 | |
等號=與:=,在MatePost的義意不同。 "="就如同一般數學式的意思,相等之意。而 ":="才是如同電腦程式的「賦值」的意思。 a=1cm; %變數a等於1cm。 a:=1cm;%把:=右邊的算值存入左方變數中。 所以a=1cm; a:=1cm;這裡的結果都一樣,電腦執行也不會出錯。但是如果是 a:=a+1;和 a=a+1; 執行程式碼時,a=a+1就會出現錯誤。 在MeTapost裡面,給變數一個內容值,有二程方式,第一程就是使用附值的方式,把計算結果存入變數中,如同a:=a+1;這種方式。另外有一種方式就是寫出方程式,讓電腦自已去算結果。例如這個程式碼,沒有把數值指定給數a,b,但a,b最後已有值了: numeric a,b; a+b=2a-b=3;%(等於是a+b=3; 2a-b=3;) show a,b; end; mpost執行這個程式碼,會在電腦幕上面印出 >>2 >>1 可以這麼說,如果我們一時之間無法算出答案,這時寫聯立方程式,給電腦自已去找解會更方便。例如有二個不平行的向量,它們的某個廷長點必會相交,我們如果要在電腦上面繪圖,要用賦值方式給坐標變數的話,必需要自已算出解後,才能輸入程式碼,讓它執行。但寫方程式給它就很簡單,如果坐標p1, p2, p3, p4 為已知,而求p1p3, p2p4的交點p5: p5=whatever[p1,p3]=whatever[p2,p4]; 例如畫三角形的內心,(-4,2), (2,-3), (1,5)三頂點的外心G: 還有一個例子,使用=讓電腦自已去算結果的方式,就是變形transform 變數,在學術上的名稱為仿射變換。它的意思就像我們對著牆壁玩手影時,手的形狀是一個圖形,而牆上的手投影也是一個圖形,但投影是經過光線角度、牆面角度等原因,其形狀已經有了改變。這種圖形投影造成的變化,可以由幾何學公式推導出來。這中間的轉換,就是transform。這種變形的參數有六個,在幾何學裡面,可以證明某平面不共線三個點,可以決定一個唯一的transform。例如上例的三角形,我只要想要的效果,如(-4,2) 變形到(3,-5);(2,-3) 轉變到 (-2,-7);(1,5)轉換到(-1,-6);transform 的6個參數就可以由這三個轉換,形成六元一次聯立方程式,讓電腦自已算出來,如程式碼: transform T; (-4,2) transformed T = (3,-5); (2.-3) transformed T = (-2,-7); (1,5) transformed T = (-1,-6); 這樣一來,T的內容的六個值,電腦就能算好,剩下我們就可以把圖形用這個T來個仿射的運算。如下圖。 |
|
( 興趣嗜好|電腦3C ) |