使用java编写一个线段类MyLine 要求如下: (1)主要属性有两个端点:e1、e2,类型为Point。 (2)编写构造方法,如MyLine(Point p1,Point p2)。 (3)编写成员方法。 例如: a.检查线段是否位于第一象限check()。 b.求线段的长度length()。() c.判断两条直线是否相交(另一线段作为参数)。(参考API中Line2D类) d.求一点到该线段(或延长线)的距离。(参考API中Line2D类)
时间: 2024-02-06 17:12:37 浏览: 90
好的,以下是一个基本的 MyLine 类的实现,实现了您提出的要求:
```java
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
public class MyLine {
private Point2D e1;
private Point2D e2;
public MyLine(Point2D p1, Point2D p2) {
this.e1 = p1;
this.e2 = p2;
}
public boolean check() {
return e1.getX() >= 0 && e1.getY() >= 0 && e2.getX() >= 0 && e2.getY() >= 0;
}
public double length() {
return e1.distance(e2);
}
public boolean intersects(MyLine other) {
return Line2D.linesIntersect(e1.getX(), e1.getY(), e2.getX(), e2.getY(), other.e1.getX(), other.e1.getY(), other.e2.getX(), other.e2.getY());
}
public double distance(Point2D p) {
return Line2D.ptSegDist(e1.getX(), e1.getY(), e2.getX(), e2.getY(), p.getX(), p.getY());
}
}
```
注意,这里使用了 Java 中的 `Point2D` 和 `Line2D` 类,这些类是 Java 标准库中提供的,用于表示点和线段,并提供了一些便捷的方法,例如 `distance` 和 `linesIntersect`。`MyLine` 类中的 `check` 方法是根据第一象限的定义来判断线段是否位于第一象限,即线段的两个端点都在第一象限内。`intersects` 方法使用了 Java 标准库中的 `linesIntersect` 方法来判断两条线段是否相交。`distance` 方法使用了 Java 标准库中的 `ptSegDist` 方法来计算一点到该线段的距离。
阅读全文