在新的 Asymptote 文件中包括现有绘图的部分

在新的 Asymptote 文件中包括现有绘图的部分

各位专家,

我使用 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);

在此处输入图片描述

相关内容