Java Draw Circle With Double
The Java 2D API provides several classes that define common geometric objects such as points, lines, curves, and rectangles. These geometry classes are part of the java.awt.geom
package.
The PathIterator
interface defines methods for retrieving elements from a path.
The Shape
interface provides a set of methods for describing and inspecting geometric path objects. This interface is implemented by the GeneralPath
class and other geometry classes.
All examples represented in this section create geometries past using java.awt.geom
package and then render them by using the Graphics2D
form. To begin you obtain a Graphics2D
object, for case by casting the Graphics
parameter of the pigment()
method.
public void pigment (Graphics thou) { Graphics2D g2 = (Graphics2D) g; ... }
Point
The Indicate
form creates a signal representing a location in (x,y) coordinate space. The subclasses Point2D.Float
and Point2D.Double
provide correspondingly float and double precision for storing the coordinates of the point.
//Create Point2D.Double Point2D.Double indicate = new Point2D.Double(10, y);
To create a point with the coordinates 0,0 y'all utilize the default constructor, Point2D.Double()
.
You can use the setLocation
method to set the position of the signal as follows:
-
setLocation(double 10, double y)
– To set the location of the point- defining coordinates as double values. -
setLocation(Point2D p)
– To set up the location of the point using the coordinates of some other point.
Also, the Point2D
course has methods to calculate the distance between the electric current indicate and a point with given coordinates, or the altitude between two points.
Line
The Line2D
class represents a line segment in (x, y) coordinate space. The Line2D. Bladder
and Line2D.Double
subclasses specify lines in float and double precision. For example:
// draw Line2D.Double g2.draw(new Line2D.Double(x1, y1, x2, y2));
This class includes several setLine()
methods to define the endpoints of the line.
Alternatively, the endpoints of the line could exist specified by using the constructor for the Line2D.Float
class every bit follows:
-
Line2D.Float(float X1, float Y1, bladder X2, bladder Y2)
-
Line2D.Float(Point2D p1, Point2D p2)
Use the Stroke object in the Graphics2D
class to define the stroke for the line path.
Curves
The java.awt.geom
packet enables you to create a quadratic or cubic curve segment.
Quadratic Curve Segment
The QuadCurve2D
course implements the Shape
interface. This form represents a quadratic parametric curve segment in (x, y) coordinate space. The QuadCurve2D.Float
and QuadCurve2D.Double
subclasses specify a quadratic bend in float and double precision.
Several setCurve
methods are used to specify two endpoints and a control point of the curve, whose coordinates tin be defined straight, by the coordinates of other points and by using a given array.
A very useful method, setCurve(QuadCurve2D)
, sets the quadratic bend with the aforementioned endpoints and the control point as a supplied curve. For example:
// create new QuadCurve2D.Float QuadCurve2D q = new QuadCurve2D.Float(); // draw QuadCurve2D.Float with set coordinates q.setCurve(x1, y1, ctrlx, ctrly, x2, y2); g2.describe(q);
Cubic Bend Segment
The CubicCurve2D
form also implements the Shape
interface. This form represents a cubic parametric curve segment in (x, y) coordinate infinite. CubicCurve2D.Float
and CubicCurve2D.Double
subclasses specify a cubic bend in float and double precision.
The CubicCurve2D
course has like methods for setting the curve as the QuadraticCurve2D
class, except with a second control betoken. For example:
// create new CubicCurve2D.Double CubicCurve2D c = new CubicCurve2D.Double(); // draw CubicCurve2D.Double with set coordinates c.setCurve(x1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2); g2.draw(c);
Rectangle
Classes that specify primitives represented in the following example extend the RectangularShape
class, which implements the Shape
interface and adds a few methods of its own.
These methods enables you to get information about a shape's location and size, to examine the center point of a rectangle, and to set the premises of the shape.
The Rectangle2D
class represents a rectangle divers by a location (10, y) and dimension (w x h). The Rectangle2D.Float
and Rectangle2D.Double
subclasses specify a rectangle in float and double precision. For example:
// draw Rectangle2D.Double g2.draw(new Rectangle2D.Double(x, y, rectwidth, rectheight));
The RoundRectangle2D
form represents a rectangle with rounded corners defined by a location (x, y), a dimension (west x h), and the width and height of the corner arc. The RoundRectangle2D.Float
and RoundRectangle2D.Double
subclasses specify a round rectangle in float and double precision.
The rounded rectangle is specified with following parameters:
- Location
- Width
- Height
- Width of the corner arc
- Height of the corner arc
To set the location, size, and arcs of a RoundRectangle2D
object, use the method setRoundRect(double a, double y, double westward, double h, double arcWidth, double arcHeight)
. For instance:
// describe RoundRectangle2D.Double g2.draw(new RoundRectangle2D.Double(10, y, rectwidth, rectheight, ten, ten));
Ellipse
The Ellipse2D
class represents an ellipse divers past a bounding rectangle. The Ellipse2D.Bladder
and Ellipse2D.Double
subclasses specify an ellipse in float and double precision.
Ellipse is fully defined by a location, a width and a height. For example:
// depict Ellipse2D.Double g2.draw(new Ellipse2D.Double(x, y, rectwidth, rectheight));
Arc
To draw a piece of an ellipse, yous use the Arc2D
form. This class represents an arc defined by a bounding rectangle, a beginning angle, an angular extent, and a closure type. The Arc2D.Float
and Arc2D.Double
subclasses specify an arc in float and double precision.
The Arc2D
class defines the post-obit three types of arcs, represented past corresponding constants in this form: Open, PIE and CHORD.
Several methods ready the size and parameters of the arc:
- Directly, by coordinates
- By supplied
Point2D
andDimension2D
- By copying an existing
Arc2D
Too, you tin utilize the setArcByCenter
method to specify an arc from a center signal, given by its coordinates and a radius.
// draw Arc2D.Double g2.draw(new Arc2D.Double(x, y, rectwidth, rectheight, 90, 135, Arc2D.Open));
The ShapesDemo2D.coffee
code case contains implementations of all described geometric primitives. For more data nearly classes and methods represented in this section, come across the java.awt.geom
specification.
Source: https://docs.oracle.com/javase/tutorial/2d/geometry/primitives.html