计算尽可能多地捕捉物体的最佳位置

我正在尝试使用半径为 R=9 的圆形物体去捕捉尽可能多的物体,我可以找到最多其他物体附近的最佳目标,但是在我物体之间找到最佳位置变得越来越困难。我唯一的选择是计算所有从表格中获取的组合的平均位置,并选择在 R=9 的范围内具有最多物体的位置。

目前我的表格如下:

function ObjectPosition (object)
return x,y
end

table ={
object1, ---Object1 已经是附近有最多其他物体的对象
object2,

object3
....
....
}

表格中的对象数量动态变化,因此我需要几秒钟重新计算一次。

对我来说不可能的事情是得到一个将计算所有平均位置的可能性的函数。感谢大家。从表格返回的值应该是这样的:

    tableTwo = {
[1] = {object1},
[2] = {object1, object3},
[3] = {object1, object2},
[4] = {object1, object2, object3},
[5] = {object2},
[6] = {object2, object3},
[7] = {object3}
}
点赞
用户2656799
用户2656799

如果我理解的正确,对象是一个点,那么只需要检查那些周长上有两个这样的点对象的圆。对于每一对对象,将有两个圆。每个圆都通过它的半径和两个点确定。

为什么这就足够了呢?因为你可以想象任何最佳匹配的圆在不失去任何对象的情况下移动,直到两个对象位于它的边界上。因此,任何最佳解决方案都是基于这个“两个点”规则限制的子集内最佳圆的最佳方案。

2018-03-05 10:27:45