如何让 Asymptote 自动调整绘图比例以适应宽度

如何让 Asymptote 自动调整绘图比例以适应宽度

在工作中数学文献,我意识到我想要做的是让 Asymptote 布局并“绘制”它的图形,然后让它计算它的宽度,然后重新调整 X 和 Y 尺寸向下(或向上)以适应它需要呈现的列的宽度。

想过该怎么办吗?

答案1

下面是使用手册“框架和图片”部分中的以下函数将图片调整为特定尺寸的示例。

frame pic.fit(real xsize=pic.xsize, real ysize=pic.ysize, bool keepAspect=pic.keepAspect);

以下代码创建一个名为“p”的图片,然后将其添加到当前图片两次,一次按定义添加,一次适合 1.5 英寸宽。黑色方块的宽度均为 1.5 英寸。

unitsize(1inch);

picture p; // create a new picture named "p"
filldraw(p, unitcircle, palered, 8+red); // draw a circle on "p"
label(p, "Test", (0,0), red); // create a label on "p"

add(shift(-2,0)*p);  // add "p" to the currentpicture
draw(shift(-2,0)*scale(1.5)*shift(-0.5,-0.5)*unitsquare);

add(p.fit(72*1.5)); // add "p" to the currentpicture, but fit to 1.5 inches wide
draw(scale(1.5)*shift(-0.5,-0.5)*unitsquare);

在此处输入图片描述

笔记:

  1. “fit”函数中使用的“72”比例用于将英寸转换为像素。我不太明白为什么需要它,但确实需要。
  2. “适合”功能不会减少红色圆圈的粗细。
  3. “适合”功能不会减小字体大小。
  4. 如果标签是最左边或最右边的对象,“适合”功能似乎无法正常工作,如下所示。

在此处输入图片描述

摘要:创建图片“p”,在图片“p”上绘图,然后使用函数添加图片“p” add(p.fit(72*width));

相关内容