(1)定义一个Point类,其属性包括点的坐标,提供计算两点之间距离的方法; (2)定义一个圆形类,其属性包括圆心和半径; (3)创建两个圆形对象,提示用户输入圆心坐标和半径,判断两个圆是否相交,并输出结果。
时间: 2024-09-06 08:07:27 浏览: 66
详解js根据百度地图提供经纬度计算两点距离
以下是一个简单的示例,展示了如何定义一个Point类,一个Circle类,并实现计算两点之间距离的方法,以及如何创建两个圆形对象来判断它们是否相交。
1. Point类的定义:
```java
public class Point {
private double x;
private double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
// 计算当前点和另一个点之间的距离
public double distanceTo(Point other) {
return Math.sqrt(Math.pow(this.x - other.x, 2) + Math.pow(this.y - other.y, 2));
}
}
```
2. Circle类的定义:
```java
public class Circle {
private Point center;
private double radius;
public Circle(Point center, double radius) {
this.center = center;
this.radius = radius;
}
public Point getCenter() {
return center;
}
public double getRadius() {
return radius;
}
// 判断一个点是否在圆内
public boolean contains(Point p) {
return center.distanceTo(p) <= radius;
}
// 判断两个圆是否相交
public boolean intersects(Circle other) {
return center.distanceTo(other.getCenter()) <= (radius + other.getRadius());
}
}
```
3. 创建两个圆形对象并判断是否相交:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个圆的圆心坐标(x y)和半径:");
double x1 = scanner.nextDouble();
double y1 = scanner.nextDouble();
double r1 = scanner.nextDouble();
Circle circle1 = new Circle(new Point(x1, y1), r1);
System.out.println("请输入第二个圆的圆心坐标(x y)和半径:");
double x2 = scanner.nextDouble();
double y2 = scanner.nextDouble();
double r2 = scanner.nextDouble();
Circle circle2 = new Circle(new Point(x2, y2), r2);
boolean result = circle1.intersects(circle2);
System.out.println("两个圆是否相交:" + result);
}
}
```
在这个示例中,我们首先定义了一个Point类,它有x和y两个坐标属性,并提供了一个计算与另一点之间距离的方法。接着定义了一个Circle类,它有中心点和半径属性,并提供了判断一个点是否在圆内以及两个圆是否相交的方法。在主方法中,我们通过用户输入创建了两个圆形对象,并利用Circle类提供的intersects方法判断它们是否相交。
阅读全文