这里有一点数学优化。我需要你的帮助,因为大学离我很远......我正在努力寻找一些非常具体的东西。让我们尽可能精确。
设R为任意大小和宽高比的边界矩形(如果需要,假设宽高比不超过2/1和1/2)。
设C为圆,其中心位于R内,至少一个点位于R内。但有些点可能在R之外。
令r为任意纵横比,可能与R纵横比不同。
是否有一个已知的算法来调整和定位宽高比为r的矩形R',它与R完全相交,因此R'n C是最大的(n为交叉,不知道如何在这里输入MathML)
我倾向于认为在多项式时间内可能不存在完美的解决方案,所以很好的近似就能完成这项工作,甚至可以在超时后停止的迭代解决方案。
我希望R和R'不旋转,即它们的边与单位矢量平行或垂直于单位矢量。但是一个解决方案,其中R的两边平行于R'的两边,并且两者都是任意旋转的,这将是完全适合的,那么我将在特定的情况下。
非常感谢,
马修
答案 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'
角点的坐标,以找到最终解。