计算设定比率矩形大小和位置以最大化与任意表面的交叉

时间:2013-11-02 09:10:04

标签: algorithm geometry mathematical-optimization

这里有一点数学优化。我需要你的帮助,因为大学离我很远......我正在努力寻找一些非常具体的东西。让我们尽可能精确。

  • 设R为任意大小和宽高比的边界矩形(如果需要,假设宽高比不超过2/1和1/2)。

  • 设C为圆,其中心位于R内,至少一个点位于R内。但有些点可能在R之外。

  • 令r为任意纵横比,可能与R纵横比不同。

是否有一个已知的算法来调整和定位宽高比为r的矩形R',它与R完全相交,因此R'n C是最大的(n为交叉,不知道如何在这里输入MathML)

我倾向于认为在多项式时间内可能不存在完美的解决方案,所以很好的近似就能完成这项工作,甚至可以在超时后停止的迭代解决方案。

我希望R和R'不旋转,即它们的边与单位矢量平行或垂直于单位矢量。但是一个解决方案,其中R的两边平行于R'的两边,并且两者都是任意旋转的,这将是完全适合的,那么我将在特定的情况下。

非常感谢,

马修

1 个答案:

答案 0 :(得分:1)

一些可能有用的观察结果:

1)正如亨利在评论中所说的那样,如果R'尽可能大,那么你会获得最佳效果,因此它将具有与R相同的高度或相同的宽度。这只是留下一个参数(一维位置)来优化。“

2)现在你有一个矩形R',可以沿着R的高度或R的宽度滑动。我相信你会发现,如果你移动R'使其中心尽可能靠近圆心,它将覆盖大部分区域。

3)比例r总是宽度/高度,或者它也可以是高度/宽度?换句话说,R'可以旋转以更好地适应R吗?如果是这样,您将需要考虑r != 1的两个答案。要进行比较,您需要计算R'与您的圆的交点区域。这可能是问题中最困难的部分。你给出了圆的半径,还是只知道边的某些部分与R相交?

4)如果R不平行且垂直于轴,您可以应用平移将圆的中心置于原点(0, 0),然后旋转以使{{1}与轴对齐。然后求解找到R角点的坐标,然后应用反向旋转,并反向平移到R'角点的坐标,以找到最终解。