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


IConstructCircularArc.ConstructTangentRadiusChord Method (ArcObjects .NET 10.4 SDK)
ArcObjects Library Reference (Geometry)  

IConstructCircularArc.ConstructTangentRadiusChord Method

Constructs an arc with a common tangent to the input segment, a given radius and a chord length.

[Visual Basic .NET]
Public Sub ConstructTangentRadiusChord ( _
    ByVal Segment As ISegment, _
    ByVal atStart As Boolean, _
    ByVal isCCW As Boolean, _
    ByVal inRadius As Double, _
    ByVal chordDistance As Double _
)
[C#]
public void ConstructTangentRadiusChord (
    ISegment Segment,
    bool atStart,
    bool isCCW,
    double inRadius,
    double chordDistance
);
[C++]
HRESULT ConstructTangentRadiusChord(
  ISegment* Segment,
  VARIANT_BOOL atStart,
  VARIANT_BOOL isCCW,
  double inRadius,
  double chordDistance
);
[C++]

Parameters Segment
Segment is a parameter of type ISegment atStart atStart is a parameter of type VARIANT_BOOL isCCW isCCW is a parameter of type VARIANT_BOOL inRadius inRadius is a parameter of type double chordDistance chordDistance is a parameter of type double

Product Availability

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

Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Radius, and the desired Chord Length.  If the Chord Distance is greater than 2 * Radius, a half CircularArc is returned.  Only IsMinor CircularArcs can be created.

Remarks

-isCCW stands for "is counter clockwise"

Note : To construct a major CircularArc using the same paramaters use the IConstructCircularcArc2::ConstructTangentRadiusChordEx method with the IsMinor parameter equal to false.

ConstructCircularArc Tangent Segment Example

ConstructCircularArc Chord Distance Example

[C#]
private void onstructTangentRadiusChord()
{
  IConstructCircularArc constructCircularArc=new CircularArcClass();
  ICircularArc circularArc=constructCircularArc as ICircularArc;
  
  IPoint fromPoint=new PointClass();
  IPoint toPoint=new PointClass();
  fromPoint.PutCoords(100, 100);
  toPoint.PutCoords(50, 400);
  
  ILine line=new LineClass();
  line.PutCoords(fromPoint, toPoint);
  constructCircularArc.ConstructTangentRadiusChord(line as ISegment, false, true, 50, 100);
   
  String report="Length : " + circularArc.Length + "\n" +
                  "Radius : " + circularArc.Radius + "\n" +
                  "Chord Height : " + circularArc.ChordHeight + "\n" +
                  "Central Angle (Rad) : " + circularArc.CentralAngle + "\n" +
                  "From Angle (Rad) : " + circularArc.FromAngle + "\n" +
                  "To Angle (Rad) : " + circularArc.ToAngle + "\n" +
                  "Center Point : " + circularArc.CenterPoint.X + " , " + circularArc.CenterPoint.Y + "\n" +
                  "From Point : " + circularArc.FromPoint.X + " , " + circularArc.FromPoint.Y + "\n" +
                  "To Point : " + circularArc.ToPoint.X + " , " + circularArc.ToPoint.Y;
  System.Windows.Forms.MessageBox.Show(report);
}
[Visual Basic .NET]

    Private Sub ConstructTangentRadiusChord()
        Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
        Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
        Dim Pi As Double
        Dim pToPoint As ESRI.ArcGIS.Geometry.IPoint
        Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
        Dim pLine1 As ESRI.ArcGIS.Geometry.ILine

        pConstructCircularArc=New ESRI.ArcGIS.Geometry.CircularArc
        pCArc=pConstructCircularArc
        Pi=4 * Math.Atan(1) 'Calculate the value of pi.
        pFromPoint=New ESRI.ArcGIS.Geometry.Point
        pToPoint=New ESRI.ArcGIS.Geometry.Point
        pLine1=New ESRI.ArcGIS.Geometry.Line
        pFromPoint.PutCoords(100, 100)
        pToPoint.PutCoords(100, 400)
        pLine1.PutCoords(pFromPoint, pToPoint)
        pConstructCircularArc.ConstructTangentRadiusChord(pLine1, False, True, 50, 100)

        Debug.Print("Length : " & pCArc.Length)
        Debug.Print("Radius : " & pCArc.Radius)
        Debug.Print("Chord Height : " & pCArc.ChordHeight)
        Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)
        Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)
        Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)
        Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)
        Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)
        Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)
    End Sub

See Also

IConstructCircularArc Interface | IConstructCircularArc.ConstructTangentAngleTangent Method | IConstructCircularArc.ConstructTangentAngleChord Method | IConstructCircularArc.ConstructTangentArcTangent Method | IConstructCircularArc.ConstructTangentAngleArc Method | IConstructCircularArc.ConstructTangentChordTangent Method | IConstructCircularArc.ConstructTangentRadiusAngle Method | IConstructCircularArc.ConstructTangentRadiusArc Method | IConstructCircularArc.ConstructTangentAndPoint Method | IConstructCircularArc.ConstructTangentRadiusChord Method | IConstructCircularArc.ConstructTangentRadiusTangent Method | IConstructCircularArc.ConstructTangentChordArc Method