如何解决欧氏距离,计算某物是否在某物附近
目前,我已经使用了一个框架,它具有一个名为distance2D的功能,并且它具有以下描述: 计算欧几里得距离 两点之间(考虑一个 点作为向量对象)。无视 向量的Z分量是 因此快一点。 这就是我的使用方式if(g.getCenterPointGlobal().distance2D(target.getCenterPointGlobal()) > 1)
System.out.println(\"Near\");
我完全不知道欧几里得距离是多少,我想它可以用来计算2点有多远?因为我正在尝试比较2个对象之间的距离,并且如果它们在一定范围内,则我想做点什么。我将如何使用呢?
解决方法
欧几里德距离是两点之间的距离,就好像您在使用标尺一样。我不知道欧几里得空间的尺寸是多少,但是要小心,因为您使用的函数仅考虑了前两个尺寸(x,y)。因此,如果您有一个3维(x,y,z)的空间,它将仅使用前两个(x,y,z)的x(y,z)来计算距离。这可能会给出错误的结果。
据我了解,如果要在两点在某个范围内时触发一些动作,则应执行以下操作:
<!-- language: lang-java -->
if(g.getCenterPointGlobal().distance2D(target.getCenterPointGlobal()) < RANGE)
System.out.println(\"Near\");
, 欧几里德距离的计算是沿着两点之间的一条直线,并以两条线与一个互补点之间的假想等腰三角形的斜边作为度量。此度量是标量,因此它是您计算的一个很好的度量。
, 欧几里得几何是一个坐标系统,其中的空间是平坦的,而不是弯曲的。除非例如要处理映射到球体上的坐标(例如计算地球上两个位置之间的最短移动距离),否则无需关心非欧几里得几何。
我想这个函数将基本上使用毕达哥拉斯定理来计算两个物体之间的距离。但是,正如描述所言,它忽略了Z分量。换句话说,只有两个点具有相同的Z值(也称为\“ depth \”),它才会给出正确的答案。
, 如果要比较距离并节省时间,请不要使用距离本身,而应使用其平方:(x1-x2)^ 2 +(y1-y2)^ 2。不要用sqrt。因此,您的距离将与欧洲大陆的距离完全一样,但是很快。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。