平面上的一组点

时间:2018-11-05 04:19:55

标签: java plane

我正在寻找一种想法,以用Java开发一种方法来计算平面中可以进行尽可能长距离的通信的最大点数,并用“ D”表示,每个点均被视为对象带有两个坐标的“ X”和“ Y”表示为2个整数。

我发现,如果我选择平面中的任何一个点,则可以确定所选点周围圆的半径“ D”,该半径内包含的所有中点都可以与目标点通信

我的问题: 是否存在使用Java的更好方法?

如果您有任何建议或想法,将不胜感激。

1 个答案:

答案 0 :(得分:1)

我可能无法完全理解您的问题,但是这是我的工作方式,如何找到距网格上所选点D距离以内的所有点。

可能有一种更快的方法,但这就是我想到的。基本的暴力破解方法是走到每个点,并使用距离公式来检查它是否可以与所选点通信。您可以通过限制需要检查的点来改善这一点。

如果您选择的点是(10,10)且D = 5,则没有必要检查诸如(0,0)之类的点,因为它显然太远了。因此,您可以在边长为D * 2的简单正方形中限制要检查的点。

例如,如果您选择的点是(10,10)且D = 5,则每个潜在的可通信点都在具有角(5,5),(5,15),(15,5),( 15、5)。