如何在另一个多边形内部拟合多边形

时间:2014-08-07 12:27:07

标签: algorithm

我有两个多边形,如下图所示 左边是"粗多边形"正确的是#34;最终的多边形"

Polygon

现在,我正在寻找适合最终多边形的算法"内部"粗多边形"最佳 比例

  • 您可以 旋转 以及 翻译 "最终多边形"你想要多少。
  • 您无法执行单个 x尺寸 y尺寸缩放。
  • 您只能执行统一缩放( Sx Sy 的值相同)。

2 个答案:

答案 0 :(得分:1)

将右侧多边形缩放0.01。 (几何)

开始旋转它以便绘制圆圈。 (几何)

开始将0.01增加0.01。 (几何)

接触外部多边形时停止。 (几何)

然后将其反弹到相反的方向,直到它再次反弹。 (物理)

一次又一次。(迭代)

直到它无法再次移动/弹跳。(最佳卡住)(物理)

在假局部解决方案的情况下使用模拟退火(您需要全局解决方案)

答案 1 :(得分:0)

这是一个可能的攻击线,通过详尽的试验获得精​​确的解决方案;只是想法。

我的猜测是,当有三个联系人时,可以实现解决方案。我的意思是任何一个多边形的三个顶点接触另一个的边缘或相反。 (如果触点少于三个,则可以使内部多边形膨胀,使其进入第三个触点。)

给定两个任意三角形,找到所有可能的三个接触位置应该不会那么困难。

因此,全局方案是从一个多边形中取出所有顶点/边的三元组,并获取另一个边/顶的所有互补三元组。对于每种组合,暂时考虑您有三角形并找到可能的三接触位置。对于每个候选位置,检查内部多边形是否保持局限于外部多边形。最后,保持允许的解决方案具有最大的比例因子。

对于NM边的多边形,将尝试O(N³M³)个配置,并且包含测试可能与O(NM)一样昂贵。因此,这种方法仅适用于非常小的多边形。