AWT QuadCurve2D类

1 什么是Java AWT QuadCurve2D

QuadCurve2D 类表示 (x,y) 坐标空间中的二次参数曲线段。

2 Java AWT QuadCurve2D的语法

public abstract class QuadCurve2D
   extends Object
      implements Shape, Cloneable

3 Java AWT QuadCurve2D的构造方法

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

4 Java AWT QuadCurve2D的方法

方法 描述
Object clone() 创建与此对象具有相同类和相同内容的新对象。
boolean contains(double x, double y) 测试指定的坐标是否在 Shape 的边界内。
boolean contains(double x, double y, double w, double h) 测试 Shape 的内部是否完全包含指定的矩形区域。
boolean contains(Point2D p) 测试指定的 Point2D 是否在 Shape 的边界内。
boolean contains(Rectangle2D r) 测试 Shape 的内部是否完全包含指定的 Rectangle2D。
Rectangle getBounds() 返回一个完全包围 Shape 的整数 Rectangle。
abstract Point2D getCtrlPt() 返回控制点。
abstract double getCtrlX() 以双精度返回控制点的 X 坐标。
abstract double getCtrlY() 以双精度返回控制点的 Y 坐标。
doublegetFlatness() 返回此 QuadCurve2D 的平坦度或控制点与连接端点的直线的最大距离。
static double getFlatness(double[] coords, int offset) 返回由存储在指示数组中指示索引处的控制点指定的二次曲线的平坦度或控制点与连接端点的直线的最大距离。
static double getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) 返回由指定控制点指定的二次曲线的平坦度或控制点与连接端点的直线的最大距离。
double getFlatnessSq() 返回此 QuadCurve2D 的平坦度的平方,或控制点与连接端点的直线的最大距离。
static double getFlatnessSq(double[] coords, int offset) 返回由存储在指示数组中指示索引处的控制点指定的二次曲线的平坦度或控制点与连接端点的直线的最大距离的平方。
static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) 返回由指定控制点指定的二次曲线的平坦度的平方,或控制点与连接端点的直线的最大距离。
abstract Point2D getP1() 返回起点。
abstract Point2D getP2() 返回终点。
PathIterator getPathIterator(AffineTransform at) 返回定义此 QuadCurve2D 形状边界的迭代对象。
PathIterator getPathIterator(AffineTransform at, double flatness) 返回一个迭代对象,该对象定义此 QuadCurve2D 的展平形状的边界。
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 的内部相交。
void setCurve(double[] coords, int offset) 将此 QuadCurve2D 的端点和控制点的位置设置为指定数组中指定偏移量处的双坐标。
abstract void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2) 将此曲线的端点和控制点的位置设置为指定的双坐标。
void setCurve(Point2D[] pts, int offset) 将此 QuadCurve2D 的端点和控制点的位置设置为指定数组中指定偏移处的 Point2D 对象的坐标。
void setCurve(Point2D p1, Point2D cp, Point2D p2) 将此 QuadCurve2D 的端点和控制点的位置设置为指定的 Point2D 坐标。
void setCurve(QuadCurve2D c) 设置此 QuadCurve2D 的端点和控制点的位置与指定的 QuadCurve2D 中的相同。
static int solveQuadratic(double[] eqn) 求解系数在 eqn 数组中的二次方程,并将非复数根放回同一个数组中,返回根数。
static int solveQuadratic(double[] eqn, double[] res) 求解系数在 eqn 数组中的二次方程,并将非复数根放入 res 数组,返回根数。
static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff) 细分由存储在 src 数组中索引 srcoff 到 srcoff + 5 处的坐标指定的二次曲线,并将生成的两条细分曲线存储到相应索引处的两个结果数组中。
void subdivide(QuadCurve2D left, QuadCurve2D right) 细分此 QuadCurve2D 并将生成的两条细分曲线存储为左右曲线参数。
static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right) 细分由 src 参数指定的二次曲线,并将生成的两条细分曲线存储到左右曲线参数中。

5 Java AWT QuadCurve2D的例子

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

package com.yiidian;

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

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) {
      QuadCurve2D shape = new QuadCurve2D.Double();
      shape.setCurve(250D,250D,100D,100D,200D,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("QuadCurve2D.Curve", 100, 120);  
   }
}

输出结果为:

热门文章

优秀文章