java - 平面上的一组点

标签 java plane

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

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

我的问题: 在 Java 中存在更好的方法吗?

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

最佳答案

我可能没有完全理解您的问题,但这是我对如何找到网格上距您所选点 D 距离内的所有点的看法。

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

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

例如,如果您选择的点是 (10, 10) 且 D = 5,则每个潜在的可传播点都在角为 (5, 5)、(5, 15)、(15, 5)、( 15, 5).

关于java - 平面上的一组点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53148293/

相关文章:

java - 为什么静态变量在finally期间没有按照应有的方式运行

java - foursquare API 和 java

java - 将ArrayList插入MySQL

java - Shiro:即使现有 session 已经通过其他领域进行了身份验证,也强制进行第二个领域身份验证

opengl - 计算具有 4 个顶点的面法线

android - OpenGL ES : Texture a plane

unicode - 在 Unicode 字符串中,平面是如何表示的(或者不是)?

java - 在java struts中抛出自定义错误消息

math - 如何在 GNU Octave 中绘制 2 个平面

将 2d 多边形最佳分割(即镶嵌/分区)到更小的多边形的算法?