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 + -
显示快捷键?