This document is archived and information here might be outdated.  Recommended version.

IConstructPoint.ConstructThreePointResection Method (ArcObjects .NET 10.8 SDK)
ArcObjects Help for .NET developers > ArcObjects Help for .NET developers > ArcObjects namespaces > Geometry > ESRI.ArcGIS.Geometry > Interfaces > IC > IConstructPoint Interface > IConstructPoint.ConstructThreePointResection Method
ArcGIS Developer Help

IConstructPoint.ConstructThreePointResection Method

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.

[Visual Basic .NET]
Public Sub ConstructThreePointResection ( _
    ByVal point1 As IPoint, _
    ByVal angleP1P2 As Double, _
    ByVal point2 As IPoint, _
    ByVal angleP2P3 As Double, _
    ByVal point3 As IPoint, _
    ByRef arcAngle As Double _
public void ConstructThreePointResection (
    IPoint point1,
    double angleP1P2,
    IPoint point2,
    double angleP2P3,
    IPoint point3,
    ref double arcAngle
HRESULT ConstructThreePointResection(
  IPoint* point1,
  double angleP1P2,
  IPoint* point2,
  double angleP2P3,
  IPoint* point3,
  System.Double* arcAngle

point1 is a parameter of type IPoint* angleP1P2
angleP1P2 is a parameter of type double point2
point2 is a parameter of type IPoint* angleP2P3
angleP2P3 is a parameter of type double point3
point3 is a parameter of type IPoint* arcAngle [out]
arcAngle is a parameter of type double*

Product Availability

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


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.


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.

[Visual Basic .NET]

Private Shared Sub t_ConstructThreePointResection()

     On Error GoTo Errorhandler

     Dim pPoint As IPoint

     Dim pCPoint As IConstructPoint

     Dim pPoint1 As IPoint

     Dim pPoint2 As IPoint

     Dim pPoint3 As IPoint

     Dim dAngle1 As Double

     Dim dAngle2 As Double


     pCPoint = New Point

     pPoint = New Point

     pPoint1 = New Point

     pPoint2 = New Point

     pPoint3 = New Point


     pPoint1.PutCoords(0, 1)

     pPoint2.PutCoords(2, 2)

     pPoint3.PutCoords(1, 0)


     dAngle1 = Math.PI / 4

     dAngle2 = Math.PI / 4


     pCPoint.ConstructThreePointResection(pPoint1, dAngle1, pPoint2, dAngle2, pPoint3, Math.PI / 2)

     pPoint = pCPoint


     MsgBox("x,y = " & pPoint.X & "," & pPoint.Y)

     Exit Sub


     MsgBox(Err.Number & "..." & Err.Description)

     Exit Sub

End Sub

See Also

IConstructPoint Interface