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.
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
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()
• 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
• 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
• 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()

• 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.
• hashCode

public int hashCode()
Overrides:
hashCode 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