- 线性方程
MetaPost可以解线性方程。处于从z1到z2之间1/3位置的点z3可以表示为:z3=1/3[z1,z2]
过z1和z2两点的直线上任意一点可以表示为:whatever[z1,z2]
点z1也可以用分量表示:(x1,y1)。下面是寻找两直线交点的例子:MetaPost代码 | 生成的图像 |
---|
beginfig(7);
z1=(-1.5cm,0);
z2=(-3.2cm,-2cm);
z3=(2cm,0);
z4=(3cm,-2cm);
z5=whatever[z1,z2]=whatever[z3,z4];
draw z2--z1--z5;
draw z4--z3--z5;
pickup pencircle scaled 4pt;
draw z1; draw z2; draw z3;
draw z4; draw z5;
endfig; | |
- 图像里插入文字和符号
用label可以在图像里插入文字,后缀lft|rt|top|bot|ulft|urt|llft|lrt分别表示左、右、上、下、左上、右上、左下和右下。另外,通过btex...etex还可以插入LaTeX公式命令。beginfig(8);
a=.8in; b=.6in;
z0=(0,0);
z1=-z3=(a,0);
z2=-z4=(0,b);
draw z1..z2..z3..z4..cycle;
draw z1--z0--z2;
label.top("a", .5[z0,z1]);
label.lft("b", .5[z0,z2]);
dotlabel.bot("(0,0)", z0);
endfig; | |
beginfig(9);
numeric u;
u=1cm;
draw (0,2u)--(0,0)--(4u,0);
pickup pencircle scaled 1pt;
draw (0,0){up}
for i=1 upto 8: ..(i/2,sqrt(i/2))*u endfor;
label.lrt(btex $\sqrt x$ etex, (3,sqrt 3)*u);
label.bot(btex $x$ etex, (2u,0));
label.lft(btex $y$ etex, (0,u));
endfig; | |
- 用gnuplot和xfig输出MetaPost文件
常用绘图工具gnuplot和xfig都可以输出MetaPost文件,然后就可以手工编辑,加入LaTeX公式等效果。xfig只要export成MetaPost文件就可以了。gnuplot可以用set terminal mp
set output "filename.mp"
输出为MetaPost文件。
没有评论:
发表评论