IConstructCircularArc Interface

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
Method ConstructArcDistance Constructs an arc from a center point, a starting point, and an arc length.
Method ConstructBearingAngleArc Constructs an arc with the given chord bearing, central angle and arc distance.
Method ConstructBearingAngleChord Constructs an arc with the given chord bearing, central angle and chord distance.
Method ConstructBearingAngleTangent Constructs an arc with the given chord bearing, central angle and tangent distance.
Method ConstructBearingArcTangent Constructs an arc with the given chord bearing, arc distance and tangent distance.
Method ConstructBearingChordArc Constructs an arc with the given chord bearing, chord distance and arc distance (negative for clockwise orientation).
Method ConstructBearingChordTangent Constructs an arc with the given chord bearing, chord distance and tangent distance.
Method ConstructBearingRadiusAngle Constructs an arc with the given chord bearing, radius and central angle.
Method ConstructBearingRadiusArc Constructs an arc with the given chord bearing, radius and arc distance.
Method ConstructBearingRadiusChord Constructs an arc with the given chord bearing, radius and chord distance.
Method ConstructBearingRadiusTangent Constructs an arc with the given chord bearing, radius and tangent distance.
Method ConstructChordDistance Constructs an arc from a center point, a starting point, and a chord length.
Method ConstructCircle Constructs a circle of a given radius and orientation.
Method ConstructEndPointsAngle Constructs an arc from the given endpoints and central angle.
Method ConstructEndPointsArc Constructs an arc from the given endpoints and arc distance.
Method ConstructEndPointsChordHeight Constructs an arc with specified endpoints and and chord height.
Method ConstructEndPointsRadius Constructs an arc from the given endpoints and radius.
Method ConstructEndPointsTangent Constructs an arc from the given endpoints and tangent distance.
Method 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.
Method 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.
Method 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.
Method ConstructTangentAngleArc Constructs an arc with a common tangent to the input segment, a given central angle and an arc length.
Method ConstructTangentAngleChord Constructs an arc with a common tangent to the input segment, a given central angle and a chord length.
Method ConstructTangentAngleTangent Constructs an arc with a common tangent to the input segment, a given central angle and a tangent length.
Method ConstructTangentArcTangent Constructs an arc with a common tangent to the input segment, a given arc length and a tangent length.
Method ConstructTangentChordArc Constructs an arc with a common tangent to the input segment, a given chord length and an arc length.
Method ConstructTangentChordTangent Constructs an arc with a common tangent to input segment, a given chord length and a tangent length.
Method ConstructTangentDistance Constructs an arc from a center point, a starting point, and an tangent length.
Method ConstructTangentRadiusAngle Constructs an arc with a common tangent to the input segment, a given radius and a central angle.
Method ConstructTangentRadiusArc Constructs an arc having a common tangent to the input segment, a given radius and an arc length.
Method ConstructTangentRadiusChord Constructs an arc with a common tangent to the input segment, a given radius and a chord length.
Method ConstructTangentRadiusTangent Constructs an arc with a common tangent to the input segment, a given radius and a tangent length.
Method 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.
Method 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"

ConstructCircularArc CircularArc Example

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"

ConstructCircularArc Bearing Angle Example

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"

ConstructCircularArc Bearing Angle Example

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"

ConstructCircularArc Bearing Angle Example

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"

ConstructCircularArc Bearing Angle Example

}
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"

ConstructCircularArc Bearing Angle Example

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"

ConstructCircularArc Bearing Angle Example

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"

ConstructCircularArc Bearing Angle Example

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"

ConstructCircularArc Bearing Angle Example

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"

ConstructCircularArc Bearing Angle Example

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"

ConstructCircularArc Bearing Angle Example

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.

ConstructCircularArc ChordDistance Example

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"

CircularArc ConstructCircle Example

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"

ConstructCircularArc EndPoint Example

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"

ConstructCircularArc EndPoint Example

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"

ConstructCircularArc EndPoints Example

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

ConstructCircularArc EndPoint Example

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"

ConstructCircularArc EndPoints Example

ConstructCircularArc Tangent Distance Example

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

ConstructCircularArc Construct Fillet Point Example

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

ConstructCircularArc Construct Fillet Radius Example

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

ConstructCircularArc Tangent Segment Example

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"

ConstructCircularArc Tangent Segment Example

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"

ConstructCircularArc Tangent Segment Example

ConstructCircularArc Chord Distance Example

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"

ConstructCircularArc Tangent Segment Example

ConstructCircularArc Tangent Distance Example

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"

ConstructCircularArc Tangent Segment Example

ConstructCircularArc Tangent Distance Example

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"

ConstructCircularArc Tangent Segment Example

ConstructCircularArc ChordLength Example

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"

ConstructCircularArc Tangent Segment Example

ConstructCircularArc Chord and Tangent Distance Example

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"

ConstructCircularArc TangentDistance Example

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"

ConstructCircularArc Tangent Segment Example

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"

ConstructCircularArc Tangent Segment Example

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.

ConstructCircularArc Tangent Segment Example

ConstructCircularArc Chord Distance Example

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"

ConstructCircularArc Tangent Segment Example

ConstructCircularArc Tangent Distance Example

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).

CircularArc ConstructThreePoints Example

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

ConstructCircularArc Query Fillet Radius Range Example

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.

Remarks

ConstructCircularArc CircularArc Example

ConstructCircularArc Example1

ConstructCircularArc Example2

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.