字體:小 中 大 | |
|
|
2013/07/23 12:51:40瀏覽710|回應0|推薦2 | |
虛線的用法,則使用dashed,如 draw path dashed [dash pattern] dash pattern則定義了數種: evenly 是一般的虛線,withdots則是由點形成的虛線。evenly和withdots都是型態為圖形的常數,evenly是長度3 bp 的線段和3 bp 的空白所組成;而withdots 則是間隔為2.5 bp的點所組成。MetaPost提供了dashpattern這個宏來產生虛線的種類: evenly = dashpattern(0n 3 off 3); withdots = dashpattern(off 2.5 on 0 off 2.5); dashpattern(on/off)這個宏可以用on/off指令來輸出所需要的虛線,如果需要長度 2pt,間隔 3pt 的虛線,則是dashpattern (on 2pt off 3pt) 即可。 虛線內容為圖形檔,所以它們可以用 scaled 和 shifted等運算做出變化: 箭頭是用drawarrow等命令所繪出的,但箭頭的組成是由二個環境變數決定,ahlength 是箭頭的長度,ahangle 是箭頭的角度。預設值是 ahlength=4bp; ahangle=45;MetaPost定義了arrowhead的運算元: vardef arrowhead expr p = save q, e; path q; pair e; e = point length p of p; q = gobble(p shifted -e cutfater makepath(pencircle scaled 2ahlength)) cuttings; (q rotated .5ahangle & reverse q rotated -.5ahangle-cycle) shifted e enddef; arrowhead運算元就是把path末端的點 e 為圓心,半徑為 ahlength的圓為界,把path 末端一段 path 切下來,存成變數 q。然後再把末端點在(0,0)上的q做出旋轉運算後,形成的箭頭形狀封閉path平移回到 e傳回。如下圖所示: 所以如果對原來的箭頭不滿意,想要自已定義自已喜歡的箭頭,則可以參考MetaPost手冊中的範例: 轉折與端點的形狀 端點的形狀,由環境變數linecap來控制。有三種型式:rounded, butt; squared。這個也是MetaPost手冊的範例: rounded是pen形狀如何就是如何; butt 則是把多出的部分完全切除;squared則是延伸出去和rounded一樣長度,但為方形。 轉折部位,則由環境變數linejoin控制,其內容有三:rounded, beveled, mitered。這個也是MetaPost手冊的範例: 可看出rounded是用原來pen的形狀放在角平分線圓滑的效果;beveled是沿外角平分線切斷;mitered是延長直到相交,但如果轉折角度越接近180度,則這個尖角延長越長。所以必須由環境變數miterlimit限制,由下例可看出,miterlimit 是角尖尖距與線寛的比例,如果不超過可以形成尖角,否則以beveled方式處理,這個也是MetaPost手冊的範例: |
|
( 興趣嗜好|電腦3C ) |