Provides access to members that construct a circular arc using other geometries and values.
Description
IConstructCircularArc allows CircularArcs to be constructed given a wide variety of parameters. The construction method varies depending on what parameters the user has available. The input parameters used in the various constructions include the Center Point, the From Point, the To Point, a Thru Point, IsCounterClockwise Orientation, the Arc Distance, the Bearing Angle, the Central Angle, the Chord Distance, the Tangent Distance, the Radius, IsMinor Orientation, Fillet Segments, and a Tangent Segment.
The Central Angle used for construction must be positive (since the orientation is already specified). The Arc Distance is the length of the CircularArc to be constructed. The Bearing Angle is the Angle between the From Point and To Point of the CircularArc to be constructed. The Chord Distance is the length of the chord between the From Point and To Point. The Tangent Distance is the length of the line between an endpoint of the CircularArc to be constructed and the point of intersection between the embedded extension of the lines Tangent to the endpoints. The Tangent Segment is the segment that determines an endpoint of the CircularArc to be constructed and the tangent at that endpoint.
Most construction methods use a single specified endpoint and a variety of parameters to calculate the other endpoint. The calculated endpoint is rarely at the exact location of the theoretically calculated location based on small numerical inaccuracies in the computerized calculation process. This is important to remember when attaching other segments to the constructed CircularArc. ConstructThreePoints and the EndPoint construction methods always gives exact endpoints since they are both given as input.
Members
Name | Description | |
---|---|---|
ConstructArcDistance | Constructs an arc from a center point, a starting point, and an arc length. | |
ConstructBearingAngleArc | Constructs an arc with the given chord bearing, central angle and arc distance. | |
ConstructBearingAngleChord | Constructs an arc with the given chord bearing, central angle and chord distance. | |
ConstructBearingAngleTangent | Constructs an arc with the given chord bearing, central angle and tangent distance. | |
ConstructBearingArcTangent | Constructs an arc with the given chord bearing, arc distance and tangent distance. | |
ConstructBearingChordArc | Constructs an arc with the given chord bearing, chord distance and arc distance (negative for clockwise orientation). | |
ConstructBearingChordTangent | Constructs an arc with the given chord bearing, chord distance and tangent distance. | |
ConstructBearingRadiusAngle | Constructs an arc with the given chord bearing, radius and central angle. | |
ConstructBearingRadiusArc | Constructs an arc with the given chord bearing, radius and arc distance. | |
ConstructBearingRadiusChord | Constructs an arc with the given chord bearing, radius and chord distance. | |
ConstructBearingRadiusTangent | Constructs an arc with the given chord bearing, radius and tangent distance. | |
ConstructChordDistance | Constructs an arc from a center point, a starting point, and a chord length. | |
ConstructCircle | Constructs a circle of a given radius and orientation. | |
ConstructEndPointsAngle | Constructs an arc from the given endpoints and central angle. | |
ConstructEndPointsArc | Constructs an arc from the given endpoints and arc distance. | |
ConstructEndPointsChordHeight | Constructs an arc with specified endpoints and and chord height. | |
ConstructEndPointsRadius | Constructs an arc from the given endpoints and radius. | |
ConstructEndPointsTangent | Constructs an arc from the given endpoints and tangent distance. | |
ConstructFilletPoint | Constructs an arc of given start point near first segment and tangent to two segments. hintPoint can be nil or can be a location near the desired fillet. | |
ConstructFilletRadius | Constructs an arc of given radius and tangent to two segments. hintPoint can be nil or can be a location near the desired fillet. | |
ConstructTangentAndPoint | Constructs an arc with one endpoint being p, tangent to s, and connected to s. If atFrom is true, the connection is at s's from point, otherwise at s's to point. | |
ConstructTangentAngleArc | Constructs an arc with a common tangent to the input segment, a given central angle and an arc length. | |
ConstructTangentAngleChord | Constructs an arc with a common tangent to the input segment, a given central angle and a chord length. | |
ConstructTangentAngleTangent | Constructs an arc with a common tangent to the input segment, a given central angle and a tangent length. | |
ConstructTangentArcTangent | Constructs an arc with a common tangent to the input segment, a given arc length and a tangent length. | |
ConstructTangentChordArc | Constructs an arc with a common tangent to the input segment, a given chord length and an arc length. | |
ConstructTangentChordTangent | Constructs an arc with a common tangent to input segment, a given chord length and a tangent length. | |
ConstructTangentDistance | Constructs an arc from a center point, a starting point, and an tangent length. | |
ConstructTangentRadiusAngle | Constructs an arc with a common tangent to the input segment, a given radius and a central angle. | |
ConstructTangentRadiusArc | Constructs an arc having a common tangent to the input segment, a given radius and an arc length. | |
ConstructTangentRadiusChord | Constructs an arc with a common tangent to the input segment, a given radius and a chord length. | |
ConstructTangentRadiusTangent | Constructs an arc with a common tangent to the input segment, a given radius and a tangent length. | |
ConstructThreePoints | Constructs an arc from three points. useExistingCenter can be set to true in order to help create a reasonable arc when from and to are identical. | |
QueryFilletRadiusRange | Returns minimum and maximum radius for fillet to touch both input segments. hintPoint can be nil or can be a location near the desired fillet. |
IConstructCircularArc.ConstructArcDistance Method
Constructs an arc from a center point, a starting point, and an arc length.
Public Sub ConstructArcDistance ( _
ByVal Center As IPoint, _
ByVal from As IPoint, _
ByVal isCCW As Boolean, _
ByVal arcDistance As Double _
)
public void ConstructArcDistance (
IPoint Center,
IPoint from,
bool isCCW,
double arcDistance
);
Description
Constructs a CircularArc given the Center Point, From Point, the desired orientation, and the desired CircularArc Length. The Arc Distance must be less than 2 * Pi * the Radius (the distance between the From Point and the Center Point), otherwise an error is returned.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructArcDistance()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
IPoint toPoint = new PointClass();
fromPoint.PutCoords(100, 100);
toPoint.PutCoords(50, 50);
constructCircularArc.ConstructArcDistance(fromPoint, toPoint, true, 150);
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 ConstructArcDistance()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim pCenterPoint As ESRI.ArcGIS.Geometry.IPoint
Dim pStartPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
pCenterPoint = New ESRI.ArcGIS.Geometry.Point
pStartPoint = New ESRI.ArcGIS.Geometry.Point
pCenterPoint.PutCoords(100, 100)
pStartPoint.PutCoords(50, 50)
pConstructCircularArc.ConstructArcDistance(pCenterPoint, pStartPoint, True, 150)
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.ConstructBearingAngleArc Method
Constructs an arc with the given chord bearing, central angle and arc distance.
Public Sub ConstructBearingAngleArc ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal arcDistance As Double _
)
public void ConstructBearingAngleArc (
IPoint from,
double inAngle,
bool isCCW,
double CentralAngle,
double arcDistance
);
Description
Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Central Angle, and the desired CircularArc Length. The Bearing Angle and Central Angle are measured in radians.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructBearingAngleArc()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(100, 100);
//The angles should be in Radians (Radians = Degrees * PI/180)
constructCircularArc.ConstructBearingAngleArc(fromPoint, 0, true, (90 * (Math.PI / 180)), 150);
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 ConstructBearingAngleArc()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
Dim Pi As Double
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructBearingAngleArc(pFromPoint, 0, True, (90 * (Pi / 180)), 150)
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.ConstructBearingAngleChord Method
Constructs an arc with the given chord bearing, central angle and chord distance.
Public Sub ConstructBearingAngleChord ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal chordDistance As Double _
)
public void ConstructBearingAngleChord (
IPoint from,
double inAngle,
bool isCCW,
double CentralAngle,
double chordDistance
);
Description
Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Central Angle, and the desired Chord Distance. The Bearing Angle and Central Angle are measured in radians.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructBearingAngleChord()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(100, 100);
//The angles should be in Radians (Radians = Degrees * PI/180)
constructCircularArc.ConstructBearingAngleChord(fromPoint, 0, true, (90 * (Math.PI / 180)), 150);
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 ConstructBearingAngleChord()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim Pi As Double
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructBearingAngleChord(pFromPoint, 0, True, (90 * (Pi / 180)), 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
IConstructCircularArc.ConstructBearingAngleTangent Method
Constructs an arc with the given chord bearing, central angle and tangent distance.
Public Sub ConstructBearingAngleTangent ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal tangentDistance As Double _
)
public void ConstructBearingAngleTangent (
IPoint from,
double inAngle,
bool isCCW,
double CentralAngle,
double tangentDistance
);
Description
Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Central Angle, and the desired Tangent Distance. The Bearing Angle and Central Angle are measured in radians. The Central Angle should be less than 2 * Pi to ensure proper results. If the Central Angle is greater than Pi, the Tangent Distance is measured opposite the direction of the tangents.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructBearingAngleTangent()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(100, 100);
//The angles should be in Radians (Radians = Degrees * PI/180)
constructCircularArc.ConstructBearingAngleTangent(fromPoint, 0, true, (90 * (Math.PI / 180)), 300);
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 ConstructBearingAngleTangent()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim Pi As Double
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructBearingAngleTangent(pFromPoint, 0, True, (90 * Pi) / 180, 300)
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.ConstructBearingArcTangent Method
Constructs an arc with the given chord bearing, arc distance and tangent distance.
Public Sub ConstructBearingArcTangent ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal arcDistance As Double, _
ByVal tangentDistance As Double _
)
public void ConstructBearingArcTangent (
IPoint from,
double inAngle,
bool isCCW,
double arcDistance,
double tangentDistance
);
Description
Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired CircularArc Length, and the desired Tangent Distance. The Bearing Angle is measured in radians. The Tangent Distance must be greater than half the Arc Distance, otherwise an error is returned.
Remarks
-isCCW stands for "is counter clockwise"
}
Private Sub ConstructBearingArcTangent()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim Pi As Double
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructBearingArcTangent(pFromPoint, 0, True, 100, 300)
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.ConstructBearingChordArc Method
Constructs an arc with the given chord bearing, chord distance and arc distance (negative for clockwise orientation).
Public Sub ConstructBearingChordArc ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal chordDistance As Double, _
ByVal arcDistance As Double _
)
public void ConstructBearingChordArc (
IPoint from,
double inAngle,
bool isCCW,
double chordDistance,
double arcDistance
);
Description
Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Chord Distance, and the desired CircularArc Length. The Bearing Angle is measured in radians. The Chord Distance must be less than the Arc Distance, otherwise an error is returned.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructBearingChordArc()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(100, 100);
//The angles should be in Radians (Radians = Degrees * PI/180)
constructCircularArc.ConstructBearingChordArc(fromPoint, 0, true, 100, 300);
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 ConstructBearingChordArc()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim Pi As Double
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructBearingChordArc(pFromPoint, 0, True, 100, 300)
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.ConstructBearingChordTangent Method
Constructs an arc with the given chord bearing, chord distance and tangent distance.
Public Sub ConstructBearingChordTangent ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal chordDistance As Double, _
ByVal tangentDistance As Double _
)
public void ConstructBearingChordTangent (
IPoint from,
double inAngle,
bool isCCW,
double chordDistance,
double tangentDistance
);
Description
Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Chord Distance, and the desired Tangent Distance. The Bearing Angle is measured in radians. The Tangent Distance must be greater than half the Chord Distance, otherwise an error is returned.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructBearingChordTangent()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(100, 100);
//The angles should be in Radians (Radians = Degrees * PI/180)
constructCircularArc.ConstructBearingChordTangent(fromPoint, 0, true, 100, 300);
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 ConstructBearingChordTangent()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim Pi As Double
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructBearingChordTangent(pFromPoint, 0, True, 100, 300)
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.ConstructBearingRadiusAngle Method
Constructs an arc with the given chord bearing, radius and central angle.
Public Sub ConstructBearingRadiusAngle ( _
ByVal startPoint As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal inRadius As Double, _
ByVal CentralAngle As Double _
)
public void ConstructBearingRadiusAngle (
IPoint startPoint,
double inAngle,
bool isCCW,
double inRadius,
double CentralAngle
);
Description
Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Radius, and the desired Central Angle. The Bearing Angle and Central Angle are measured in radians. The Central Angle should not be greater than 2 * Pi.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructBearingRadiusAngle()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(100, 100);
//The angles should be in Radians (Radians = Degrees * PI/180)
constructCircularArc.ConstructBearingRadiusAngle(fromPoint, 0, true, 40, 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 ConstructBearingRadiusAngle()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim Pi As Double
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructBearingRadiusAngle(pFromPoint, 0, True, 40, 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.ConstructBearingRadiusArc Method
Constructs an arc with the given chord bearing, radius and arc distance.
Public Sub ConstructBearingRadiusArc ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal inRadius As Double, _
ByVal arcDistance As Double _
)
public void ConstructBearingRadiusArc (
IPoint from,
double inAngle,
bool isCCW,
double inRadius,
double arcDistance
);
Description
Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Radius, and the desired CircularArc Length. The Bearing Angle is measured in radians. The Arc Distance should not be greater than 2 * Pi * Radius.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructBearingRadiusArc()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(100, 100);
//The angles should be in Radians (Radians = Degrees * PI/180)
constructCircularArc.ConstructBearingRadiusArc(fromPoint, 0, true, 40, 40);
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 ConstructBearingRadiusArc()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim Pi As Double
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructBearingRadiusArc(pFromPoint, 0, True, 40, 40)
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.ConstructBearingRadiusChord Method
Constructs an arc with the given chord bearing, radius and chord distance.
Public Sub ConstructBearingRadiusChord ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal inRadius As Double, _
ByVal chordDistance As Double, _
ByVal IsMinor As Boolean _
)
public void ConstructBearingRadiusChord (
IPoint from,
double inAngle,
bool isCCW,
double inRadius,
double chordDistance,
bool IsMinor
);
Description
Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Radius, the desired Chord Distance, and the IsMinor orientation. The Bearing Angle is measured in radians. The Chord Distance must be less than twice the Radius, otherwise an error is returned.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructBearingRadiusChord()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(100, 100);
//The angles should be in Radians (Radians = Degrees * PI/180)
constructCircularArc.ConstructBearingRadiusChord(fromPoint, 0, true, 40, 40, 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 ConstructBearingRadiusChord()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim Pi As Double
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructBearingRadiusChord(pFromPoint, 0, True, 40, 40, 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
IConstructCircularArc.ConstructBearingRadiusTangent Method
Constructs an arc with the given chord bearing, radius and tangent distance.
Public Sub ConstructBearingRadiusTangent ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal inRadius As Double, _
ByVal tangentDistance As Double _
)
public void ConstructBearingRadiusTangent (
IPoint from,
double inAngle,
bool isCCW,
double inRadius,
double tangentDistance
);
Description
Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Radius, and the desired Tangent Distance. The Bearing Angle is measured in radians.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructBearingRadiusTangent()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
fromPoint.PutCoords(100, 100);
//The angles should be in Radians (Radians = Degrees * PI/180)
constructCircularArc.ConstructBearingRadiusTangent(fromPoint, 0, true, 40, 1000);
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 ConstructBearingRadiusTangent()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim Pi As Double
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructBearingRadiusTangent(pFromPoint, 0, True, 40, 1000)
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.ConstructChordDistance Method
Constructs an arc from a center point, a starting point, and a chord length.
Public Sub ConstructChordDistance ( _
ByVal Center As IPoint, _
ByVal from As IPoint, _
ByVal isCCW As Boolean, _
ByVal chordDistance As Double _
)
public void ConstructChordDistance (
IPoint Center,
IPoint from,
bool isCCW,
double chordDistance
);
Description
Constructs a CircularArc given the Center Point, From Point, the desired orientation, and the desired Chord Length. The Chord Distance must be less than 2 * the Radius (the distance between the From Point and the Center Point), otherwise an error is returned. Only IsMinor CircularArcs can be constructed.
Remarks
-isCCW stands for "is counter clockwise"
Note : To construct a major CircularArc using the same paramaters use the IConstructCircularcArc2::ConstructChordDistanceEx method with the IsMinor parameter equal to false.
private void ConstructChordDistance()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
IPoint toPoint = new PointClass();
fromPoint.PutCoords(100, 100);
toPoint.PutCoords(50, 50); constructCircularArc.ConstructChordDistance(fromPoint, toPoint, true, 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);
}
Private Sub ConstructChordDistance()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim pCenterPoint As ESRI.ArcGIS.Geometry.IPoint
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pCenterPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
pCenterPoint.PutCoords(50, 50)
pConstructCircularArc.ConstructChordDistance(pCenterPoint, pFromPoint, True, 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
IConstructCircularArc.ConstructCircle Method
Constructs a circle of a given radius and orientation.
Public Sub ConstructCircle ( _
ByVal CenterPoint As IPoint, _
ByVal Radius As Double, _
ByVal isCCW As Boolean _
)
public void ConstructCircle (
IPoint CenterPoint,
double Radius,
bool isCCW
);
Description
Constructs a complete circle given the Center Point, the Radius of the circle, and the desired Orientation. The From and To Points are located on the YMax point of the CircularArc.
Remarks
-isCCW stands for "is counter clockwise"
public ICircularArc CreateCircleArc(IPoint point, double radius, bool isCCW)
{
ICircularArc circularArc = new CircularArcClass();
IConstructCircularArc construtionCircularArc = circularArc as IConstructCircularArc;
construtionCircularArc.ConstructCircle(point, radius, isCCW);
return circularArc;
}
Public Function CreateCArcFull(ByVal pCPoint As ESRI.ArcGIS.Geometry.IPoint, ByVal Radius As Double, _
ByVal IsCCW As Boolean) As ESRI.ArcGIS.Geometry.ICircularArc
Dim pConstCArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
pConstCArc = New ESRI.ArcGIS.Geometry.CircularArc
pConstCArc.ConstructCircle(pCPoint, Radius, IsCCW)
CreateCArcFull = pConstCArc
End Function
IConstructCircularArc.ConstructEndPointsAngle Method
Constructs an arc from the given endpoints and central angle.
Public Sub ConstructEndPointsAngle ( _
ByVal from As IPoint, _
ByVal to As IPoint, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double _
)
public void ConstructEndPointsAngle (
IPoint from,
IPoint to,
bool isCCW,
double CentralAngle
);
Description
Constructs a CircularArc given the From Point, To Point, the desired orientation, and the desired Central Angle. The Central Angle is measured in radians.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructEndPointsAngel()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
IPoint toPoint = new PointClass();
fromPoint.PutCoords(100, 100);
toPoint.PutCoords(50, 50);
constructCircularArc.ConstructEndPointsAngle(fromPoint, toPoint, true, 90);
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 ConstructEndPointsAngle()
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
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
pFromPoint.PutCoords(100, 100)
pToPoint.PutCoords(50, 50)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructEndPointsAngle(pFromPoint, pToPoint, True, 90 * Pi / 180)
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.ConstructEndPointsArc Method
Constructs an arc from the given endpoints and arc distance.
Public Sub ConstructEndPointsArc ( _
ByVal from As IPoint, _
ByVal to As IPoint, _
ByVal isCCW As Boolean, _
ByVal arcDistance As Double _
)
public void ConstructEndPointsArc (
IPoint from,
IPoint to,
bool isCCW,
double arcDistance
);
Description
Constructs a CircularArc given the From Point, To Point, the desired orientation, and the desired CircularArc Length. The Arc Distance must be greater than the distance between the From Point and the To Point, otherwise an error is returned.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructEndPointsArc()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
IPoint toPoint = new PointClass();
fromPoint.PutCoords(100, 100);
toPoint.PutCoords(50, 50);
constructCircularArc.ConstructEndPointsArc(fromPoint, toPoint, true, 200);
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 ConstructEndPointsArc()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim pToPoint As ESRI.ArcGIS.Geometry.IPoint
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pToPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
pToPoint.PutCoords(50, 50)
pConstructCircularArc.ConstructEndPointsArc(pFromPoint, pToPoint, True, 200)
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.ConstructEndPointsChordHeight Method
Constructs an arc with specified endpoints and and chord height.
Public Sub ConstructEndPointsChordHeight ( _
ByVal from As IPoint, _
ByVal to As IPoint, _
ByVal isCCW As Boolean, _
ByVal ChordHeight As Double _
)
public void ConstructEndPointsChordHeight (
IPoint from,
IPoint to,
bool isCCW,
double ChordHeight
);
Description
Constructs a CircularArc given the From Point, To Point, the desired orientation, and the desired Chord Height.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructEndPointsChordHeight()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint1 = new PointClass();
fromPoint1.PutCoords(100, 100);
IPoint toPoint1 = new PointClass();
toPoint1.PutCoords(50, 50);
constructCircularArc.ConstructEndPointsChordHeight(fromPoint1, toPoint1, true, 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);
}
Private Sub ConstructEndPointsChordHeight()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim pToPoint As ESRI.ArcGIS.Geometry.IPoint
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pToPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
pToPoint.PutCoords(50, 50)
pConstructCircularArc.ConstructEndPointsChordHeight(pFromPoint, pToPoint, True, 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
IConstructCircularArc.ConstructEndPointsRadius Method
Constructs an arc from the given endpoints and radius.
Public Sub ConstructEndPointsRadius ( _
ByVal from As IPoint, _
ByVal to As IPoint, _
ByVal isCCW As Boolean, _
ByVal inRadius As Double, _
ByVal IsMinor As Boolean _
)
public void ConstructEndPointsRadius (
IPoint from,
IPoint to,
bool isCCW,
double inRadius,
bool IsMinor
);
Description
Constructs a CircularArc given the From Point, To Point, the desired Radius, IsCounterClockwise direction, and IsMinor value.
Remarks
private void ConstructEndPointsRadius()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
IPoint toPoint = new PointClass();
fromPoint.PutCoords(100, 100);
toPoint.PutCoords(50, 50);
constructCircularArc.ConstructEndPointsRadius(fromPoint, toPoint, true, 90, 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 ConstructEndPointsRadius()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim pToPoint As ESRI.ArcGIS.Geometry.IPoint
Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
pFromPoint = New ESRI.ArcGIS.Geometry.Point
pToPoint = New ESRI.ArcGIS.Geometry.Point
pFromPoint.PutCoords(100, 100)
pToPoint.PutCoords(50, 50)
pConstructCircularArc.ConstructEndPointsRadius(pFromPoint, pToPoint, True, 100, False)
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.ConstructEndPointsTangent Method
Constructs an arc from the given endpoints and tangent distance.
Public Sub ConstructEndPointsTangent ( _
ByVal from As IPoint, _
ByVal to As IPoint, _
ByVal isCCW As Boolean, _
ByVal tangentDistance As Double _
)
public void ConstructEndPointsTangent (
IPoint from,
IPoint to,
bool isCCW,
double tangentDistance
);
Description
Constructs a CircularArc given the From Point, To Point, the desired orientation, and the desired Tangent Distance. The Tangent Distance must be greater than half the distance between the From Point and the To Point, otherwise an error is returned.
Remarks
-isCCW stands for "is counter clockwise"
IConstructCircularArc.ConstructFilletPoint Method
Constructs an arc of given start point near first segment and tangent to two segments. hintPoint can be nil or can be a location near the desired fillet.
Public Sub ConstructFilletPoint ( _
ByVal s1 As ISegment, _
ByVal s2 As ISegment, _
ByVal from As IPoint, _
ByVal hintPoint As IPoint _
)
public void ConstructFilletPoint (
ISegment s1,
ISegment s2,
IPoint from,
IPoint hintPoint
);
Description
A Fillet Arc is a CircularArc constructed between two input segments such that the CircularArc is tangential to both embedded segments at the Fillet Arc endpoints. ConstructFilletPoint constructs a Fillet Arc between two input Segments given a suggested From Point and a Hint Point. The From Point of the Fillet Arc is the nearest point on one of the input segments to the input From Point. The Hint Point determines which Fillet Arc is to be constructed and the region in which the desired Fillet Arc should exist. The To Point of the Fillet Arc lies on the embedded extension of the other segment. If the Hint Point lies in a region in which the Fillet Arc cannot be constructed given the input From Point, an error is returned.
Remarks
private void ConstructFilletPoint()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint1 = new PointClass();
fromPoint1.PutCoords(100, 100);
IPoint toPoint1 = new PointClass();
toPoint1.PutCoords(50, 50);
ILine line1 = new LineClass();
line1.PutCoords(fromPoint1, toPoint1);
IPoint fromPoint2 = new PointClass();
fromPoint2.PutCoords(100, 100);
IPoint toPoint2 = new PointClass();
toPoint2.PutCoords(150, 50);
ILine line2 = new LineClass();
line2.PutCoords(fromPoint2, toPoint2);
IPoint hintPoint = new PointClass();
hintPoint.PutCoords(100, 75);
constructCircularArc.ConstructFilletPoint(line1 as ISegment, line2 as ISegment, line1.ToPoint, hintPoint);
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 ConstructFilletPoint()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
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
Dim pLine2 As ESRI.ArcGIS.Geometry.ILine
Dim pHintPoint As ESRI.ArcGIS.Geometry.IPoint
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
pLine2 = New ESRI.ArcGIS.Geometry.Line
pFromPoint.PutCoords(100, 100)
pToPoint.PutCoords(50, 50)
pLine1.PutCoords(pFromPoint, pToPoint)
pFromPoint.PutCoords(100, 100)
pToPoint.PutCoords(150, 50)
pLine2.PutCoords(pFromPoint, pToPoint)
pHintPoint = New ESRI.ArcGIS.Geometry.Point
pHintPoint.PutCoords(100, 75)
pConstructCircularArc.ConstructFilletPoint(pLine1, pLine2, pLine1.ToPoint, pHintPoint)
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.ConstructFilletRadius Method
Constructs an arc of given radius and tangent to two segments. hintPoint can be nil or can be a location near the desired fillet.
Public Sub ConstructFilletRadius ( _
ByVal s1 As ISegment, _
ByVal s2 As ISegment, _
ByVal inRadius As Double, _
ByVal hintPoint As IPoint _
)
public void ConstructFilletRadius (
ISegment s1,
ISegment s2,
double inRadius,
IPoint hintPoint
);
Description
A Fillet Arc is a CircularArc constructed between two input segments such that the CircularArc is tangential to both embedded segments at the Fillet Arc endpoints. ConstructFilletRadius constructs a Fillet Arc of a given input Radius between two input Segments given a Hint Point. The Hint Point determines which Fillet Arc is to be constructed. The endpoints of the Fillet Arc lie on the embedded extensions of the input Segments. The From Point always lies on the embedded extension of the first input segment. If the Hint Point lies in a region in which the Fillet Arc cannot be constructed with the given Radius, an error is returned. The input Radius must be greater than 0, otherwise an error is returned. Use QueryFilletRadiusRange to find the range of radii for a given set of inputs such that the constructed Fillet Arc has endpoints on both of the non-extended input segments.
Remarks
private void ConstructFilletRadius()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint1 = new PointClass();
fromPoint1.PutCoords(100, 100);
IPoint toPoint1 = new PointClass();
toPoint1.PutCoords(50, 50);
ILine line1 = new LineClass();
line1.PutCoords(fromPoint1, toPoint1);
IPoint fromPoint2 = new PointClass();
fromPoint2.PutCoords(100, 100);
IPoint toPoint2 = new PointClass();
toPoint2.PutCoords(150, 50);
ILine line2 = new LineClass();
line2.PutCoords(fromPoint2, toPoint2);
IPoint hintPoint = new PointClass();
hintPoint.PutCoords(100, 75);
constructCircularArc.ConstructFilletRadius(line1 as ISegment, line2 as ISegment, 50, hintPoint);
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 ConstructFilletRadius()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
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
Dim pLine2 As ESRI.ArcGIS.Geometry.ILine
Dim pHintPoint As ESRI.ArcGIS.Geometry.IPoint
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
pLine2 = New ESRI.ArcGIS.Geometry.Line
pFromPoint.PutCoords(100, 100)
pToPoint.PutCoords(50, 50)
pLine1.PutCoords(pFromPoint, pToPoint)
pFromPoint.PutCoords(100, 100)
pToPoint.PutCoords(150, 50)
pLine2.PutCoords(pFromPoint, pToPoint)
pHintPoint = New ESRI.ArcGIS.Geometry.Point
pHintPoint.PutCoords(100, 75)
pConstructCircularArc.ConstructFilletRadius(pLine1, pLine2, 50, pHintPoint)
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.ConstructTangentAndPoint Method
Constructs an arc with one endpoint being p, tangent to s, and connected to s. If atFrom is true, the connection is at s's from point, otherwise at s's to point.
Public Sub ConstructTangentAndPoint ( _
ByVal s As ISegment, _
ByVal atFrom As Boolean, _
ByVal p As IPoint _
)
public void ConstructTangentAndPoint (
ISegment s,
bool atFrom,
IPoint p
);
Description
Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), and the desired To Point. The Center Point of the constructed CircularArc lies on the Normal to the desired segment endpoint on the same side of the extended tangent as the To Point. If the To Point lies on the tangent line from the desired segment endpoint, an IsLine CircularArc is constructed.
Remarks
private void ConstructTangentAndPoint()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint1 = new PointClass();
fromPoint1.PutCoords(100, 100);
IPoint toPoint1 = new PointClass();
toPoint1.PutCoords(50, 50);
ILine line1 = new LineClass();
line1.PutCoords(fromPoint1, toPoint1);
IPoint point = new PointClass();
point.PutCoords(100, 75);
constructCircularArc.ConstructTangentAndPoint(line1 as ISegment, false, point);
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 ConstructTangentAndPoint()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
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
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)
pConstructCircularArc.ConstructTangentAndPoint(pLine1, False, pPoint)
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.ConstructTangentAngleArc Method
Constructs an arc with a common tangent to the input segment, a given central angle and an arc length.
Public Sub ConstructTangentAngleArc ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal arcDistance As Double _
)
public void ConstructTangentAngleArc (
ISegment Segment,
bool atStart,
bool isCCW,
double CentralAngle,
double arcDistance
);
Description
Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Central Angle, and the desired CircularArc Length. The Central Angle is measured in radians. A full CircularArc is constructed if the Central Angle is greater than 2*Pi.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructTangentAngleArc()
{
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.ConstructTangentAngleArc(line as ISegment, false, true, Math.PI, 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);
}
Private Sub ConstructTangentAngleArc()
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.ConstructTangentAngleArc(pLine1, False, True, Pi, 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
IConstructCircularArc.ConstructTangentAngleChord Method
Constructs an arc with a common tangent to the input segment, a given central angle and a chord length.
Public Sub ConstructTangentAngleChord ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal chordDistance As Double _
)
public void ConstructTangentAngleChord (
ISegment Segment,
bool atStart,
bool isCCW,
double CentralAngle,
double chordDistance
);
Description
Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Central Angle, and the desired Chord Length. The Central Angle is measured in radians. Only IsMinor CircularArcs can be constructed. The Central Angle should be between 0 and Pi (half CircularArc) for the CircularArc to be properly constructed as expected.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructTangentAngleChord()
{
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.ConstructTangentAngleChord(line as ISegment, false, true, Math.PI, 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);
}
Private Sub ConstructTangentAngleChord()
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.ConstructTangentAngleChord(pLine1, False, False, Pi, 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
IConstructCircularArc.ConstructTangentAngleTangent Method
Constructs an arc with a common tangent to the input segment, a given central angle and a tangent length.
Public Sub ConstructTangentAngleTangent ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal tangentDistance As Double _
)
public void ConstructTangentAngleTangent (
ISegment Segment,
bool atStart,
bool isCCW,
double CentralAngle,
double tangentDistance
);
Description
Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Central Angle, and the desired Tangent Distance. The Central Angle is measured in radians. If the Central Angle is greater than or equal to Pi (half CircularArc), an empty CircularArc is constructed.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructTangentAngleTangent()
{
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.ConstructTangentAngleTangent(line as ISegment, false, true, Math.PI / 2, 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);
}
Private Sub ConstructTangentAngleTangent()
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.ConstructTangentAngleTangent(pLine1, False, True, Pi / 2, 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
IConstructCircularArc.ConstructTangentArcTangent Method
Constructs an arc with a common tangent to the input segment, a given arc length and a tangent length.
Public Sub ConstructTangentArcTangent ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal arcDistance As Double, _
ByVal tangentDistance As Double _
)
public void ConstructTangentArcTangent (
ISegment Segment,
bool atStart,
bool isCCW,
double arcDistance,
double tangentDistance
);
Description
Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired CircularArc Length, and the desired Tangent Distance. Only IsMinor CircularArcs can be constructed. The Tangent Distance must be greater than half the Arc Distance, otherwise an error is returned.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructTangentArcTangent()
{
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.ConstructTangentArcTangent(line as ISegment, false, true, 157.08, 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);
}
Private Sub ConstructTangentArcTangent()
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.ConstructTangentArcTangent(pLine1, False, True, 157.08, 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
IConstructCircularArc.ConstructTangentChordArc Method
Constructs an arc with a common tangent to the input segment, a given chord length and an arc length.
Public Sub ConstructTangentChordArc ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal chordDistance As Double, _
ByVal arcDistance As Double _
)
public void ConstructTangentChordArc (
ISegment Segment,
bool atStart,
bool isCCW,
double chordDistance,
double arcDistance
);
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 CircularArc Length. Only IsMinor CircularArcs can be constructed.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructTangentChordArc()
{
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.ConstructTangentChordArc(line as ISegment, false, true, 100, 157.08);
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 ConstructTangentChordArc()
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.ConstructTangentChordArc(pLine1, False, True, 100, 157.08)
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.ConstructTangentChordTangent Method
Constructs an arc with a common tangent to input segment, a given chord length and a tangent length.
Public Sub ConstructTangentChordTangent ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal chordDistance As Double, _
ByVal tangentDistance As Double _
)
public void ConstructTangentChordTangent (
ISegment Segment,
bool atStart,
bool isCCW,
double chordDistance,
double tangentDistance
);
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
IConstructCircularArc.ConstructTangentDistance Method
Constructs an arc from a center point, a starting point, and an tangent length.
Public Sub ConstructTangentDistance ( _
ByVal Center As IPoint, _
ByVal from As IPoint, _
ByVal isCCW As Boolean, _
ByVal tangentDistance As Double _
)
public void ConstructTangentDistance (
IPoint Center,
IPoint from,
bool isCCW,
double tangentDistance
);
Description
Constructs a CircularArc given the Center Point, From Point, the desired orientation, and the desired Tangent Distance.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructTangentDistance()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
IPoint toPoint = new PointClass();
fromPoint.PutCoords(100, 100);
toPoint.PutCoords(50, 50);
constructCircularArc.ConstructTangentDistance(fromPoint, toPoint, true, 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 ConstructTangentDistance()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
Dim Pi As Double
Dim pCenterPoint As ESRI.ArcGIS.Geometry.IPoint
Dim pStartPoint As ESRI.ArcGIS.Geometry.IPoint
pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc
pCArc = pConstructCircularArc
Pi = 4 * Math.Atan(1) 'Calculate the value of pi.
pCenterPoint = New ESRI.ArcGIS.Geometry.Point
pStartPoint = New ESRI.ArcGIS.Geometry.Point
pCenterPoint.PutCoords(200, 100)
pStartPoint.PutCoords(100, 100)
'The angles should be in Radians (Radians = Degrees * PI/180)
pConstructCircularArc.ConstructTangentDistance(pCenterPoint, pStartPoint, True, 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
IConstructCircularArc.ConstructTangentRadiusAngle Method
Constructs an arc with a common tangent to the input segment, a given radius and a central angle.
Public Sub ConstructTangentRadiusAngle ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal inRadius As Double, _
ByVal CentralAngle As Double _
)
public void ConstructTangentRadiusAngle (
ISegment Segment,
bool atStart,
bool isCCW,
double inRadius,
double CentralAngle
);
Description
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.
Remarks
-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.ConstructTangentRadiusArc Method
Constructs an arc having a common tangent to the input segment, a given radius and an arc length.
Public Sub ConstructTangentRadiusArc ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal inRadius As Double, _
ByVal arcDistance As Double _
)
public void ConstructTangentRadiusArc (
ISegment Segment,
bool atStart,
bool isCCW,
double inRadius,
double arcDistance
);
Description
Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Radius, and the desired CircularArc Length. If the Arc Distance is greater than 2 * Pi * Radius, a full circle is constructed.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructTangentRadiusArc()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint = new PointClass();
IPoint toPoint = new PointClass();
fromPoint.PutCoords(100, 100);
toPoint.PutCoords(50, 50);
ILine line = new LineClass();
line.PutCoords(fromPoint, toPoint);
constructCircularArc.ConstructTangentRadiusArc(line as ISegment, false, true, 50, 157.08);
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 ConstructTangentRadiusArc()
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.ConstructTangentRadiusArc(pLine1, False, True, 50, 157.08)
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.ConstructTangentRadiusChord Method
Constructs an arc with a common tangent to the input segment, a given radius and a chord length.
Public Sub ConstructTangentRadiusChord ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal inRadius As Double, _
ByVal chordDistance As Double _
)
public void ConstructTangentRadiusChord (
ISegment Segment,
bool atStart,
bool isCCW,
double inRadius,
double chordDistance
);
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.
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);
}
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
IConstructCircularArc.ConstructTangentRadiusTangent Method
Constructs an arc with a common tangent to the input segment, a given radius and a tangent length.
Public Sub ConstructTangentRadiusTangent ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal inRadius As Double, _
ByVal tangentDistance As Double _
)
public void ConstructTangentRadiusTangent (
ISegment Segment,
bool atStart,
bool isCCW,
double inRadius,
double tangentDistance
);
Description
Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Radius, and the desired Tangent Distance.
Remarks
-isCCW stands for "is counter clockwise"
private void ConstructTangentRadiusTangent()
{
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.ConstructTangentRadiusTangent(line as ISegment, false, true, 50, 50);
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 ConstructTangentRadiusTangent()
Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
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.ConstructTangentRadiusTangent(pLine1, False, True, 50, 50)
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.ConstructThreePoints Method
Constructs an arc from three points. useExistingCenter can be set to true in order to help create a reasonable arc when from and to are identical.
Public Sub ConstructThreePoints ( _
ByVal from As IPoint, _
ByVal middle As IPoint, _
ByVal to As IPoint, _
ByVal useExistingCenter As Boolean _
)
public void ConstructThreePoints (
IPoint from,
IPoint middle,
IPoint to,
bool useExistingCenter
);
Description
Given a From Point, a Thru Point, and a To Point, the unique CircularArc defined by those points is constructed. The From and To Points become the From and To Points of the CircularArc. The Thru Point is a point that lies somewhere on the CircularArc. For every three points, a single well-defined CircularArc can be created. (The only exception is if all three points are colinear and the Thru Point is not between the From and To Points.)
Remarks
ConstructThreePoints is excellent for creating a CircularArc with exact endpoint coordinates.
The from and to points may be identical, in which case the third point, if it is distinct, will be on the circle and diametrically opposed to the from/to point (orientation will be clockwise).
public ICircularArc CreateCArcThreePoint(IPoint fromPoint, IPoint thruPoint,IPoint toPoint)
{
ICircularArc circularArcThreePoint = new CircularArcClass();
IConstructCircularArc construtionCircularArc = circularArcThreePoint as IConstructCircularArc;
construtionCircularArc.ConstructThreePoints(fromPoint, thruPoint, toPoint, true);
return circularArcThreePoint;
}
Public Function CreateCArcThreePoint(ByVal FromPoint As ESRI.ArcGIS.Geometry.IPoint, ByVal ThruPoint As ESRI.ArcGIS.Geometry.IPoint, ByVal ToPoint As ESRI.ArcGIS.Geometry.IPoint) As ESRI.ArcGIS.Geometry.ICircularArc
Dim ConstCArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
CreateCArcThreePoint = New ESRI.ArcGIS.Geometry.CircularArc
ConstCArc = CreateCArcThreePoint
ConstCArc.ConstructThreePoints(FromPoint, ThruPoint, ToPoint, True)
End Function
IConstructCircularArc.QueryFilletRadiusRange Method
Returns minimum and maximum radius for fillet to touch both input segments. hintPoint can be nil or can be a location near the desired fillet.
Public Sub QueryFilletRadiusRange ( _
ByVal s1 As ISegment, _
ByVal s2 As ISegment, _
ByVal hintPoint As IPoint, _
ByRef minRadius As Double, _
ByRef maxRadius As Double _
)
public void QueryFilletRadiusRange (
ISegment s1,
ISegment s2,
IPoint hintPoint,
ref double minRadius,
ref double maxRadius
);
Description
A Fillet Arc is a CircularArc constructed between two input segments such that the CircularArc is tangential to both embedded segments at the Fillet Arc endpoints. QueryFilletRadiusRange determines the Maximum and Minimum Fillet Arc Radii in the region of the given Hint Point that can be used in ConstructFilletRadius such that the endpoints of the Fillet Arc lie on both input curves without extension. If no such Radii exist for the given Hint Point, an error is returned.
Remarks
private void QueryFilletRadiusRange()
{
IConstructCircularArc constructCircularArc = new CircularArcClass();
ICircularArc circularArc = constructCircularArc as ICircularArc;
IPoint fromPoint1 = new PointClass();
fromPoint1.PutCoords(100, 100);
IPoint toPoint1 = new PointClass();
toPoint1.PutCoords(50, 50);
ILine line1 = new LineClass();
line1.PutCoords(fromPoint1, toPoint1);
IPoint fromPoint2 = new PointClass();
fromPoint2.PutCoords(100, 100);
IPoint toPoint2 = new PointClass();
toPoint2.PutCoords(150, 50);
ILine line2 = new LineClass();
line2.PutCoords(fromPoint2, toPoint2);
IPoint hintPoint = new PointClass();
hintPoint.PutCoords(100, 75);
//Discover min and max fillet radius
double minRadius;
double maxRadius;
constructCircularArc.QueryFilletRadiusRange(line1 as ISegment, line2 as ISegment, hintPoint, out minRadius, out maxRadius);
//Create a circular arc with the maxRadius
constructCircularArc.ConstructFilletRadius(line1 as ISegment, line2 as ISegment, maxRadius, hintPoint);
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);
}
Classes that implement IConstructCircularArc
Classes | Description |
---|---|
CircularArc | A portion of a circle that connects two points optionally has measure, height and ID attributes at each endpoint. |