|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
@UML(identifier="GM_Arc", specification=ISO_19107) public interface Arc
Arc of the circle determined by 3 points, starting at the first, passing through the second and terminating at the third. If the 3 points are co-linear, then the arc shall be a 3-point line string, and will not be able to return values for center, radius, start angle and end angle.
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[])
Method Summary | |
---|---|
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. |
Methods inherited from interface ArcString |
---|
asArcs, getControlPoints, getInterpolation, getNumArc |
Methods inherited from interface CurveSegment |
---|
getBoundary, getCurve, getNumDerivativesAtEnd, getNumDerivativesAtStart, getNumDerivativesInterior, getSamplePoints, reverse |
Methods inherited from interface GenericCurve |
---|
asLineString, forConstructiveParam, forParam, getEndConstructiveParam, getEndParam, getEndPoint, getParamForPoint, getStartConstructiveParam, getStartParam, getStartPoint, getTangent, length, length |
Method Detail |
---|
@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()
end point
of this arc.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |