一个java实验题:计算点的距离

Posted eyes++

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个java实验题:计算点的距离相关的知识,希望对你有一定的参考价值。

分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:

  1. Point2D有两个整型成员变量x, y (分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化。
  2. Point2D有一个void型成员方法offset(int a, int b),它可以实现Point2D的平移。
  3. Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z (分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(int x, int y, int z)和Point3D(Point2D p, int z),两者均可实现对Point3D的成员变量x, y, z的初始化。
  4. Point3D有一个void型成员方法offset(int a, int b, int c),该方法可以实现Point3D的平移。
  5. 在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印出他们之间的距离。

Point2D代码:

package subject.point;

public class Point2D {
    // 成员变量
    int x;
    int y;

    // 构造函数初始化成员变量
    public Point2D(int x, int y) {
        this.x = x;
        this.y = y;
    }

    // 点的平移函数
    public void offset(int a, int b)
    {
        this.x += a;
        this.y += b;
    }

    // 拿到坐标
    public int getX() { return x; }
    public int getY() { return y; }
}

Point3D代码:

package subject.point;

public class Point3D {
    // 成员变量
    int x;
    int y;
    int z;

    // 三个参数构造函数
    public Point3D(int x, int y, int z)
    {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    // 两个参数构造函数
    public Point3D(Point2D p, int z)
    {
        this.x = p.x;
        this.y = p.y;
        this.z = z;
    }

    // 点的平移函数
    public void offset(int a, int b, int c)
    {
        this.x += a;
        this.y += b;
        this.z += c;
    }

    // 拿到坐标
    public int getX() { return x; }
    public int getY() { return y; }
    public int getZ() { return z; }

    // 计算平面两点之间的距离
    public static double get2DDistence(Point2D a, Point2D b) {
        double res = Math.sqrt(Math.pow((a.getX() - b.getX()), 2) + Math.pow((a.getY() - b.getY()), 2));
        return res;
    }

    // 计算空间两点之间的距离
    public static double get3DDistence(Point3D a, Point3D b) {
        double res = Math.sqrt(Math.pow((a.getX() - b.getX()), 2) + Math.pow((a.getY() - b.getY()), 2) + Math.pow((a.getZ() - b.getZ()), 2));
        return res;
    }

    // 主函数
    public static void main(String[] args) {
        // 计算平面两点距离
        Point2D p2d1 = new Point2D(1, 2);
        Point2D p2d2 = new Point2D(3, 5);
        System.out.println(get2DDistence(p2d1, p2d2));

        System.out.println('\\n');

        // 计算空间两点距离
        Point3D p3d1 = new Point3D(p2d1, 2);
        Point3D p3d2 = new Point3D(p2d2, 5);
        System.out.println(get3DDistence(p3d1, p3d2));
    }
}

结果:

以上是关于一个java实验题:计算点的距离的主要内容,如果未能解决你的问题,请参考以下文章

(译)计算距离方位和更多经纬度之间的点

[PTA]实验5-4 使用函数计算两点间的距离

java 写出两点之间的距离

Java构造重载求点与原点点与固定点点与点的距离

点的距离 tarjanLCA模板题 P5020

算法题之求二叉树的最大距离