網路城邦
上一篇 回創作列表 下一篇   字體:
MetaPost語言﹣變數形態介紹
2013/06/21 09:05:42瀏覽449|回應0|推薦1

MetaPost 是一種繪圖語言。TeX系統中,包含了這個語言的編譯程式,可以輸出向量圖檔。而文字字體也是圖形,所以,它也可以用來設計向量字體,在LaTeX上面的許多應用,例如MusicTeX這個可以畫五線譜的應用,其字體(音符等)就是用metaPost所製作的。

個人的經驗,是如果不懂TeX/LaTeX的許多繪圖應用(非常的多…)也沒有關係,只要學會MetaPost,大多數的排版要求都可以滿足。

繪圖是很具體的,可以馬上讓電腦畫出來看結果,所以,只要找出教學文件,如在網路上找「Learning MetaPost by Doing」這個文件,照裡面的習題作上一遍,差不多就學會怎麼使用MetaPost這個語言,畫出非常精準的圖形。

MetaPost語言中,變數形態有:

1.numeric, 為數值形態,在﹣4096 到 4096間的附點數。MetaPost 會把沒有宣告的變數設設為numeric。

2.pair, 其可記錄一個坐標值。如

u:=1cm;

pair A,B; A:=(3u,5u), B:=(2cm,4cm);

則定義了位坐標A(3cm,5cm),B(2cm, 4cm)。如果坐標內無長度單位,則預設為pt (1/72 inch)。

3. path,可記錄一個路徑,如A點到B點、C點的路徑:

path abc[]; abc[0]:=A--B--C; 從A到B到C點(三者均為pair)的直線路徑;

abc[1]:=A..B..C; A到B到C的曲線(貝茲曲線)路徑。

abc[2]:=A..B--C; A到B為曲線,B到C為直線路徑。

abc[3]:=A--B--C--cycle; ABC三點直線封閉路徑。

abc[4]:=(0,0)..(0,2)..(2,0)..cycle;三個點的曲線封閉路徑。可以直接指示pair值。

4.color, 顏色,其為(r, g, b),預設好的顏色有black (0,0,0), white(1,1,1), red (1,0,0), gleen (0,1,0), blue (0,0,1)。rgb的數值在0到1中間。

5.string,字串。在“”中間的內容,或者可以用函數decimal()把運算的內容輸出成字串。另外長字串,可以用btex  ctex 包住的字串,可以由TeX處理。

6.boolean, 布林值。

7.picture, 圖形。Metapost把所有draw指令所形成的圖案以currentpicture變數存起來,可以把currentpicture變數儲存在picture變數中。例如:

picture triangle[];

draw (0,0)--(1,0)--(0,2)--cycle;

triangle[0]:=currentpicture;

currentpicture:=nullpicture;(把圖形清空,以便畫其他圖形)

draw (2,5)--(1,3)--(-2,-5)--cycle;

triangle[1]:=currentpicutre;

currentpicture:=nullpicture;

draw triangle[0];

8.pen, 畫筆。可以用makepen(path)設定畫筆形狀。而makepath(pen)則把pen還原成path。例如:

pen mypen;

mypen:=makepen((0,0)--(3,0)--(3,8)--cycle);

draw (0,0)--(2cm,3cm)--(1.5cm,0.3cm)--(-3cm,-2cm)--cycle withpen mypen;

使用不同的畫筆,畫同樣的path,就可以比較出不同的pen感覺。

9.transform, 這個變數形態,在MetaPost手冊文件(A user's manual of Metapost)中的說明是,它包含了旋轉、縮放、變形、平移等等的內容。transform T它有6個變數(tx, ty, txx, txy, tyx, tyy), 如果對某一點 P(px, py)作 P transformed T 運算, 則運算結果所得的pair值會是

(tx+txxpx+txypy, ty+tyxpx+tyypy)。

其他的變數形態也可以用transform 來處理,如path, picture, pen, transform本身。

( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=paraquat&aid=7787078