Metapost - 边界框

Metapost - 边界框

我想用 Metapost 和 Context 制作一系列图像。我希望图像的高度和宽度固定(像一个框架),并将用 Metapost 绘制的图片置于该框架的中心。那么,有没有办法用 Metapost 使边界值固定?

答案1

您至少可以使用bboxmetapost 方面的命令,即边界框的缩写:

\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。

相关内容