java - 我试图找到两点之间的距离
问题描述
我已经做了几天了,我似乎无法弄清楚如何找到两点之间的距离以及如何制作包含和重叠
除了包含和重叠之外,我已经完成了所有的 setter 和 getter 对象
这是具有预期输出的测试参数 https://i.stack.imgur.com/HJMYG.png
这是我所做的代码
public class Question03 {
public static void main(String[] args) {
Circle c1 = new Circle(new Point(0, 0), 1.0);
System.out.println(c1.getArea());
Circle c2 = new Circle(new Point(1, 0), 1.0);
System.out.println(c2.getArea());
System.out.println(c1.getCenter().distance(c2.getCenter()));
System.out.println(c1.contains(new Point(0, 0.5)));
System.out.println(c1.overlaps(c2));
Circle c3 = new Circle(new Point(0, 4), 1.0);
System.out.println(c3.contains(new Point(0, 0)));
System.out.println(c3.overlaps(c1));
public class Circle {
Point center;
double radius;
Circle (Point center, double radius){
this.center=center;
this.radius=radius;
}
public Point getCenter() {
return this.center;
}
public double getRadius(){
return this.radius;
}
public Point setCenter(){
return this.center;
}
public double setRadius(){
return this.radius;
}
public double getArea(){
double area = Math.PI * radius * radius;
return area;
}
public double getPerimeter(){
double perimeter = Math.PI * (radius * 2);
return perimeter;
}
public boolean contains(Point p){
return contains;
}
public boolean overlaps(Circle c){
return overlaps;
}
}
public class Point {
double x;
double y;
Point(double x, double y){
this.x=x;
this.y=y;
}
public double getX(){
return this.x;
}
public double getY(){
return this.y;
}
public double setX(){
return this.x;
}
public double setY(){
return this.y;
}
public double distance(Point p){
double distance = Math.sqrt((-x)*(-x) + (-y)*(-y));
return distance;
}
}
我不知道在此之后该怎么做,我真的被卡住了,我在互联网上找不到任何关于此的内容,请帮助:(
解决方案
你想要的距离公式是d=√((x_2-x_1)²+(y_2-y_1)²)
。尝试这个:
public double distance(Point p) {
double xDiff = p.getX() - this.x;
double yDiff = p.getY() - this.y;
double xPow = xDiff * xDiff;
double yPow = yDiff * yDiff;
double distance = Math.sqrt(xPow + yPow);
return distance;
}
这是使用 Math 类的hypot 方法的速记版本。
public double distance(Point p) {
return Math.hypot(p.getX() - this.x, p.getY() - this.y);
}
推荐阅读
- maven - 是否可以看到实际执行的 pom.xml,包括父依赖项/插件?
- node.js - 目的:想要验证用户输入模式并检查节点中的实时数据
- python - 在 Pandas 中 read_excel 时修剪工作表名称
- vue.js - 如何在 vuetify 组件上使用 router-link “to” 道具?
- jenkins-pipeline - 如何在 Jenkins 声明式管道代码中使用验证字符串参数插件?
- javascript - Node.js 无法在另一个文件夹中找到文件
- c# - C# 为什么我可以通过属性访问非静态类的方法和属性,而无需先创建该类的实例?
- r - 拆分数据框列表中的列 R
- python - 将张量流数据集输入模型
- scala - ZIO环境建设