日期:2014-05-20  浏览次数:20844 次

新手求助—关于Java计算三维空间的点与点之间的距离
昨晚看视频讲到这样一道题目:
定义一个点(Point)类,用来表示三维空间中的点(有三个坐标)。要求如下:
1、可以生成具有特定坐标的点对象。
2、提供可以设置三个坐标的方法。
3、计算点与点的距离。
4、编写程序验证上述三条。

实例:
class Point {
double x, y, z;

Point(double _x, double _y, double _z) {
x = _x;
y = _y;
z = _z;
}

void setX(double _x) {
x = _x;
}

double getDistance(Point p) {
return (x - p.x)*(x - p.x) + (y - p.y)*(y - p.y) + (z - p.z)*(z - p.z);
}

}

public class TestPoint {
public static void main(String[] args) {
Point p = new Point(1.0, 2.0, 3.0);
Point p1 = new Point(0.0, 0.0, 0.0);
System.out.println(p.getDistance(p1));

p.setX(5.0);
System.out.println(p.getDistance(new Point(1.0, 1.0, 1.0)));
}
}

想问一下这里double getDistance(Point p) {
return (x - p.x)*(x - p.x) + (y - p.y)*(y - p.y) + (z - p.z)*(z - p.z);
}
这个方法中的怎么直接使用了X,而不是p1.x-p2.x的形式,还有这个X不需要调用就可以使用吗?不是太理解,大家帮帮忙啊!

------解决方案--------------------
这里x就是this.x,即当前Point对象的x。你的距离公式有问题,要开平方的。
------解决方案--------------------
请牢记:勾三股四玄五