交互绘制模式
默认为postscript坐标,单位Big Point(1bp=1/72inch)
cmd命令哈输入asy进入交互绘制模式。
绘制一条线段,
draw((0,0)--(100,100));
draw((0,0)--(100,0)--(100,100)--(0,100)--circle);
以postscript坐标灰质不方便,放缩一个单位正方向
size(101,101);
draw((0,0)--(1,0)--(1,1)--(0,1)--circle);
设定用户坐标
unitsize(1cm);
绘制单位正方形
draw(unitsquare);
设定不同的x与y尺寸
size(1cm,2cm);
在Asymptote中很容易增加标签;用双引号引起的LATEX字符串、坐标和可选的对齐方向来设定标签:
size(0,3cm); draw(unitsquare); label("$A$",(0,0),SW); label("$B$",(1,0),SE); label("$C$",(1,1),NE); label("$D$",(0,1),NW);
一般地,一条路径由一列复数(或其他路径)确定,它们以--相连来表示直线段或..表示三次
样条。设定终止结点cycle建立一条平滑连回初始结点的环形路径,如在这里对单位圆的近似(精确
到0:06%以内):
pathunitcircle=E..N..W..S..cycle;
三次样条曲线的每个内结点可以指定一个前缀或后缀的方向{dir}:复数dir的方向分别设定该
曲线在此结点处,入向或出向切线的方向。外结点仅能在向内一边指定方向限定。
---连接符是..tension atleast infinity..的缩写,而&连接符连结两条路径,并去除第一条路径的第最后一个结点(它一般应该与第二条路径的第一个结点重合)。
一条相连的Asymptote路径,与一条PostScript的subpath(子路径)等价。
^^二元运算符,它要求画笔从左边路径的终点移动到右边路径的起点,可以用来将若干Asymptote路径聚集到一个path[]数组中(等价于一条PostScript路径):
size(0,100);
path unitcircle=E..N..W..S..cycle;
path g=scale(2)*unitcircle;
filldraw(unitcircle^^g,evenodd+yellow,black);
这里PostScript奇偶(evenodd)填充规制设定仅在两个圆之间界定的区域会被填充。在这个例
子中,如果小心地变换路径的方向,可以使用默认的零卷绕数(zerowinding)填充规则得到同样的效
果:
filldraw(unitcircle^^reverse(g),yellow,black);