@UML(identifier="GM_Arc", specification=ISO_19107) public interface Arc extends ArcString
NOTE: In the model, anIn its simplest representation, the three points in the control point sequence for anArc
is a subclass ofArcString
, being a trivial arc string consisting of only one arc. This may be counter-intuitive in the sense that subclasses are often thought of as more complex than their superclass (with additional methods and attributes). AnArc
is simpler than a arc string in that it has less data, but it is more complex in that it can return geometric information such as "center", "start angle", and "end angle". This additional computational complexity forces the subclassing to be the way it is. In addition the "is type of" semantics works this way and not the other.
Arc
shall consist of, in order, the initial point on the arc, some
point on the arc neither at the start or end, and the end point of the Arc
. If additional
points are given, then all points must lie on the circle defined by any 3 non-colinear points in
the control point array. All points shall lie on the same circle, and shall be given in the
control point array in the order in which they occur on the arc.
NOTE: The use of the term "midPoint" for the center position of the control point sequence is not meant to require that the position be the geometric midpoint of the arc. This is the best choice for this position from a computational stability perspective, but it is not absolutely necessary for the mathematics to work.
GeometryFactory.createArc(Position,Position,Position)
,
GeometryFactory.createArc(Position,Position,double,double[])
Modifier and Type | Method and Description |
---|---|
DirectPosition |
getCenter()
Calculates the center of the circle of which this arc is a portion as a direct position.
|
Bearing |
getEndAngle()
Calculates the bearing of the line from the center of the circle of which this arc is a
portion to the end point of the arc.
|
double |
getRadius()
Calculates the radius of the circle of which this arc is a portion.
|
Bearing |
getStartAngle()
Calculates the bearing of the line from the center of the circle of which this arc is a
portion to the start point of the arc.
|
asArcs, getControlPoints, getInterpolation, getNumArc
getBoundary, getCurve, getNumDerivativesAtEnd, getNumDerivativesAtStart, getNumDerivativesInterior, getSamplePoints, reverse
asLineString, forConstructiveParam, forParam, getEndConstructiveParam, getEndParam, getEndPoint, getParamForPoint, getStartConstructiveParam, getStartParam, getStartPoint, getTangent, length, length
@UML(identifier="center", obligation=MANDATORY, specification=ISO_19107) DirectPosition getCenter()
Arc
. In some extreme cases, the direct position
as calculated may lie outside the domain of validity of the coordinate reference system used
by this Arc
(especially if the underlying arc has a very large radius).
Implementations may choose an appropriate course of action in such cases.@UML(identifier="radius", obligation=MANDATORY, specification=ISO_19107) double getRadius()
@UML(identifier="startAngle", obligation=MANDATORY, specification=ISO_19107) Bearing getStartAngle()
start point
of this arc.@UML(identifier="endAngle", obligation=MANDATORY, specification=ISO_19107) Bearing getEndAngle()
Copyright © 1996–2019 Geotools. All rights reserved.