在一个维度中调整 2D 多边形的大小



我们需要使用 c++ 在 X 轴或 Y 轴上重新调整 2D 多边形的大小。我做了一些搜索并读到在一个方向上重新调整大小将导致不可预测的结果,并且是不可行的。我知道这可能适用于非曼哈顿多边形(具有非 90 条边的多边形)。但是,在一个维度中调整曼哈顿多边形或路径的大小时会出现问题吗?例如,如果它是简单的矩形,我应该能够增加宽度或高度。对于曼哈顿多边形或路径,我们可以将其分解为矩形并在一个维度中重新调整每个矩形的大小吗?

我查看了 Boost 多边形和 Clipper,我没有看到任何 API 来调整 X 或 Y 中的多边形大小。是否有任何软件支持此功能或任何实现此目的的指针值得赞赏?

通常,多边形由顶点列表表示。为了调整它们的大小,您应该能够在任一维度上将它们的 x 和 y 值乘以或除以任何比例因子(2x、1/2、5x)。之后,根据您的渲染器,您可能需要将缩放的 x 和 y 值固定为整数。

渲染器可能会为您处理锯齿,因此您唯一关心的是将 x 或 y 值乘以比例因子。许多图形引擎允许访问多边形的顶点,您应该能够很好地乘以这些顶点。

最新更新