CubicCurve2D
介绍 (Introduction)
CubicCurve2D类在(x,y)坐标空间中声明了三次参数曲线段。
类声明
以下是java.awt.geom.CubicCurve2D类的声明:
public abstract class CubicCurve2D
extends Object
implements Shape, Cloneable
类构造函数
SN | 构造函数和描述 |
---|---|
1 | protected CubicCurve2D() 这是一个无法直接实例化的抽象类。 |
类方法
SN | 方法和描述 |
---|---|
1 | Object clone() 创建与此对象相同的类的新对象。 |
2 | boolean contains(double x, double y) 测试指定的坐标是否在Shape的边界内。 |
3 | boolean contains(double x, double y, double w, double h) 测试Shape的内部是否完全包含指定的矩形区域。 |
4 | boolean contains(Point2D p) 测试指定的Point2D是否在Shape的边界内。 |
5 | boolean contains(Rectangle2D r) 测试Shape的内部是否完全包含指定的Rectangle2D。 |
6 | Rectangle getBounds() 返回完全包含Shape的整数Rectangle。 |
7 | abstract Point2D getCtrlP1() 返回第一个控制点。 |
8 | abstract Point2D getCtrlP2() 返回第二个控制点。 |
9 | abstract double getCtrlX1() 以double精度返回第一个控制点的X坐标。 |
10 | abstract double getCtrlX2() 以double精度返回第二个控制点的X坐标。 |
11 | abstract double getCtrlY1() 以double精度返回第一个控制点的Y坐标。 |
12 | abstract double getCtrlY2() 以double精度返回第二个控制点的Y坐标。 |
13 | double getFlatness() 返回此曲线的平坦度。 |
14 | static double getFlatness(double[] coords, int offset) 返回由指定索引处的指示数组中存储的控制点指定的三次曲线的平坦度。 |
15 | static double getFlatness(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2) 返回由指示的控制点指定的三次曲线的平坦度。 |
16 | double getFlatnessSq() 返回此曲线平坦度的平方。 |
17 | static double getFlatnessSq(double[] coords, int offset) 返回由指定索引处的指示数组中存储的控制点指定的三次曲线的平坦度的平方。 |
18 | static double getFlatnessSq(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2) 返回由指示的控制点指定的三次曲线的平坦度的平方。 |
19 | abstract Point2D getP1() 返回起点。 |
20 | abstract Point2D getP2() 返回结束点。 |
21 | PathIterator getPathIterator(AffineTransform at) 返回定义形状边界的迭代对象。 |
22 | PathIterator getPathIterator(AffineTransform at, double flatness) 返回定义展平形状边界的迭代对象。 |
23 | abstract double getX1() 以double精度返回起始点的X坐标。 |
24 | abstract double getX2() 以double精度返回结束点的X坐标。 |
25 | abstract double getY1() 以double精度返回起始点的Y坐标。 |
26 | abstract double getY2() 以double精度返回结束点的Y坐标。 |
27 | boolean intersects(double x, double y, double w, double h) 测试Shape的内部是否与指定矩形区域的内部相交。 |
28 | boolean intersects(Rectangle2D r) 测试Shape的内部是否与指定Rectangle2D的内部相交。 |
29 | void setCurve(CubicCurve2D c) 将此曲线的终点和控制点的位置设置为与指定的CubicCurve2D中的相同。 |
30 | void setCurve(double[] coords, int offset) 将此曲线的终点和控制点的位置设置为指定数组中指定偏移处的双坐标。 |
31 | abstract void setCurve(double x1, double y1, double ctrlx1, double ctrly1, double ctrlx2, double ctrly2, double x2, double y2) 将此曲线的终点和控制点的位置设置为指定的双坐标。 |
32 | void setCurve(Point2D[] pts, int offset) 将此曲线的端点和控制点的位置设置为指定数组中指定偏移处的Point2D对象的坐标。 |
33 | void setCurve(Point2D p1, Point2D cp1, Point2D cp2, Point2D p2) 将此曲线的终点和控制点的位置设置为指定的Point2D坐标。 |
34 | static int solveCubic(double[] eqn) 求解系数在eqn数组中的三次方,并将非复数根放回同一个数组中,返回根数。 |
35 | static int solveCubic(double[] eqn, double[] res) 求解其系数在eqn数组中的三次方,并将非复数根放入res数组中,返回根数。 |
36 | void subdivide(CubicCurve2D left, CubicCurve2D right) 细分此三次曲线并将得到的两条细分曲线存储到左右曲线参数中。 |
37 | static void subdivide(CubicCurve2D src, CubicCurve2D left, CubicCurve2D right) 细分src参数指定的三次曲线,并将得到的两条细分曲线存储到左右曲线参数中。 |
38 | static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff) 将索引srcoff到(srcoff + 7)中存储在src数组中的坐标指定的三次曲线细分,并将得到的两条细分曲线存储到相应索引处的两个结果数组中。 |
方法继承
该类继承以下类中的方法:
java.lang.Object
CubicCurve2D示例
使用您选择的任何编辑器创建以下java程序,例如D:/ 》 AWT 》 com 》 iowiki 》 gui 》
AWTGraphicsDemo.javapackage com.iowiki.gui;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
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) {
CubicCurve2D shape = new CubicCurve2D.Float();
shape.setCurve(250F,250F,20F,90F,140F,100F,350F,330F);
Graphics2D g2 = (Graphics2D) g;
g2.draw (shape);
Font font = new Font("Serif", Font.PLAIN, 24);
g2.setFont(font);
g.drawString("Welcome to IoWiki", 50, 70);
g2.drawString("CubicCurve2D.Curve", 100, 120);
}
}
使用命令提示符编译程序。 转到D:/ 》 AWT
D:\AWT>javac com\iowiki\gui\AWTGraphicsDemo.java
如果没有错误,那意味着编译成功。 使用以下命令运行程序。
D:\AWT>java com.iowiki.gui.AWTGraphicsDemo
验证以下输出