org.hibernate.spatial.jts

## Class Circle

• ```public class Circle
extends Object```
This class provides operations for handling the usage of Circles and arcs in Geometries.

• ### Nested Class Summary

Nested Classes
Modifier and Type Class and Description
`class ` `Circle.Arc`
An arc, or circle segment
• ### Constructor Summary

Constructors
Modifier Constructor and Description
`protected ` `Circle()`
Creates a circle whose center is at the origin and whose radius is 0.
` ` ```Circle(com.vividsolutions.jts.geom.Coordinate point1, com.vividsolutions.jts.geom.Coordinate point2, com.vividsolutions.jts.geom.Coordinate point3)```
Three point method of circle construction.
` ` ```Circle(com.vividsolutions.jts.geom.Coordinate center, double radius)```
Create a circle with a defined center and radius
` ` ```Circle(double xCenter, double yCenter, double radius)```
Create a circle using the x/y coordinates for the center.
` ` ```Circle(double xLeft, double yUpper, double xRight, double yLower)```
Creates a circle based on bounding box.
` ` ```Circle(double x1, double y1, double x2, double y2, double x3, double y3)```
Three point method of circle construction.
• ### Method Summary

All Methods
Modifier and Type Method and Description
`Circle.Arc` ```createArc(com.vividsolutions.jts.geom.Coordinate p1, com.vividsolutions.jts.geom.Coordinate p2, com.vividsolutions.jts.geom.Coordinate p3)```
Creates an arc through the specified points
`double` `distanceFromCenter(com.vividsolutions.jts.geom.Coordinate p)`
Returns the distance the point is from the center of the circle
`boolean` `equals(Object o)`
`double` `getAngle(com.vividsolutions.jts.geom.Coordinate p)`
Returns the angle of the point from the center and the horizontal line from the center.
`com.vividsolutions.jts.geom.Coordinate` `getCenter()`
`com.vividsolutions.jts.geom.Coordinate` `getPoint(double angle)`
Returns the coordinate on the circle at the specified angle
`double` `getRadius()`
`int` `hashCode()`
`com.vividsolutions.jts.geom.Coordinate[]` ```linearizeArc(com.vividsolutions.jts.geom.Coordinate p1, com.vividsolutions.jts.geom.Coordinate p2, com.vividsolutions.jts.geom.Coordinate p3, double tolerence)```
Given 2 points defining an arc on the circle, interpolates the circle into a collection of points that provide connected chords that approximate the arc based on the tolerance value.
`static com.vividsolutions.jts.geom.Coordinate[]` ```linearizeArc(double x1, double y1, double x2, double y2, double x3, double y3)```
Given 2 points defining an arc on the circle, interpolates the circle into a collection of points that provide connected chords that approximate the arc based on the tolerance value.
`static com.vividsolutions.jts.geom.Coordinate[]` ```linearizeArc(double x1, double y1, double x2, double y2, double x3, double y3, double tolerence)```
Given 2 points defining an arc on the circle, interpolates the circle into a collection of points that provide connected chords that approximate the arc based on the tolerance value.
`static com.vividsolutions.jts.geom.Coordinate[]` ```linearizeCircle(double x1, double y1, double x2, double y2, double x3, double y3)```
Given a circle defined by the 3 points, creates a linearized interpolation of the circle starting and ending on the first coordinate.
`void` ```move(double x, double y)```
Moves the circle to a new center
`static double` `normalizeAngle(double angle)`
Returns an angle between 0 and 2*PI.
`void` ```shift(double deltaX, double deltaY)```
Shifts the center of the circle by delta X and delta Y
`static double` ```subtractAngles(double a1, double a2)```
Returns the angle between the angles a1 and a2 in radians.
`String` `toString()`
• ### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
• ### Constructor Detail

• #### Circle

`protected Circle()`
Creates a circle whose center is at the origin and whose radius is 0.
• #### Circle

```public Circle(com.vividsolutions.jts.geom.Coordinate center,
Create a circle with a defined center and radius
Parameters:
`center` - The coordinate representing the center of the circle
`radius` - The radius of the circle
• #### Circle

```public Circle(double xCenter,
double yCenter,
Create a circle using the x/y coordinates for the center.
Parameters:
`xCenter` - The x coordinate of the circle's center
`yCenter` - The y coordinate of the circle's center
`radius` - the radius of the circle
• #### Circle

```public Circle(double xLeft,
double yUpper,
double xRight,
double yLower)```
Creates a circle based on bounding box. It is possible for the user of this class to pass bounds to this method that do not represent a square. If this is the case, we must force the bounding rectangle to be a square. To this end, we check the box and set the side of the box to the larger dimension of the rectangle
Parameters:
`xLeft` - The leftmost x coordinate
`yUpper` - The uppermost y coordinate
`xRight` - The rightmost x coordinate
`yLower` - The lowest y coordinate
• #### Circle

```public Circle(com.vividsolutions.jts.geom.Coordinate point1,
com.vividsolutions.jts.geom.Coordinate point2,
com.vividsolutions.jts.geom.Coordinate point3)```
Three point method of circle construction. All three points must be on the circumference of the circle.
Parameters:
`point1` - The first point
`point2` - The second point
`point3` - The third point
• #### Circle

```public Circle(double x1,
double y1,
double x2,
double y2,
double x3,
double y3)```
Three point method of circle construction. All three points must be on the circumference of the circle.
Parameters:
`x1` - The x coordinate of the first point
`y1` - The y coordinate of the first point
`x2` - The x coordinate of the second point
`y2` - The y coordinate of the second point
`x3` - The x coordinate of the third point
`y3` - The y coordinate of the third point
• ### Method Detail

• #### linearizeArc

```public static com.vividsolutions.jts.geom.Coordinate[] linearizeArc(double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
double tolerence)```
Given 2 points defining an arc on the circle, interpolates the circle into a collection of points that provide connected chords that approximate the arc based on the tolerance value. The tolerance value specifies the maximum distance between a chord and the circle.
Parameters:
`x1` - x coordinate of point 1
`y1` - y coordinate of point 1
`x2` - x coordinate of point 2
`y2` - y coordinate of point 2
`x3` - x coordinate of point 3
`y3` - y coordinate of point 3
`tolerence` - maximum distance between the center of the chord and the outer edge of the circle
Returns:
an ordered list of Coordinates representing a series of chords approximating the arc.
• #### linearizeArc

```public static com.vividsolutions.jts.geom.Coordinate[] linearizeArc(double x1,
double y1,
double x2,
double y2,
double x3,
double y3)```
Given 2 points defining an arc on the circle, interpolates the circle into a collection of points that provide connected chords that approximate the arc based on the tolerance value. This method uses a tolerence value of 1/100 of the length of the radius.
Parameters:
`x1` - x coordinate of point 1
`y1` - y coordinate of point 1
`x2` - x coordinate of point 2
`y2` - y coordinate of point 2
`x3` - x coordinate of point 3
`y3` - y coordinate of point 3
Returns:
an ordered list of Coordinates representing a series of chords approximating the arc.
• #### linearizeCircle

```public static com.vividsolutions.jts.geom.Coordinate[] linearizeCircle(double x1,
double y1,
double x2,
double y2,
double x3,
double y3)```
Given a circle defined by the 3 points, creates a linearized interpolation of the circle starting and ending on the first coordinate. This method uses a tolerence value of 1/100 of the length of the radius.
Parameters:
`x1` - x coordinate of point 1
`y1` - y coordinate of point 1
`x2` - x coordinate of point 2
`y2` - y coordinate of point 2
`x3` - x coordinate of point 3
`y3` - y coordinate of point 3
Returns:
an ordered list of Coordinates representing a series of chords approximating the arc.
• #### normalizeAngle

`public static double normalizeAngle(double angle)`
Returns an angle between 0 and 2*PI. For example, 4*PI would get returned as 2*PI since they are equivalent.
Parameters:
`angle` - an angle in radians to normalize
Returns:
an angle between 0 and 2*PI
• #### subtractAngles

```public static double subtractAngles(double a1,
double a2)```
Returns the angle between the angles a1 and a2 in radians. Angle is calculated in the counterclockwise direction.
Parameters:
`a1` - first angle
`a2` - second angle
Returns:
the angle between a1 and a2 in the clockwise direction
• #### shift

```public void shift(double deltaX,
double deltaY)```
Shifts the center of the circle by delta X and delta Y
Parameters:
`deltaX` - The shift along the X-coordinate axis
`deltaY` - The shift along the Y-coordinate axis
• #### move

```public void move(double x,
double y)```
Moves the circle to a new center
Parameters:
`x` - The x coordinate of the new center
`y` - The y coordinate of the new center
• #### getCenter

`public com.vividsolutions.jts.geom.Coordinate getCenter()`

`public double getRadius()`
• #### linearizeArc

```public com.vividsolutions.jts.geom.Coordinate[] linearizeArc(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2,
com.vividsolutions.jts.geom.Coordinate p3,
double tolerence)```
Given 2 points defining an arc on the circle, interpolates the circle into a collection of points that provide connected chords that approximate the arc based on the tolerance value. The tolerance value specifies the maximum distance between a chord and the circle.
Parameters:
`p1` - begin coordinate of the arc
`p2` - any other point on the arc
`p3` - end coordinate of the arc
`tolerence` - maximum distance between the center of the chord and the outer edge of the circle
Returns:
an ordered list of Coordinates representing a series of chords approximating the arc.
• #### equals

`public boolean equals(Object o)`
Overrides:
`equals` in class `Object`
• #### hashCode

`public int hashCode()`
Overrides:
`hashCode` in class `Object`
• #### toString

`public String toString()`
Overrides:
`toString` in class `Object`
• #### getAngle

`public double getAngle(com.vividsolutions.jts.geom.Coordinate p)`
Returns the angle of the point from the center and the horizontal line from the center.
Parameters:
`p` - a point in space
Returns:
The angle of the point from the center of the circle
• #### getPoint

`public com.vividsolutions.jts.geom.Coordinate getPoint(double angle)`
Returns the coordinate on the circle at the specified angle
Parameters:
`angle` - The angle
Returns:
Coordinate
• #### distanceFromCenter

`public double distanceFromCenter(com.vividsolutions.jts.geom.Coordinate p)`
Returns the distance the point is from the center of the circle
Parameters:
`p` - A point in space
Returns:
The distance the point is from the center of the circle
• #### createArc

```public Circle.Arc createArc(com.vividsolutions.jts.geom.Coordinate p1,
com.vividsolutions.jts.geom.Coordinate p2,
com.vividsolutions.jts.geom.Coordinate p3)```
Creates an arc through the specified points
Parameters:
`p1` - The first point
`p2` - The second point
`p3` - The third point
Returns:
The `Arc` through the three points