我需要创建一个类来计算两点之间的距离。我被卡住了,我是一个完全的初学者。这是我的类(class):
package org.totalbeginner.tutorial;
public class Point {
public double x;
public double y;
Point(double xcoord, double ycoord){
this.x = xcoord;
this.y = ycoord;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
}
第二课。
package org.totalbeginner.tutorial;
public class Line {
double x;
double y;
Point p1 = new Point(2.0,2.0);
Point p2 = new Point(4.0,4.0);
Point mp = new Point(x,y);
public void midpoint() {
x = (p1.getX() + p2.getX()) / 2;
y = (p1.getY() + p2.getY()) / 2;
}
}
我不确定如何在两个定义的点之间获取点对象(中点)。
我可以创建点对象,但我不确定如何通过位于这两个点对象之间的 midpoint()
方法返回点对象。
最佳答案
平面上两点 (x1,y1) 和 (x2,y2) 之间的距离为:
____________________
/ 2 2
\/ (y2-y1) + (x2-x1)
但是,如果您想要的只是两点的中点,您应该将中点函数更改为:
public Point midpoint (Point p1, Point p2) {
return new Point ((p1.getX() + p2.getX()) / 2, (p1.getY() + p2.getY()) / 2);
}
这将返回一个全新的点对象,其点设置为给定两点的中间(无需关心任何其他数学)。而且,由于你的第二类是一条线,你只需要两个端点来描述它,所以我会做一些小改动。
第一个Point.java
:
class Point {
double x, y;
Point (double xcoord, double ycoord) {
this.x = xcoord;
this.y = ycoord;
}
public double getX() { return x; }
public double getY() { return y; }
}
然后Line.java
:
public class Line {
Point p1, p2;
Line (Point point1, Point point2) {
this.p1 = point1;
this.p2 = point2;
}
public Point midpoint() {
return new Point ((p1.getX()+p2.getX())/2, (p1.getY()+p2.getY())/2);
}
public double abstand() {
return Math.sqrt(
(p1.getX() - p2.getX()) * (p1.getX() - p2.getX()) +
(p1.getY() - p2.getY()) * (p1.getY() - p2.getY())
);
}
static public void main (String args[]) {
Line s = new Line (new Point(2.0, 2.0), new Point(5.0, 6.0));
Point mp = s.midpoint();
System.out.println ("Midpoint = (" + mp.getX() + "," + mp.getY() + ")");
double as = s.abstand();
System.out.println ("Length = " + as);
}
}
这两个文件在编译和运行时使用端点 2,2
和 5,6
(经典 3/4/5 直角三角形的斜边),生成正确的:
Midpoint = (3.5,4.0)
Length = 5.0
关于java - 计算两点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/929773/