## com.esri.arcgis.geometry Interface IConstructPoint

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

`public interface IConstructPointextends Serializable`

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

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

#### 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.
`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.

#### 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.

#### 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.

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.

#### 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.

#### 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.

#### 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 .

#### 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.