Line2D.Double
时间: 2024-02-04 22:03:06 浏览: 65
常见的D图形类-JAVA课件scnu
`Line2D.Double` 是 Java 中用于表示二维坐标系中的一条直线的类。它是 `Line2D` 类的一个子类,可以表示一条线段,也可以表示一条无限长的直线。
`Line2D.Double` 类有四个属性,分别是 `x1`、`y1`、`x2` 和 `y2`,表示直线的两个端点的坐标。这些坐标可以是浮点数或整数,取决于使用的构造方法。
以下是 `Line2D.Double` 类的构造方法:
```java
public Line2D.Double(double x1, double y1, double x2, double y2)
public Line2D.Double(Point2D p1, Point2D p2)
public Line2D.Double(Line2D l)
```
其中,第一个构造方法接受四个参数,分别是起点和终点的 x、y 坐标。第二个构造方法接受两个 `Point2D` 对象,分别表示起点和终点。第三个构造方法接受一个 `Line2D` 对象,用于复制另一条线段。
以下是 `Line2D.Double` 类的常用方法:
- `getX1()`、`getY1()`、`getX2()`、`getY2()`:获取线段的两个端点的坐标。
- `setLine(double x1, double y1, double x2, double y2)`:设置线段的起点和终点的坐标。
- `setLine(Point2D p1, Point2D p2)`:设置线段的起点和终点。
- `setLine(Line2D l)`:设置线段为另一条线段的副本。
- `getP1()`、`getP2()`:获取线段的两个端点,返回 `Point2D` 对象。
- `setP1(Point2D p)`、`setP2(Point2D p)`:设置线段的起点或终点。
- `intersectsLine(Line2D l)`:判断当前线段是否与另一条线段有交点。
- `getBounds2D()`:获取线段的边界矩形,返回 `Rectangle2D` 对象。
示例代码:
```java
import java.awt.geom.Line2D;
public class Line2DExample {
public static void main(String[] args) {
Line2D line = new Line2D.Double(0, 0, 10, 10); // 创建一条从 (0, 0) 到 (10, 10) 的线段
System.out.println("Start point: (" + line.getX1() + ", " + line.getY1() + ")");
System.out.println("End point: (" + line.getX2() + ", " + line.getY2() + ")");
System.out.println("Length: " + line.getP1().distance(line.getP2()));
}
}
```
输出:
```
Start point: (0.0, 0.0)
End point: (10.0, 10.0)
Length: 14.142135623730951
```
阅读全文