This document is archived and information here might be outdated. Recommended version. |
Constructs an arc with a common tangent to the input segment, a given radius and a chord length.
[Visual Basic .NET] Public Sub ConstructTangentRadiusChordEx ( _ ByVal Segment As ISegment, _ ByVal atStart As Boolean, _ ByVal isCCW As Boolean, _ ByVal inRadius As Double, _ ByVal chordDistance As Double, _ ByVal IsMinor As Boolean _ )
[C#] public void ConstructTangentRadiusChordEx ( ISegment Segment, bool atStart, bool isCCW, double inRadius, double chordDistance, bool IsMinor );
[C++]
HRESULT ConstructTangentRadiusChordEx(
ISegment* Segment,
VARIANT_BOOL atStart,
VARIANT_BOOL isCCW,
double inRadius,
double chordDistance,
VARIANT_BOOL IsMinor
);
[C++]
Parameters Segment
Segment is a parameter of type ISegment* atStart
atStart is a parameter of type bool isCCW
isCCW is a parameter of type bool inRadius
inRadius is a parameter of type double chordDistance
chordDistance is a parameter of type double IsMinor
IsMinor is a parameter of type bool
Please see the ConstructTangentRadiusChord method for more details.
-isCCW stands for "is counter clockwise"
-If IsMinor is true the central angle of the output Arc will be smaller or equal than PI (Approx. 3.14 Rad)
private void ConstructTangentRadiusChordEx() { IConstructCircularArc2 constructCircularArc=new CircularArcClass(); ICircularArc circularArc=constructCircularArc as ICircularArc; IPoint fromPoint=new PointClass(); fromPoint.PutCoords(100, 100); IPoint toPoint=new PointClass(); toPoint.PutCoords(50, 50); ILine line=new LineClass(); line.PutCoords(fromPoint, toPoint); constructCircularArc.ConstructTangentRadiusChordEx(line as ISegment, true, true, 100, 50, true); 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 ConstructTangentRadiusChordEx()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc2
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
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
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.ConstructTangentRadiusChordEx(pLine1, False, True, 50, 100, True)
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