【问题标题】:How to find best fit of convex polygon into other convex polygon如何找到凸多边形与其他凸多边形的最佳拟合
【发布时间】:2015-07-21 19:08:50
【问题描述】:

我正在寻找一种算法来计算将凸多边形 (P1) 定位到另一个凸多边形 (P2) 内所需的平移、旋转和缩放。我需要它来返回“最佳拟合”,这意味着 P1 完全包含在 P2 中并且具有可能的最大面积。

考虑下图:http://i.imgur.com/ckaIIv7.png

右侧 (P1) 的黑色多边形需要最佳放置在左侧 (P2) 的蓝色多边形内。

我在网上找到了很多关于多边形包含算法的书面论文,但这些算法是为了确定 是否多边形可以适应另一个多边形,因为它具有平移和旋转它们。

我正在寻找的算法应该总是产生结果,因为它包括缩放多边形 P1 的能力。 我知道这种算法可以产生多个最优答案,这没关系。

有什么帮助吗?

【问题讨论】:

    标签: algorithm geometry polygon convex-polygon best-fit


    【解决方案1】:

    好的,如果没有人有更好的想法,我想给出一个不太好的算法。

    假设您有带有p 顶点的P1 和带有q 顶点的P2,并且您想将P1 放入P2

    您已经找到了描述如何确定 P1 是否可以放入 P2 的文章。例如this articleO(pq^2) 时间内给出一个算法。如果你知道P1p2 都是凸的,我不确定它是否还能更快。

    所以,从一个大数字a 开始,这样a(P1) 就不能放在(P2) 中,然后对a 的值进行二分搜索。

    这不是很聪明,但至少它给出了答案。如果其他人发布了更好的答案,请忽略我的...

    【讨论】:

    • 似乎这会产生一个只有一个额外的对数因子的最佳解决方案。我看不出它有什么不好的地方
    • 我自己不是很喜欢,因为这个问题本质上是离散的,理论上可以准确计算出“真”的答案。所以例如如果多边形的所有顶点都有有理坐标,那么答案也应该是有理数,而我的算法只能用实数来近似。
    • 这是相关的:stackoverflow.com/questions/5440688/…。另请注意,最佳拟合可能需要不合理的缩放(例如,将单位“钻石”转换为单位平方),因此通常近似值是算法可以做到的最佳值。
    • Ja,我关于理性的说法不太正确。它应该是坐标的一些代数函数。
    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 2016-10-27
    • 2014-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 2012-08-04
    相关资源
    最近更新 更多