arc2d.java
来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 1,091 行 · 第 1/3 页
JAVA
1,091 行
}
/**
* Create a new arc with the given dimensions.
*
* @param x the x coordinate
* @param y the y coordinate
* @param w the width
* @param h the height
* @param start the start angle, in degrees
* @param extent the extent, in degrees
* @param type the arc type: {@link #OPEN}, {@link #CHORD}, or {@link #PIE}
* @throws IllegalArgumentException if type is invalid
*/
public Double(double x, double y, double w, double h, double start, double extent, int type) {
super(type);
this.x = x;
this.y = y;
width = w;
height = h;
this.start = start;
this.extent = extent;
}
/**
* Create a new arc with the given dimensions.
*
* @param r the bounding box
* @param start the start angle, in degrees
* @param extent the extent, in degrees
* @param type the arc type: {@link #OPEN}, {@link #CHORD}, or {@link #PIE}
* @throws IllegalArgumentException if type is invalid
* @throws NullPointerException if r is null
*/
public Double(Rectangle2D r, double start, double extent, int type) {
super(type);
x = r.getX();
y = r.getY();
width = r.getWidth();
height = r.getHeight();
this.start = start;
this.extent = extent;
}
/**
* Return the x coordinate of the bounding box.
*
* @return the value of x
*/
public double getX() {
return x;
}
/**
* Return the y coordinate of the bounding box.
*
* @return the value of y
*/
public double getY() {
return y;
}
/**
* Return the width of the bounding box.
*
* @return the value of width
*/
public double getWidth() {
return width;
}
/**
* Return the height of the bounding box.
*
* @return the value of height
*/
public double getHeight() {
return height;
}
/**
* Return the start angle of the arc, in degrees.
*
* @return the value of start
*/
public double getAngleStart() {
return start;
}
/**
* Return the extent of the arc, in degrees.
*
* @return the value of extent
*/
public double getAngleExtent() {
return extent;
}
/**
* Tests if the arc contains points.
*
* @return true if the arc has no interior
*/
public boolean isEmpty() {
return width <= 0 || height <= 0;
}
/**
* Sets the arc to the given dimensions.
*
* @param x the x coordinate
* @param y the y coordinate
* @param w the width
* @param h the height
* @param start the start angle, in degrees
* @param extent the extent, in degrees
* @param type the arc type: {@link #OPEN}, {@link #CHORD}, or {@link #PIE}
* @throws IllegalArgumentException if type is invalid
*/
public void setArc(double x, double y, double w, double h, double start, double extent, int type) {
this.x = x;
this.y = y;
width = w;
height = h;
this.start = start;
this.extent = extent;
setArcType(type);
}
/**
* Sets the start angle of the arc.
*
* @param start the new start angle
*/
public void setAngleStart(double start) {
this.start = start;
}
/**
* Sets the extent angle of the arc.
*
* @param start the new extent angle
*/
public void setAngleExtent(double extent) {
this.extent = extent;
}
/**
* Creates a tight bounding box given dimensions that more precise than
* the bounding box of the ellipse.
*
* @param x the x coordinate
* @param y the y coordinate
* @param w the width
* @param h the height
*/
protected Rectangle2D makeBounds(double x, double y, double w, double h) {
return new Rectangle2D.Double(x, y, w, h);
}
} // class Double
/**
* This class implements an arc in float precision.
*
* @author Eric Blake <ebb9@email.byu.edu
* @since 1.2
*/
public static class Float extends Arc2D {
/** The x coordinate of the box bounding the ellipse of this arc. */
public float x;
/** The y coordinate of the box bounding the ellipse of this arc. */
public float y;
/** The width of the box bounding the ellipse of this arc. */
public float width;
/** The height of the box bounding the ellipse of this arc. */
public float height;
/** The start angle of this arc, in degrees. */
public float start;
/** The extent angle of this arc, in degrees. */
public float extent;
/**
* Create a new, open arc at (0,0) with 0 extent.
*/
public Float() {
super(OPEN);
}
/**
* Create a new arc of the given type at (0,0) with 0 extent.
*
* @param type the arc type: {@link #OPEN}, {@link #CHORD}, or {@link #PIE}
* @throws IllegalArgumentException if type is invalid
*/
public Float(int type) {
super(type);
}
/**
* Create a new arc with the given dimensions.
*
* @param x the x coordinate
* @param y the y coordinate
* @param w the width
* @param h the height
* @param start the start angle, in degrees
* @param extent the extent, in degrees
* @param type the arc type: {@link #OPEN}, {@link #CHORD}, or {@link #PIE}
* @throws IllegalArgumentException if type is invalid
*/
public Float(float x, float y, float w, float h, float start, float extent, int type) {
super(type);
this.x = x;
this.y = y;
width = w;
height = h;
this.start = start;
this.extent = extent;
}
/**
* Create a new arc with the given dimensions.
*
* @param r the bounding box
* @param start the start angle, in degrees
* @param extent the extent, in degrees
* @param type the arc type: {@link #OPEN}, {@link #CHORD}, or {@link #PIE}
* @throws IllegalArgumentException if type is invalid
* @throws NullPointerException if r is null
*/
public Float(Rectangle2D r, float start, float extent, int type) {
super(type);
x = (float) r.getX();
y = (float) r.getY();
width = (float) r.getWidth();
height = (float) r.getHeight();
this.start = start;
this.extent = extent;
}
/**
* Return the x coordinate of the bounding box.
*
* @return the value of x
*/
public double getX() {
return x;
}
/**
* Return the y coordinate of the bounding box.
*
* @return the value of y
*/
public double getY() {
return y;
}
/**
* Return the width of the bounding box.
*
* @return the value of width
*/
public double getWidth() {
return width;
}
/**
* Return the height of the bounding box.
*
* @return the value of height
*/
public double getHeight() {
return height;
}
/**
* Return the start angle of the arc, in degrees.
*
* @return the value of start
*/
public double getAngleStart() {
return start;
}
/**
* Return the extent of the arc, in degrees.
*
* @return the value of extent
*/
public double getAngleExtent() {
return extent;
}
/**
* Tests if the arc contains points.
*
* @return true if the arc has no interior
*/
public boolean isEmpty() {
return width <= 0 || height <= 0;
}
/**
* Sets the arc to the given dimensions.
*
* @param x the x coordinate
* @param y the y coordinate
* @param w the width
* @param h the height
* @param start the start angle, in degrees
* @param extent the extent, in degrees
* @param type the arc type: {@link #OPEN}, {@link #CHORD}, or {@link #PIE}
* @throws IllegalArgumentException if type is invalid
*/
public void setArc(double x, double y, double w, double h, double start, double extent, int type) {
this.x = (float) x;
this.y = (float) y;
width = (float) w;
height = (float) h;
this.start = (float) start;
this.extent = (float) extent;
setArcType(type);
}
/**
* Sets the start angle of the arc.
*
* @param start the new start angle
*/
public void setAngleStart(double start) {
this.start = (float) start;
}
/**
* Sets the extent angle of the arc.
*
* @param start the new extent angle
*/
public void setAngleExtent(double extent) {
this.extent = (float) extent;
}
/**
* Creates a tight bounding box given dimensions that more precise than
* the bounding box of the ellipse.
*
* @param x the x coordinate
* @param y the y coordinate
* @param w the width
* @param h the height
*/
protected Rectangle2D makeBounds(double x, double y, double w, double h) {
return new Rectangle2D.Float((float) x, (float) y, (float) w, (float) h);
}
} // class Float
} // class Arc2D
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?