gpt4 book ai didi

java - 如何计算具有3个坐标点的类的两个对象之间的距离?

转载 作者:行者123 更新时间:2023-12-01 07:32:31 24 4
gpt4 key购买 nike

这是我在 3DObj.java 中的 3DObj 类。

public class 3DObj {
private double a;
private double b;
private double c;
public double dist;

public 3DObj() {

}

public 3DObj(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;

}
public double getA() {
return a;
}
public double getB() {
return b;
}
public double getC() {
return c;
}

public double dist(3DObj p1, 3DObj p2, 3DObj p3) {
dist = Math.sqrt(Math.pow((p2.a - p1.a), 2)
+ Math.pow((p2.b - p1.b), 2)
+ Math.pow((p2.c - p1.c), 2));
return dist;
}

public double getDist() {
return dist;
}
}

下面是 3DObjTest.java 中我的 3DObjTest 类

public class 3DObjTest {
public static void main(String[] args) {
3DObjTest 3DObj1 = new 3DObj(2.5, 2.5, 2.5);
3DObjTest 3DObj2 = new 3DObj(2.0, 2.2, 3.0);
System.out.println("Distance is " + 3DObj1.getDist());
}
}

但它只显示 0.0,而不是任何其他数字。

如何计算 3DObj1 和 3DObj2 之间的距离?

最佳答案

您永远不会将 dist 变量分配给 dist() 函数的结果。该变量自动分配为 0.0,因此它显示为 0.0。

总而言之,您对此类的设置不好,因为 dist 不是您的对象的特征。计算距离的函数应该在另一个类中创建,该类将处理 3DObj 组上的各种操作。

另一个解决方案是通过 object1.dist(object2) 计算此 3DObj 到另一个 3DObj 的距离。在这种情况下,您无论如何都不需要 dist 变量(同样,它不是一个对象的特征)。

关于java - 如何计算具有3个坐标点的类的两个对象之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16131336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com