asymptote

交互绘制模式

默认为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);

Asymptote使用标准的罗盘方向E=(1,0)、N=(0,1)、NE=unit(N+E)以及ENE=unit(E+NE)等等,并在Asymptote基本模块plain中定义有复数(pair)up、down、right和left。具有名为E的局部变量的用户可以通过在前面缀以定义它的模块名来访问罗盘方向E:plain.E。

一般地,一条路径由一列复数(或其他路径)确定,它们以--相连来表示直线段或..表示三次
样条。设定终止结点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);

你可能感兴趣的:(asymptote)