【发布时间】:2016-04-01 11:18:46
【问题描述】:
我正在尝试围绕一组 8 个 2D 点拟合一个矩形,同时尝试最小化覆盖区域。
例子:
矩形可以缩放和旋转。但是它需要保持一个矩形。
我的第一种方法是暴力破解每个可能的旋转,使矩形尽可能接近,然后计算覆盖面积。最好的拟合是面积最小的旋转。
但是,这听起来并不是最好的解决方案。
有没有更好的方法来做到这一点?
【问题讨论】:
-
那么,您的蛮力解决方案的复杂性是什么?凸包上有 O(n) 条边。即使你使用蛮力矩形收缩包装,你最终也会得到 O(n^2),实际上是 th(n^1.5)。
-
我希望找到更好的解决方案,而不是蛮力方法
-
@MrSmith42 - 我的直觉告诉我相反;凸包的一个边缘将成为最小矩形的一部分。不过还不能证明...
-
@MrSmith42 我会尝试将边界框与前两点对齐。
-
所以...计算凸包;对于凸包方向 mod 90 度之间的每个角度范围,矩形由相同的四个点界定。求对应面积函数的最小值(其形式事先已知)。取最低的最小值。