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 central angle.
[Visual Basic .NET] Public Sub ConstructTangentRadiusAngle ( _ ByVal Segment As ISegment, _ ByVal atStart As Boolean, _ ByVal isCCW As Boolean, _ ByVal inRadius As Double, _ ByVal CentralAngle As Double _ )
[C#] public void ConstructTangentRadiusAngle ( ISegment Segment, bool atStart, bool isCCW, double inRadius, double CentralAngle );
[C++]
HRESULT ConstructTangentRadiusAngle(
ISegment* Segment,
VARIANT_BOOL atStart,
VARIANT_BOOL isCCW,
double inRadius,
double CentralAngle
);
[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 CentralAngle
CentralAngle is a parameter of type double
Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Radius, and the desired Central Angle. The Central Angle is measured in radians. A full CircularArc is constructed if the Central Angle is greater than 2*Pi.
-isCCW stands for "is counter clockwise"
private void ConstructTangentRadiusAngle() { 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.ConstructTangentRadiusAngle(line as ISegment, false, true, 50, Math.PI); 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 ConstructTangentRadiusAngle()
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)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructTangentRadiusAngle(pLine1, False, True, 50, Pi)
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
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