在工作中数学文献,我意识到我想要做的是让 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);
笔记:
- “fit”函数中使用的“72”比例用于将英寸转换为像素。我不太明白为什么需要它,但确实需要。
- “适合”功能不会减少红色圆圈的粗细。
- “适合”功能不会减小字体大小。
- 如果标签是最左边或最右边的对象,“适合”功能似乎无法正常工作,如下所示。
摘要:创建图片“p”,在图片“p”上绘图,然后使用函数添加图片“p” add(p.fit(72*width));
。