![Metapost - 边界框](https://linux22.com/image/262908/Metapost%20-%20%E8%BE%B9%E7%95%8C%E6%A1%86.png)
我想用 Metapost 和 Context 制作一系列图像。我希望图像的高度和宽度固定(像一个框架),并将用 Metapost 绘制的图片置于该框架的中心。那么,有没有办法用 Metapost 使边界值固定?
答案1
您至少可以使用bbox
metapost 方面的命令,即边界框的缩写:
\def\myBoundingBox#1{\scale[width=3cm,height=1cm]{\useMPgraphic{#1}}}
\startMPdefinitions
bboxmargin := 1cm; % note: the context-side scaling affects this, naturally
\stopMPdefinitions
\startuseMPgraphic{first}
z0 = (0.5cm,1.5cm) ; z1 = (2.5cm,2.5cm) ;
z2 = (6.5cm,0.5cm) ; z3 = (3.0cm,1.5cm) ;
pickup pencircle xscaled 2mm yscaled 4mm rotated 30 ;
draw z0..z1..z2..z3..z0..cycle withcolor lightgray ;
draw bbox currentpicture withpen pencircle scaled 1pt;
\stopuseMPgraphic
\starttext
Nothing is impossible, the word itself says “I’m possible”!
---~Audrey Hepburn
\myBoundingBox{first}
\stoptext
然后,线宽将根据图形需要缩小/放大的程度而有所不同。因此,在 ConTeXt 端进行框架设计更有意义,这样至少框架线宽会保持不变(框架填充也是如此)。
答案2
我有点晚了,但这是可能的。
path P;
dx=-5cm;
dy=3cm;
P=(-dx, -dy)--(dx, -dy)--(dx, dy)--(-dx, dy)--cycle;
setbounds currentpicture to P;
将当前图片的边界框定义为P。