AWT Line2D类

1 什么是Java AWT Line2D

Line2D 类表示 (x,y) 坐标空间中的线段。

2 Java AWT Line2D的语法

public abstract class Line2D
   extends Object
      implements Shape, Cloneable

3 Java AWT Line2D的构造方法

构造方法 描述
protected Line2D() 这是一个不能直接实例化的抽象类。

4 Java AWT Line2D的方法

方法 描述
Object clone() 创建与此对象具有相同类的新对象。
boolean contains(double x, double y) 测试指定坐标是否在此 Line2D 的边界内。
boolean contains(double x, double y, double w, double h) 测试此 Line2D 的内部是否完全包含指定的直角坐标集。
boolean contains(Point2D p) 测试给定的 Point2D 是否在此 Line2D 的边界内。
boolean contains(Rectangle2D r) 测试此 Line2D 的内部是否完全包含指定的 Rectangle2D。
Rectangle getBounds() 返回一个完全包围 Shape 的整数 Rectangle。
abstract Point2D getP1() 返回此 Line2D 的起始 Point2D。
abstract Point2D getP2() 返回此 Line2D 的结束 Point2D。
PathIterator getPathIterator(AffineTransform at) 返回定义此 Line2D 边界的迭代对象。
PathIterator getPathIterator(AffineTransform at, double flatness) 返回定义此展平 Line2D 边界的迭代对象。
abstract double getX1() 以双精度返回起点的 X 坐标。
abstract double getX2() 以双精度返回终点的 X 坐标。
abstract double getY1() 以双精度返回起点的 Y 坐标。
abstract double getY2() 以双精度返回终点的 Y 坐标。
boolean intersects(double x, double y, double w, double h) 测试 Shape 的内部是否与指定矩形区域的内部相交。
boolean intersects(Rectangle2D r) 测试 Shape 的内部是否与指定的 Rectangle2D 的内部相交。
boolean intersectsLine(double x1, double y1, double x2, double y2) 测试从 (x1,y1) 到 (x2,y2) 的线段是否与该线段相交。
boolean intersectsLine(Line2D l) 测试指定的线段是否与该线段相交。
static boolean linesIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) 测试从 (x1,y1) 到 (x2,y2) 的线段是否与从 (x3,y3) 到 (x4,y4) 的线段相交。
double ptLineDist(double px, double py) 返回点到这条线的距离。
static double ptLineDist(double x1, double y1, double x2, double y2, double px, double py) 返回点到线的距离。
double ptLineDist(Point2D pt) 返回从 Point2D 到这条线的距离。
double ptLineDistSq(double px, double py) 返回点到这条线的距离的平方。
static double ptLineDistSq(double x1, double y1, double x2, double y2, double px, double py) 返回点到线的距离的平方。
double ptLineDistSq(Point2D pt) 返回从指定 Point2D 到这条线的距离的平方。
double ptSegDist(double px, double py) 返回点到该线段的距离。
static double ptSegDist(double x1, double y1, double x2, double y2, double px, double py) 返回点到线段的距离。
double ptSegDist(Point2D pt) 返回从 Point2D 到该线段的距离。
double ptSegDistSq(double px, double py) 返回点到该线段的距离的平方。
static double ptSegDistSq(double x1, double y1, double x2, double y2, double px, double py) 返回点到线段距离的平方。
double ptSegDistSq(Point2D pt) 返回从 Point2D 到该线段的距离的平方。
int relativeCCW(double px, double py) 返回指定点 (px,py) 相对于该线段所在位置的指示符。
static int relativeCCW(double x1, double y1, double x2, double y2, double px, double py) 返回指定点 (px,py) 相对于从 (x1,y1) 到 (x2,y2) 的线段所在位置的指示符。
int relativeCCW(Point2D p) 返回指定 Point2D 相对于该线段所在位置的指示符。
abstract void setLine(double x1, double y1, double x2, double y2) 将此 Line2D 的端点位置设置为指定的双坐标。
void setLine(Line2D l) 将此 Line2D 的端点位置设置为与指定 Line2D 的端点位置相同。
void setLine(Point2D p1, Point2D p2) 将此 Line2D 的端点位置设置为指定的 Point2D 坐标。

5 Java AWT Line2D的例子

让我们看一个简单的Java AWT Line2D类示例。

package com.yiidian;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Line2D;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("一点教程网:Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      Line2D shape = new Line2D.Double();
      shape.setLine(250D,250D,150D,150D);  
      Graphics2D g2 = (Graphics2D) g;
      g2.draw (shape);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g2.setFont(font);
      g.drawString("Welcome to yiidian.com", 50, 70);
      g2.drawString("Line2D.Line", 100, 120);  
   }
}

输出结果为:

热门文章

优秀文章