调整一维中{2D}多边形的大小

时间:2016-03-03 00:16:29

标签: c++ algorithm geometry polygon computational-geometry

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

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

1 个答案:

答案 0 :(得分:1)

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

渲染器可能会为您处理锯齿,因此您唯一需要考虑的是将x或y值乘以缩放系数。许多图形引擎允许访问多边形的顶点,你应该能够很好地倍增。