Java 计算某物是否靠近某物的欧几里德距离

Java 计算某物是否靠近某物的欧几里德距离,java,math,Java,Math,目前我正在使用一个框架,它有一个名为distance2D的函数,它有以下描述: 计算欧氏距离 两点之间(考虑 点作为矢量对象)。漠视 向量和的Z分量为 这样就快了一点 这就是我使用它的方式 if(g.getCenterPointGlobal().distance2D(target.getCenterPointGlobal()) > 1) System.out.println("Near"); 我完全不知道欧几里德距离是什么,我想它可以用来计算2个点有多远?因为我试图比较两个物体之间

目前我正在使用一个框架,它有一个名为distance2D的函数,它有以下描述:

计算欧氏距离 两点之间(考虑 点作为矢量对象)。漠视 向量和的Z分量为 这样就快了一点

这就是我使用它的方式

if(g.getCenterPointGlobal().distance2D(target.getCenterPointGlobal()) > 1)
   System.out.println("Near");

我完全不知道欧几里德距离是什么,我想它可以用来计算2个点有多远?因为我试图比较两个物体之间的距离,如果它们在某个范围内很近,我想做点什么。我怎样才能使用它呢?

欧几里德几何是一个坐标系,在这个坐标系中,空间是平坦的,而不是弯曲的。你不需要关心非欧几里德几何,除非你正在处理映射到球体上的坐标,比如计算地球上两个地方之间的最短旅行距离

我想这个函数基本上用来计算两个物体之间的距离。然而,正如描述所说,它忽略了Z分量。换句话说,只有当两个点具有相同的Z值(也称为“深度”)时,它才会给出正确答案。

通过追踪两个点之间的直线并测量为两条直线与互补点之间的假想等腰三角形的斜边来计算。此度量是标量,因此它是计算的良好度量。

是两个点之间的距离,就像使用标尺一样。我不知道欧几里德空间的维数是多少,但请小心,因为您使用的函数只考虑了前两个维度(x,y)。因此,如果您有一个具有3个维度(x,y,z)的空间,它将仅使用前两个维度(x,y/x,y/z)来计算距离。这可能会给出错误的结果

据我所知,如果你想在两点在某个范围内时触发一些动作,你应该:

<!-- language: lang-java -->
if(g.getCenterPointGlobal().distance2D(target.getCenterPointGlobal()) < RANGE)          
    System.out.println("Near");

if(g.getCenterPointGlobal().distance2D(target.getCenterPointGlobal())
如果要比较距离并节省时间,请不要使用距离本身,而是使用距离的平方:(x1-x2)^2+(y1-y2)^2。不要接受sqrt。所以,你们的距离和欧几里得距离一样,但很快

对于非欧几里德几何,有更多的常见情况。例如,球体表面的二维几何图形(我想到地球)。@Buhb True,这是一个更好的例子。