各位专家,
我使用 Asymptote 创建了一个绘图。现在我想在新的 .asy 文件中包括此绘图的特定部分,以使其更大并添加一些额外的线条。有没有聪明的方法可以做到这一点,还是我必须复制粘贴代码并省略所有我不想显示的线条?
我举一个简单的例子来说明一下。原始绘图如下所示:
unitsize(1cm);
size(10cm);
draw(unitcircle);
draw((-5, 0) -- (5, 0));
draw((0, -5) -- (0, 5));
我想将此代码包含在新文件中并指定仅显示右上部分。
感谢您的建议!
答案1
您可以使用clip
中的函数asymptote
。您为clip
命令指定一个路径,之前在该路径之外绘制的所有内容都将被剪掉。size
这里不需要该命令。
unitsize(1cm);
// size(10cm);
draw(unitcircle);
draw((-5, 0) -- (5, 0));
draw((0, -5) -- (0, 5));
clip(shift(-0.5,-0.5)*scale(5.5)*unitsquare);
draw(shift(3,3)*unitcircle, red); // new stuff after clipping
现在,如果您想将此部分绘制得更大,只需编辑命令unitsize
。
unitsize(2cm);
//size(10cm);
draw(unitcircle);
draw((-5, 0) -- (5, 0));
draw((0, -5) -- (0, 5));
clip(shift(-0.5,-0.5)*scale(5.5)*unitsquare);
draw(shift(3,3)*unitcircle, red);