Asymptote是一個參照MetaPost而開發的新的繪圖語言,所以它也和TeX排版工作密切相關。
在LaTeX中,有asymptote套件可以使LaTeX產生asymptote語言的圖形。利用現在的TeX編輯程式,如TeXShop,使用asymptote套件編釋產生圖形後方便瀏覧,做為繪圖工具也十分的好用。做好的圖形,可以在一般的LaTeX文件中用圖形套件引入文檔中。
TeXShop裝好後,在
~/Library/TeXShop/Engines/Inactive/Asymptote
目錄中有Asymptote.engine這個檔案,把它copy到
~/Library/TeXShop/Engines
中就行了,這樣了執行TeXShop後,「program」欄位中就會有Asymptote引擊可以選用,這樣要看編排繪圖效果,就按下「Typeset」就可以了,所寫的圖形,會加工成為pdf檔。
和MetaPost相比,它的優點:
1.支援的數值範圍更大。MetaPost只能支援-4096至4096之間的實數;Asymptote支援C, C++, Java的浮點數值。所以繪圖程式運算時的自由度更大。
2.支援LaTeX最新發展的XeLaTeX,能做出高相容性的圖形。中文的支援不在話下,而且是使用作業系統中的所有字型。
3. 提供了許多函數,幫助繪圖工作。2D,3D繪圖都有許多好用的函數工具。
4. 支援C, C++, Java語法。對多數的寫程式者而言,asymptote語言比較熟悉,較易於上手。
在LaTeX文件中,可以這樣做,看一下這個例子:
\documentclass{article}
\usepackage{asymptote}
\begin{document}
\begin{asy}
settings.tex="xelatex";
usepackage("xeCJK");
texpreamble("\setCJKmainfont{STHeiti}");
size(5cm,0); //寛度為5cm的圖
guide a= (0,0)--(1,0)--(1,1)--(0,1)--cycle;
guide b=dir(90)--dir(210)--dir(330)--cycle;
draw(a,red+0.5mm);
draw(shift(-0.5,-0.5)*b,blue+0.3mm);
label("四邊形",(0.5,0.5));
label("三角形",(-0.5,-0.5),blue);
\end{asy}
\end{document}
圖中插入的中文是系統內的華文黑體中文字型。圖形中各點坐標不加入單位,而是到最後,asymptote會自動把圖形放大到size()指令所要求的大小。
有興趣的朋友,可以參考asymptote 套件的說明文件,網路上也能找到中文的教學文章,學習起來並不會太困難。
限會員,要發表迴響,請先登入
- 2樓. 重殼蝸牛2014/11/14 16:27
實用的圖形都是曲線 向量法為貝茲線
這軟體有此類函數 還是要用多邊形變出來?
寫程式我算外行 只略懂一些 這軟體主要用途是影像處理開發工具?
謝謝來訪。
這個是繪圖語言,最後經過編釋後形成向量圖形,預設會輸出成pdf檔。
它是在TeX排版系統中的一個附屬,TeX本身雖然也有繪圖環境,可以畫出簡單的圖形,但如果圖形複雜一點,就可以用到這些繪圖語言,產生適合的圖形。
Asymptote的曲線是三次貝茲曲線,本身提供了許多函數對這些曲線作運算,如算交點等等,用它產生一些科學圖形,也十分的方便。嚴格來說,它不是開發工具,而是排版工作的輔助工具,產生排版文件時需要的說明圖形。他雖然能處理部分3D圖形,但功能尚弱,主要還是在2D的繪圖上面。
paraquat 於 2014/11/17 16:54回覆 - 1樓. 重殼蝸牛2014/11/14 16:15
很有趣 老兄的興趣很廣泛