Algorithm 如何找到凸多边形到其他凸多边形的最佳拟合

Algorithm 如何找到凸多边形到其他凸多边形的最佳拟合,algorithm,geometry,polygon,convex-polygon,best-fit,Algorithm,Geometry,Polygon,Convex Polygon,Best Fit,我正在寻找一种算法来计算将一个凸多边形P1放置在另一个凸多边形P2内所需的平移、旋转和缩放。我需要它返回最佳拟合,这意味着P1完全包含在P2中,并且具有可能的最大面积 考虑下图: 右侧P1上的黑色多边形需要以最佳方式放置在左侧P2上的蓝色多边形内 我在网上找到了很多关于多边形包容算法的书面文章,但这些算法是为了确定多边形是否能够嵌入另一个多边形,因为它具有平移和旋转多边形的能力 我正在寻找的算法应该总是产生一个结果,因为它包括缩放多边形P1的能力。 我知道这种类型的算法可以产生多个最优答案,这没

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

考虑下图:

右侧P1上的黑色多边形需要以最佳方式放置在左侧P2上的蓝色多边形内

我在网上找到了很多关于多边形包容算法的书面文章,但这些算法是为了确定多边形是否能够嵌入另一个多边形,因为它具有平移和旋转多边形的能力

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


有什么帮助吗?

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

假设P1有p个顶点,P2有q个顶点,你想把P1放在P2里面

您已经找到了描述如何确定P1是否适合P2的文章。例如,给出了Opq^2时间的一个算法。我不确定如果你知道P1和p2都是凸的,它是否还能更快

因此,从一个大的数字a开始,这样aP1就不能放入P2中,然后对a的值进行二进制搜索


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

这似乎只产生了一个附加对数因子的最优解。我不知道它有什么不好,我自己也不太喜欢它,因为这个问题本质上是离散的,理论上真正的答案可以精确计算出来。例如,如果多边形的所有顶点都有有理坐标,那么答案也应该是有理数,而我的算法只能用实数来近似它。这是相关的:。还请注意,最佳拟合可能需要非理性缩放,例如,单位菱形到单位平方,因此一般来说,近似是算法所能做到的最佳选择。是的,我关于理性的陈述不太正确。它应该是坐标的代数函数。