我有一组不同大小的矩形。每个矩形在二维平面上都有一个锚点,矩形的中心应该放在该锚点上。矩形不应重叠,矩形的中心应尽可能靠近其锚点。因此,如果rectangle_i的中心是向量c_i并且其锚点是向量a_i,那么目标函数将是min(sum_i((c_i-a_i)^ 2))。我正在寻找一种在O(n)中尽可能接近最优解的算法。
矩形无法旋转。
问题的输入是:
输出应该是矩形的位置,即每个矩形的中心坐标。
在下面的示例中,x标记矩形的中心和o锚点:
+-----------+
| |
+-----------+| x |
| || o |
| x |+-----------+
| o | +-------------+
+-----------+ | o |
+---------+| x |
| o || |
| x |+-------------+
| |
+---------+