Package org.geotools.gml3
Class Circle
Object
Circle
This class provides operations for handling the usage of Circles and arcs in Geometries.
 
Date: Oct 15, 2007
- Author:
- Tom Acree
- 
Nested Class SummaryNested Classes
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedCircle()Creates a circle whose center is at the origin and whose radius is 0.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.Circle(Coordinate center, double radius) Create a circle with a defined center and radiusCircle(Coordinate point1, Coordinate point2, Coordinate point3) Three point method of circle construction.
- 
Method SummaryModifier and TypeMethodDescriptioncreateArc(Coordinate p1, Coordinate p2, Coordinate p3) doublebooleandoubleReturns the angle of the point from the center and the horizontal line from the center.getPoint(double angle) doubleinthashCode()static 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 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.linearizeArc(Coordinate p1, Coordinate p2, 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 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.static Coordinate[]linearizeCircle(Coordinate p1, Coordinate p2, Coordinate p3, double tolerance) Given a circle defined by the 3 points, creates a linearized interpolation of the circle starting and ending on the first coordinate.voidmove(double x, double y) Move the circle to a new centerstatic doublenormalizeAngle(double angle) Returns an angle between 0 and 2*PI.voidshift(double deltaX, double deltaY) shift the center of the circle by delta X and delta Ystatic doublesubtractAngles(double a1, double a2) Returns the angle between the angles a1 and a2 in radians.toString()
- 
Constructor Details- 
Circleprotected Circle()Creates a circle whose center is at the origin and whose radius is 0.
- 
CircleCreate a circle with a defined center and radius- Parameters:
- center- The coordinate representing the center of the circle
- radius- The radius of the circle
 
- 
Circlepublic Circle(double xCenter, double yCenter, double radius) 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
 
- 
Circlepublic 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
- 
CircleThree point method of circle construction. All three points must be on the circumference of the circle.
- 
Circlepublic 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.
 
- 
- 
Method Details- 
shiftpublic void shift(double deltaX, double deltaY) shift the center of the circle by delta X and delta Y
- 
movepublic void move(double x, double y) Move the circle to a new center
- 
getCenter
- 
getRadiuspublic double getRadius()
- 
linearizeArcpublic static 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.
 
- 
linearizeArcpublic static 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.
 
- 
linearizeCirclepublic static 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.
 
- 
linearizeCirclepublic static Coordinate[] linearizeCircle(Coordinate p1, Coordinate p2, Coordinate p3, double tolerance) Given a circle defined by the 3 points, creates a linearized interpolation of the circle starting and ending on the first coordinate.- Parameters:
- p1- coordinate on the circle
- p2- another coordinate on the circle
- p3- yet another coordinate on the circle
- tolerance- 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 circle.
 
- 
linearizeArcGiven 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
- 
hashCodepublic int hashCode()
- 
toString
- 
getAngleReturns 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
- 
distanceFromCenter- Parameters:
- p- A point in space
- Returns:
- The distance the point is from the center of the circle
 
- 
createArc
- 
normalizeAnglepublic 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
 
- 
subtractAnglespublic 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
 
 
-