ArcObjects Library Reference (Geometry)  

IConstructPoint.ConstructAngleBisector Method

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.

[Visual Basic .NET]
Public Sub ConstructAngleBisector ( _
    ByVal from As IPoint, _
    ByVal through As IPoint, _
    ByVal to As IPoint, _
    ByVal distance As Double, _
    ByVal useAcuteAngle As Boolean _
)
[C#]
public void ConstructAngleBisector (
    IPoint from,
    IPoint through,
    IPoint to,
    double distance,
    bool useAcuteAngle
);
[C++]
HRESULT ConstructAngleBisector(
  IPoint* from,
  IPoint* through,
  IPoint* to,
  double distance,
  VARIANT_BOOL useAcuteAngle
);
[C++]

Parameters

from

  from is a parameter of type IPoint

through

  through is a parameter of type IPoint

to

  to is a parameter of type IPoint

distance   distance is a parameter of type double useAcuteAngle   useAcuteAngle is a parameter of type VARIANT_BOOL

Product Availability

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

Description

Constructs a Point at 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

[C#]

        private void ConstructAngleBisector()
        {
            IPoint fromPoint = new PointClass();
            fromPoint.PutCoords(0, 0);
            IPoint throughPoint = new PointClass();
            throughPoint.PutCoords(10, 0);
            IPoint toPoint = new PointClass();
            toPoint.PutCoords(0, 10);
            IConstructPoint constructionPoint = new PointClass();
            constructionPoint.ConstructAngleBisector(fromPoint, throughPoint, toPoint, 10, true);
            IPoint outPutPoint = constructionPoint as IPoint;
            System.Windows.Forms.MessageBox.Show("Output point : " + outPutPoint.X + " , " + outPutPoint.Y);
        }

[Visual Basic .NET]

   Public Sub ConstructAngleBisector()
        Dim ptTr As ESRI.ArcGIS.Geometry.IPoint
        Dim ptTo As ESRI.ArcGIS.Geometry.IPoint
        Dim ptFrom As ESRI.ArcGIS.Geometry.IPoint
        Dim pConstructLine As ESRI.ArcGIS.Geometry.IConstructLine
        Dim pOutPutLine As ESRI.ArcGIS.Geometry.ILine
        Dim Pi As Double
        Pi = 4 * Math.Atan(1)
        ptTr = New ESRI.ArcGIS.Geometry.Point
        ptTo = New ESRI.ArcGIS.Geometry.Point
        ptFrom = New ESRI.ArcGIS.Geometry.Point
        pConstructLine = New ESRI.ArcGIS.Geometry.Line
        ptTr.PutCoords(0, 0)
        ptTo.PutCoords(0, 10)
        ptFrom.PutCoords(10, 0)
        pConstructLine.ConstructAngleBisector(ptFrom, ptTr, ptTo, 10, True)
        pOutPutLine = pConstructLine 'QI
        Debug.Print(pOutPutLine.Length)
        'Angle from the XAxis
        Debug.Print((180 * pOutPutLine.Angle) / Pi)
    End Sub

See Also

IConstructPoint Interface