MetaPost是贝尔实验室的John Hobby基于
Knuth的METAFONT设计的一种绘图语言。它适于绘制精确的数学图形,可以方便的生成EPS文件,供插入到LaTeX文档中。
Linux下可以用
mpost命令处理编辑好的MetaPost文件,生成EPS文件。生成的EPS文件可以作为图片插入到LaTeX文件中,但是没办法直接用gv等PostScript浏览器直接观看,
这里有关于这个问题的讨论和解决办法。另外,可以用
mptopdf命令代替
mpost,可以解决这个问题,而且可以直接生成PDF文件。
下面是MetaPost的简介。
beginfig...endfig之间是绘图命令。实际使用中,好几个
beginfig...endfig可以放在一个文件里,文件最后需要有一个
end命令。
- 画直线和曲线
MetaPost代码 | 生成的图像 |
---|
beginfig(1);
z0=(0,0);
z1=(3cm,2cm);
z2=(2cm,4.5cm);
z3=(0.5cm,3.5cm);
z4=(1.5cm,2.5cm);
draw z0--z1--z2--z3--z4;
endfig; | |
beginfig(2);
u=1cm;
z0=(0,0);
z1=(3u,2u);
z2=(2u,4.5u);
z3=(0.5u,3.5u);
z4=(1.5u,2.5u);
draw z0..z1..z2..z3..z4;
endfig; | |
beginfig(3);
z0=(0,0);
z1=(3cm,2cm);
z2=(2cm,4.5cm);
z3=(0.5cm,3.5cm);
z4=(1.5cm,2.5cm);
draw z0..z1..z2..z3--z4--cycle;
endfig; | |
- 表示方向的dir和用于循环的for
dir a提供了与x轴夹角为a度的单位矢量。dir 0相当于right,dir 90相当于up,类似的方向矢量还有left和down。beginfig(4);
draw (
for i=0 upto 7:
80dir (135i)--
endfor
cycle);
endfig; | |
beginfig(5);
for a=0 upto 7:
draw (0,0){dir 45}..{dir 10a}(6cm,0);
endfor
endfig; | |
- 改变画笔粗细
beginfig(6);
u=1cm;
draw (-u,0)--(u,0);
draw (0,-u)--(0,u);
pickup pencircle scaled 3;
draw (-u,u)--(u,u)--(u,-u)--(-u,-u)--cycle;
endfig; | |
没有评论:
发表评论