使用java1.编写一个线段类MyLine 要求如下: (1)主要属性有两个端点:e1、e2,类型为Point。 (2)编写构造方法,如MyLine(Point p1,Point p2)。 (3)编写成员方法。 例如: a.检查线段是否位于第一象限check()。 b.求线段(√(x1-x2)2+(y1-y1)2)的长度length()。c.判断两条直线是否相交(另一线段作为参数)。(参考API中Line2D类) d.求一点到该线段(或延长线)的距离。(参考API中Line2D类)
时间: 2024-02-06 09:12:55 浏览: 70
好的,我会尽力回答你的问题。下面是关于MyLine类的Java代码:
```java
import java.awt.Point;
import java.awt.geom.Line2D;
public class MyLine {
private Point e1; // 第一个端点
private Point e2; // 第二个端点
// 构造方法
public MyLine(Point p1, Point p2) {
e1 = p1;
e2 = p2;
}
// 检查线段是否位于第一象限
public boolean check() {
return e1.x >= 0 && e1.y >= 0 && e2.x >= 0 && e2.y >= 0;
}
// 求线段长度
public double length() {
return Math.sqrt(Math.pow(e1.x - e2.x, 2) + Math.pow(e1.y - e2.y, 2));
}
// 判断两条直线是否相交(另一线段作为参数)
public boolean intersects(MyLine other) {
return Line2D.linesIntersect(e1.x, e1.y, e2.x, e2.y, other.e1.x, other.e1.y, other.e2.x, other.e2.y);
}
// 求一点到该线段(或延长线)的距离
public double distance(Point p) {
return Line2D.ptSegDist(e1.x, e1.y, e2.x, e2.y, p.x, p.y);
}
}
```
以上是一个简单的MyLine类,包含了要求中的几个成员方法。其中,check()方法用于检查线段是否位于第一象限;length()方法用于求线段长度;intersects()方法用于判断两条直线是否相交;distance()方法用于求一点到该线段的距离。
需要注意的是,这里用到了Java AWT包中的Point类和Line2D类,用于表示点和线段。如果需要测试该类的功能,可以编写一个简单的测试程序。
阅读全文