Constructs an arc with a common tangent to input segment, a given chord length and a tangent length.
[Visual Basic .NET] Public Sub ConstructTangentChordTangent ( _ ByVal Segment As ISegment, _ ByVal atStart As Boolean, _ ByVal isCCW As Boolean, _ ByVal chordDistance As Double, _ ByVal tangentDistance As Double _ )
[C#] public void ConstructTangentChordTangent ( ISegment Segment, bool atStart, bool isCCW, double chordDistance, double tangentDistance );
[C++]
HRESULT ConstructTangentChordTangent(
ISegment* Segment,
VARIANT_BOOL atStart,
VARIANT_BOOL isCCW,
double chordDistance,
double tangentDistance
);
[C++]Parameters
SegmentSegment is a parameter of type ISegment
atStart atStart is a parameter of type VARIANT_BOOL isCCW isCCW is a parameter of type VARIANT_BOOL chordDistance chordDistance is a parameter of type double tangentDistance tangentDistance is a parameter of type double
Product Availability
Description
Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Chord Distance, and the desired Tangent Distance. The Tangent Distance must be great than half the Chord Distance, otherwise an error is returned.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructTangentChordTangent() { IConstructCircularArc constructCircularArc = new CircularArcClass(); ICircularArc circularArc = constructCircularArc as ICircularArc; IPoint fromPoint = new PointClass(); fromPoint.PutCoords(100, 100); IPoint toPoint = new PointClass(); toPoint.PutCoords(100, 400); ILine line = new LineClass(); line.PutCoords(fromPoint, toPoint); //The angles should be in Radians (Radians = Degrees * PI/180) constructCircularArc.ConstructTangentChordTangent(line as ISegment, false, true, 100, 100000000); 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); }
Private Sub ConstructTangentChordTangent()
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 pPoint 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)
pPoint = New ESRI.ArcGIS.Geometry.Point
pPoint.PutCoords(200, 400)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructTangentChordTangent(pLine1, False, True, 100, 100000000)
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.ConstructTangentRadiusAngle Method | IConstructCircularArc.ConstructTangentRadiusArc Method | IConstructCircularArc.ConstructTangentChordTangent Method | IConstructCircularArc.ConstructTangentRadiusChord Method | IConstructCircularArc.ConstructTangentChordArc Method | IConstructCircularArc.ConstructTangentRadiusTangent Method | IConstructCircularArc.ConstructTangentArcTangent Method | IConstructCircularArc.ConstructTangentAngleChord Method | IConstructCircularArc.ConstructTangentAngleTangent Method | IConstructCircularArc.ConstructTangentAndPoint Method | IConstructCircularArc.ConstructTangentAngleArc Method