com.esri.arcgis.geometry
Interface IConstructPoint

All Superinterfaces:
Serializable
All Known Subinterfaces:
IConstructPoint2
All Known Implementing Classes:
Point

public interface IConstructPoint
extends Serializable

Provides access to members that construct a point using other geometries and measures.

Superseded By

IConstructPoint2

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux


Method Summary
 void constructAlong(ICurve curve, int extension, double distance, boolean asRatio)
          Constructs a point distance units along the input curve.
 void constructAngleBisector(IPoint from, IPoint through, IPoint to, double distance, boolean useAcuteAngle)
          Constructs a point on the bisector of the angle (from, through, to).
 void constructAngleDistance(IPoint p, double inAngle, double distance)
          Constructs a point at a specified angle (in radians) from the horizontal axis and a specified distance away from the input point.
 void constructAngleIntersection(IPoint p1, double angle1, IPoint p2, double angle2)
          Constructs the point of intersection between two lines defined by the input points and angles (in radians).
 void constructDeflection(ILine baseLine, double distance, double inAngle)
          Constructs a point in the polar coordinate system defined by baseLine and its 'from' point.
 void constructDeflectionIntersection(ILine baseLine, double startAngle, double endAngle, boolean onRightSide)
          Constructs the point of intersection of two rays with origins at the endpoints of the base line and the specified angles (in radians).
 void constructOffset(ICurve curve, int extension, double distance, boolean asRatio, double offset)
          Constructs a point distance units along the input curve and offset units perpendicularly away from it.
 void constructParallel(ISegment segment, int extension, IPoint start, double distance)
          Constructs a point distance units from start, parallel to the tangent at the point nearest to start on the (extended) segment.
 void constructPerpendicular(ISegment base, int extension, IPoint p, double distance, boolean bUseLineOrientation)
          Constructs a point 'distance' units from p and lying along the line normal to base and passing through p.
 void constructThreePointResection(IPoint point1, double angleP1P2, IPoint point2, double angleP2P3, IPoint point3, double[] arcAngle)
          Constructs the point of observation from which two signed angles between three points were measured; returns an angle which can help establish the confidence of the observation location: A small angle indicates greater uncertainty in the location.
 

Method Detail

constructAlong

void constructAlong(ICurve curve,
                    int extension,
                    double distance,
                    boolean asRatio)
                    throws IOException,
                           AutomationException
Constructs a point distance units along the input curve.

Remarks

If the Distance parameter is less than zero, or greater than the length of the curve (when asRatio is false), or greater than one (when asRatio is true), then the value of the Extension parameter is used to determine the coordinates of the constructed point. In these cases, the point can be placed somewhere along an embedding geometry, or somewhere along a tangent geometry.

The embedding geometry of a straight line segment is a straight line extending infinitely in both directions. The embedding geometry of a circular arc is a complete circle. The embedding geometry of an elliptic arc is a complete ellipse. A bezier curve has no embedding geometry.

A tangent geometry is always a ray (a straight line extending infinitely in one direction) tangent to the input curve at either its from (start) or to (end) points.

Possible values for the Extension parameter are:
-------------------------------------------------
esriNoExtension The constructed point will always be on the input curve. A distance < 0 will pin the constructed point to the location of the input curve's from point. A distance > the curve length (or > 1 when asRatio is true) will pin the location to the curve's to point.

esriExtendTangentAtFrom If the distance parameter is < 0 then the point is constructed along a ray tangent to the start point of the curve, in a direction away from the curve.

esriExtendTangentAtTo If the distance parameter is greater than the length of the input curve (or > 1 when asRatio is true), then the constructed point is placed along a ray tangent to the end point of the curve, in a direction away from the curve.

esriExtendEmbeddedAtFrom Similar to the tangent option, but uses the embedding geometry instead of the tangent lines.

esriExtendEmbeddedAtTo Similar to the tangent option, but uses the embedding geometry instead of the tangent lines.

esriExtendEmbedded The point is constructed based on either the start or end points of the curve.

esriExtendTangents The point is tangential extended from the start or endpoint of the curve.

These values can be combined using the VB Or operator, or the C++ bitwise OR operator.

Example 1: esriExtendTangentAtFrom Or esriExtendTangentAtTo

Instead of using esriExtendTangents you could use esriExtendTangentAtFrom Or esriExtendTangentAtTo.This would allow the point to be constructed anywhere along infinte straight lines, beginning from either the start or end of the curve, regardless of whether the distance parameter was less than 0, or greater than the length of the input curve (or > 1 when asRatio is true).


ConstructPoint ConstructAlong Example

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
curve - A reference to a com.esri.arcgis.geometry.ICurve (in)
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
distance - The distance (in)
asRatio - The asRatio (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructAngleDistance

void constructAngleDistance(IPoint p,
                            double inAngle,
                            double distance)
                            throws IOException,
                                   AutomationException
Constructs a point at a specified angle (in radians) from the horizontal axis and a specified distance away from the input point.

Description

The ConstructAngleDistance method, given a point (p), construct another point at an angle (inangle) and a distance(distance).

Remarks

Angle in radians and distance in map units. The angle is measured counter-clockwise from the horizontal line and can be negative. If the distance is negative then the opposite direction is assumed (same as angle + PI).

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
p - A reference to a com.esri.arcgis.geometry.IPoint (in)
inAngle - The inAngle (in)
distance - The distance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
See Also:
IConstructPoint.constructAlong(com.esri.arcgis.geometry.ICurve, int, double, boolean)

constructDeflection

void constructDeflection(ILine baseLine,
                         double distance,
                         double inAngle)
                         throws IOException,
                                AutomationException
Constructs a point in the polar coordinate system defined by baseLine and its 'from' point. The angle is in radians.

Description

The ConstructDeflection method, given a line (baseline), creates a new point at a distance (distance) and at an angle (inAngle).

Remarks

The point is constructed from the baseline start point using the deflection angle (the angle from the baseline to the point) and the distance. The deflection angle is given in radians the distance in map units. When distance is > 0, a positive value for angle rotates the constructed point counter-clockwise about the start point of baseline, and a negative value for angle rotates it the other way. Vice versa when distance is < 0.
ConstructDeflection Example

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
baseLine - A reference to a com.esri.arcgis.geometry.ILine (in)
distance - The distance (in)
inAngle - The inAngle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructDeflectionIntersection

void constructDeflectionIntersection(ILine baseLine,
                                     double startAngle,
                                     double endAngle,
                                     boolean onRightSide)
                                     throws IOException,
                                            AutomationException
Constructs the point of intersection of two rays with origins at the endpoints of the base line and the specified angles (in radians). If onRightSide is true, this work will be done to the right of the base line, otherwise to the left.

Remarks


the bRightSide flag can be used to always force the constructed point to be on the right side of the baseline.

The startAngle is the angle (in radians) from the baseline's startpoint of the line to the constructed point. The endAngle is the angle (in radians) from the baseline's endpoint to the constructed point.

Both angles have to be > 0 and < 2 PI radians. Their sum must also be less than PI radians.

ConstructDeflectionIntersection Example

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
baseLine - A reference to a com.esri.arcgis.geometry.ILine (in)
startAngle - The startAngle (in)
endAngle - The endAngle (in)
onRightSide - The onRightSide (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructThreePointResection

void constructThreePointResection(IPoint point1,
                                  double angleP1P2,
                                  IPoint point2,
                                  double angleP2P3,
                                  IPoint point3,
                                  double[] arcAngle)
                                  throws IOException,
                                         AutomationException
Constructs the point of observation from which two signed angles between three points were measured; returns an angle which can help establish the confidence of the observation location: A small angle indicates greater uncertainty in the location.

Description

The ConstructThreePointResection method constructs a new point given three points and two signed view angles. It finds the viewpoints from which the two point pairs are viewed at the given angles. When both angles are equal to pi/2 radians, there is only one solution; otherwise there can be up to four solutions. A positive angle indicates that the viewpoint is to be on the right hand side of the line between the corresponding points; a negative angle places the resulting point on the left. There may not be a feasible solution for the given input, in which case the resulting point is empty. The quality of the solution is given by the arcAngle parameter. The smaller the angle the less stable the solution. The returned angle is between 0 and pi/2.

Remarks

Given three points and two angles measured from the constructed point.



Note that there is no unique solution if all three points are on the same circle.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
point1 - A reference to a com.esri.arcgis.geometry.IPoint (in)
angleP1P2 - The angleP1P2 (in)
point2 - A reference to a com.esri.arcgis.geometry.IPoint (in)
angleP2P3 - The angleP2P3 (in)
point3 - A reference to a com.esri.arcgis.geometry.IPoint (in)
arcAngle - The arcAngle (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructOffset

void constructOffset(ICurve curve,
                     int extension,
                     double distance,
                     boolean asRatio,
                     double offset)
                     throws IOException,
                            AutomationException
Constructs a point distance units along the input curve and offset units perpendicularly away from it.

Remarks

A positive Offset distance will create a point on the right side of the curve and a negative offset will create a point on the left side of the curve.

ConstructPoint ConstructOffset Example

Set the asRatio flag to be True if you want the distance to be a ratio of the curve length. If set to True, then a distance of 0.5 will be equal to half of the curve length (i.e. 50%).

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
curve - A reference to a com.esri.arcgis.geometry.ICurve (in)
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
distance - The distance (in)
asRatio - The asRatio (in)
offset - The offset (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructParallel

void constructParallel(ISegment segment,
                       int extension,
                       IPoint start,
                       double distance)
                       throws IOException,
                              AutomationException
Constructs a point distance units from start, parallel to the tangent at the point nearest to start on the (extended) segment.

Description

ConstructParallel constructs a Point a specified distance from the input point in the direction parallel to the tangent of the nearest point on the extended input segment.

Remarks

ConstructPoint ConstructParallel Example

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
segment - A reference to a com.esri.arcgis.geometry.ISegment (in)
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
start - A reference to a com.esri.arcgis.geometry.IPoint (in)
distance - The distance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructAngleBisector

void constructAngleBisector(IPoint from,
                            IPoint through,
                            IPoint to,
                            double distance,
                            boolean useAcuteAngle)
                            throws IOException,
                                   AutomationException
Constructs a point on the bisector of the angle (from, through, to). When useAcuteAngle is false, the sign of distance will select a point right or left of (from, through, to). Otherwise, the sign of distance will select the acute/obtuse point.

Description

Constructs a Point a specified Distance along the line which bisects the Angle formed by the right side of the three input points. If the right side angle is smaller, the constructed line along which the Point is constructed will always bisect this angle, regardless of the value of bUseSmallerAngle. However, if the right side angle is larger, and bUseSmallerAngle is TRUE, then the Point will be on the line constructed which bisects the smaller angle (left side) instead of the right side angle.

Remarks


The method uses a vector geometry to calculate the point. The Smaller Angle is the angle less than PI.

If From , To and Through points are all on a straight line , the point is calculated perpendicular (to the right) of the line.

Construct Angle Bisector

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
from - A reference to a com.esri.arcgis.geometry.IPoint (in)
through - A reference to a com.esri.arcgis.geometry.IPoint (in)
to - A reference to a com.esri.arcgis.geometry.IPoint (in)
distance - The distance (in)
useAcuteAngle - The useAcuteAngle (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructPerpendicular

void constructPerpendicular(ISegment base,
                            int extension,
                            IPoint p,
                            double distance,
                            boolean bUseLineOrientation)
                            throws IOException,
                                   AutomationException
Constructs a point 'distance' units from p and lying along the line normal to base and passing through p.

Description

ConstructPerpendicular constructs a Point a specified distance from the input point in the direction parallel to the normal (perpendicular to the tangent) of the nearest point on the extended input segment.

Remarks

ConstructPoint ConstructPerpendicular Example

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
base - A reference to a com.esri.arcgis.geometry.ISegment (in)
extension - A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
p - A reference to a com.esri.arcgis.geometry.IPoint (in)
distance - The distance (in)
bUseLineOrientation - The bUseLineOrientation (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructAngleIntersection

void constructAngleIntersection(IPoint p1,
                                double angle1,
                                IPoint p2,
                                double angle2)
                                throws IOException,
                                       AutomationException
Constructs the point of intersection between two lines defined by the input points and angles (in radians).

Remarks


Angles are specified as geometric angles measured counterclockwise from the positive x axis of the Cartesian coordinate system. All angles are specified in radians .

ConstructAngleIntersection Example

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Parameters:
p1 - A reference to a com.esri.arcgis.geometry.IPoint (in)
angle1 - The angle1 (in)
p2 - A reference to a com.esri.arcgis.geometry.IPoint (in)
angle2 - The angle2 (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.