通过偏移将多边形缩小到特定区域

时间:2013-11-26 23:58:47

标签: polygon offset area

我有一个2D多边形,我希望通过特定偏移(A)缩小以匹配原始多边形的特定面积比(R)。 是否存在针对此类问题的公式或算法?我对三角形/四边形的简单解决方案感兴趣,但也对复杂多边形的解决方案感兴趣。

我附上一张图片作为解释。原始多边形偏移A(每个边缘等距离)。必须选择A以使新多边形具有特定区域。在这个例子中,它应该是初始多边形的一半面积。

enter image description here

1 个答案:

答案 0 :(得分:0)

你的问题是非常特殊的,但这里有一种方法可以做你想要的,假设我明白你在问什么。请注意,这可能会导致不必要的位置偏移,您必须以某种方式处理。不知道你想要缩放多边形的点,这些解决方案假设最简单的情况。

所有这些公式中平方根的原因是面积倾向于随线性缩放的平方而变化,就像体积与线性缩放的立方体一样。

对于一般多边形:

A = sqrt(R)
for each point in polygon:
    point.x := point.x * A
    point.y := point.y * A

对于圈子:

A = sqrt(R)
circle.radius := circle.radius * A

对于宽度和高度方面的矩形:

A = sqrt(R)
rect.w := rect.w * A
rect.h := rect.h * A