# 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 ConstructArcDistance Constructs an arc from a center point, a starting point, and an arc length. ConstructBearingAngleArc Constructs an arc with the given chord bearing, central angle and arc distance. ConstructBearingAngleChord Constructs an arc with the given chord bearing, central angle and chord distance. ConstructBearingAngleTangent Constructs an arc with the given chord bearing, central angle and tangent distance. ConstructBearingArcTangent Constructs an arc with the given chord bearing, arc distance and tangent distance. ConstructBearingChordArc Constructs an arc with the given chord bearing, chord distance and arc distance (negative for clockwise orientation). ConstructBearingChordTangent Constructs an arc with the given chord bearing, chord distance and tangent distance. ConstructBearingRadiusAngle Constructs an arc with the given chord bearing, radius and central angle. ConstructBearingRadiusArc Constructs an arc with the given chord bearing, radius and arc distance. ConstructBearingRadiusChord Constructs an arc with the given chord bearing, radius and chord distance. ConstructBearingRadiusTangent Constructs an arc with the given chord bearing, radius and tangent distance. ConstructChordDistance Constructs an arc from a center point, a starting point, and a chord length. ConstructCircle Constructs a circle of a given radius and orientation. ConstructEndPointsAngle Constructs an arc from the given endpoints and central angle. ConstructEndPointsArc Constructs an arc from the given endpoints and arc distance. ConstructEndPointsChordHeight Constructs an arc with specified endpoints and and chord height. ConstructEndPointsRadius Constructs an arc from the given endpoints and radius. ConstructEndPointsTangent Constructs an arc from the given endpoints and tangent distance. ConstructFilletPoint Constructs an arc of given start point near first segment and tangent to two segments. hintPoint can be nil or can be a location near the desired fillet. ConstructFilletRadius Constructs an arc of given radius and tangent to two segments. hintPoint can be nil or can be a location near the desired fillet. ConstructTangentAndPoint Constructs an arc with one endpoint being p, tangent to s, and connected to s. If atFrom is true, the connection is at s's from point, otherwise at s's to point. ConstructTangentAngleArc Constructs an arc with a common tangent to the input segment, a given central angle and an arc length. ConstructTangentAngleChord Constructs an arc with a common tangent to the input segment, a given central angle and a chord length. ConstructTangentAngleTangent Constructs an arc with a common tangent to the input segment, a given central angle and a tangent length. ConstructTangentArcTangent Constructs an arc with a common tangent to the input segment, a given arc length and a tangent length. ConstructTangentChordArc Constructs an arc with a common tangent to the input segment, a given chord length and an arc length. ConstructTangentChordTangent Constructs an arc with a common tangent to input segment, a given chord length and a tangent length. ConstructTangentDistance Constructs an arc from a center point, a starting point, and an tangent length. ConstructTangentRadiusAngle Constructs an arc with a common tangent to the input segment, a given radius and a central angle. ConstructTangentRadiusArc Constructs an arc having a common tangent to the input segment, a given radius and an arc length. ConstructTangentRadiusChord Constructs an arc with a common tangent to the input segment, a given radius and a chord length. ConstructTangentRadiusTangent Constructs an arc with a common tangent to the input segment, a given radius and a tangent length. ConstructThreePoints Constructs an arc from three points. useExistingCenter can be set to true in order to help create a reasonable arc when from and to are identical. QueryFilletRadiusRange Returns minimum and maximum radius for fillet to touch both input segments. hintPoint can be nil or can be a location near the desired fillet.

### IConstructCircularArc.ConstructArcDistance Method

Constructs an arc from a center point, a starting point, and an arc length.

``````Public Sub ConstructArcDistance ( _
ByVal Center As IPoint, _
ByVal from As IPoint, _
ByVal isCCW As Boolean, _
ByVal arcDistance As Double _
)
``````
``````public void ConstructArcDistance (
IPoint Center,
IPoint from,
bool isCCW,
double arcDistance
);
``````

#### Description

Constructs a CircularArc given the Center Point, From Point, the desired orientation, and the desired CircularArc Length. The Arc Distance must be less than 2 * Pi * the Radius (the distance between the From Point and the Center Point), otherwise an error is returned.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructArcDistance()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

IPoint toPoint = new PointClass();

fromPoint.PutCoords(100, 100);

toPoint.PutCoords(50, 50);

constructCircularArc.ConstructArcDistance(fromPoint, toPoint, true, 150);

String report = "Length : " + circularArc.Length + "\n" +

"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("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructBearingAngleArc Method

Constructs an arc with the given chord bearing, central angle and arc distance.

``````Public Sub ConstructBearingAngleArc ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal arcDistance As Double _
)
``````
``````public void ConstructBearingAngleArc (
IPoint from,
double inAngle,
bool isCCW,
double CentralAngle,
double arcDistance
);
``````

#### Description

Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Central Angle, and the desired CircularArc Length. The Bearing Angle and Central Angle are measured in radians.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructBearingAngleArc()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

constructCircularArc.ConstructBearingAngleArc(fromPoint, 0, true, (90 * (Math.PI / 180)), 150);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructBearingAngleArc(pFromPoint, 0, True, (90 * (Pi / 180)), 150)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructBearingAngleChord Method

Constructs an arc with the given chord bearing, central angle and chord distance.

``````Public Sub ConstructBearingAngleChord ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal chordDistance As Double _
)
``````
``````public void ConstructBearingAngleChord (
IPoint from,
double inAngle,
bool isCCW,
double CentralAngle,
double chordDistance
);
``````

#### Description

Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Central Angle, and the desired Chord Distance. The Bearing Angle and Central Angle are measured in radians.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructBearingAngleChord()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

constructCircularArc.ConstructBearingAngleChord(fromPoint, 0, true, (90 * (Math.PI / 180)), 150);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructBearingAngleChord(pFromPoint, 0, True, (90 * (Pi / 180)), 100)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructBearingAngleTangent Method

Constructs an arc with the given chord bearing, central angle and tangent distance.

``````Public Sub ConstructBearingAngleTangent ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal tangentDistance As Double _
)
``````
``````public void ConstructBearingAngleTangent (
IPoint from,
double inAngle,
bool isCCW,
double CentralAngle,
double tangentDistance
);
``````

#### Description

Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Central Angle, and the desired Tangent Distance. The Bearing Angle and Central Angle are measured in radians. The Central Angle should be less than 2 * Pi to ensure proper results. If the Central Angle is greater than Pi, the Tangent Distance is measured opposite the direction of the tangents.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructBearingAngleTangent()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

constructCircularArc.ConstructBearingAngleTangent(fromPoint, 0, true, (90 * (Math.PI / 180)), 300);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructBearingAngleTangent(pFromPoint, 0, True, (90 * Pi) / 180, 300)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructBearingArcTangent Method

Constructs an arc with the given chord bearing, arc distance and tangent distance.

``````Public Sub ConstructBearingArcTangent ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal arcDistance As Double, _
ByVal tangentDistance As Double _
)
``````
``````public void ConstructBearingArcTangent (
IPoint from,
double inAngle,
bool isCCW,
double arcDistance,
double tangentDistance
);
``````

#### Description

Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired CircularArc Length, and the desired Tangent Distance. The Bearing Angle is measured in radians. The Tangent Distance must be greater than half the Arc Distance, otherwise an error is returned.

#### Remarks

-isCCW stands for "is counter clockwise" ``````}
``````
``````Private Sub ConstructBearingArcTangent()

Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc

Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc

Dim Pi As Double

Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint

pConstructCircularArc = New ESRI.ArcGIS.Geometry.CircularArc

pCArc = pConstructCircularArc

Pi = 4 * Math.Atan(1) 'Calculate the value of pi.

pFromPoint = New ESRI.ArcGIS.Geometry.Point

pFromPoint.PutCoords(100, 100)

pConstructCircularArc.ConstructBearingArcTangent(pFromPoint, 0, True, 100, 300)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructBearingChordArc Method

Constructs an arc with the given chord bearing, chord distance and arc distance (negative for clockwise orientation).

``````Public Sub ConstructBearingChordArc ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal chordDistance As Double, _
ByVal arcDistance As Double _
)
``````
``````public void ConstructBearingChordArc (
IPoint from,
double inAngle,
bool isCCW,
double chordDistance,
double arcDistance
);
``````

#### Description

Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Chord Distance, and the desired CircularArc Length. The Bearing Angle is measured in radians. The Chord Distance must be less than the Arc Distance, otherwise an error is returned.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructBearingChordArc()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

constructCircularArc.ConstructBearingChordArc(fromPoint, 0, true, 100, 300);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructBearingChordArc(pFromPoint, 0, True, 100, 300)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructBearingChordTangent Method

Constructs an arc with the given chord bearing, chord distance and tangent distance.

``````Public Sub ConstructBearingChordTangent ( _
ByVal from As IPoint, _
ByVal inAngle As Double, _
ByVal isCCW As Boolean, _
ByVal chordDistance As Double, _
ByVal tangentDistance As Double _
)
``````
``````public void ConstructBearingChordTangent (
IPoint from,
double inAngle,
bool isCCW,
double chordDistance,
double tangentDistance
);
``````

#### Description

Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Chord Distance, and the desired Tangent Distance. The Bearing Angle is measured in radians. The Tangent Distance must be greater than half the Chord Distance, otherwise an error is returned.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructBearingChordTangent()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

constructCircularArc.ConstructBearingChordTangent(fromPoint, 0, true, 100, 300);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructBearingChordTangent(pFromPoint, 0, True, 100, 300)

Debug.Print("Length : " & pCArc.Length)

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
``````

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 CentralAngle As Double _
)
``````
``````public void ConstructBearingRadiusAngle (
IPoint startPoint,
double inAngle,
bool isCCW,
double CentralAngle
);
``````

#### Description

Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Radius, and the desired Central Angle. The Bearing Angle and Central Angle are measured in radians. The Central Angle should not be greater than 2 * Pi.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructBearingRadiusAngle()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

String report = "Length : " + circularArc.Length + "\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)

Debug.Print("Length : " & pCArc.Length)

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
``````

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 arcDistance As Double _
)
``````
``````public void ConstructBearingRadiusArc (
IPoint from,
double inAngle,
bool isCCW,
double arcDistance
);
``````

#### Description

Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Radius, and the desired CircularArc Length. The Bearing Angle is measured in radians. The Arc Distance should not be greater than 2 * Pi * Radius.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructBearingRadiusArc()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

String report = "Length : " + circularArc.Length + "\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)

Debug.Print("Length : " & pCArc.Length)

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
``````

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 chordDistance As Double, _
ByVal IsMinor As Boolean _
)
``````
``````public void ConstructBearingRadiusChord (
IPoint from,
double inAngle,
bool isCCW,
double chordDistance,
bool IsMinor
);
``````

#### Description

Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Radius, the desired Chord Distance, and the IsMinor orientation. The Bearing Angle is measured in radians. The Chord Distance must be less than twice the Radius, otherwise an error is returned.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructBearingRadiusChord()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

constructCircularArc.ConstructBearingRadiusChord(fromPoint, 0, true, 40, 40, true);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructBearingRadiusChord(pFromPoint, 0, True, 40, 40, True)

Debug.Print("Length : " & pCArc.Length)

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
``````

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 tangentDistance As Double _
)
``````
``````public void ConstructBearingRadiusTangent (
IPoint from,
double inAngle,
bool isCCW,
double tangentDistance
);
``````

#### Description

Constructs a CircularArc given the From Point, the Bearing Angle, the desired orientation, the desired Radius, and the desired Tangent Distance. The Bearing Angle is measured in radians.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructBearingRadiusTangent()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

String report = "Length : " + circularArc.Length + "\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)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructChordDistance Method

Constructs an arc from a center point, a starting point, and a chord length.

``````Public Sub ConstructChordDistance ( _
ByVal Center As IPoint, _
ByVal from As IPoint, _
ByVal isCCW As Boolean, _
ByVal chordDistance As Double _
)
``````
``````public void ConstructChordDistance (
IPoint Center,
IPoint from,
bool isCCW,
double chordDistance
);
``````

#### Description

Constructs a CircularArc given the Center Point, From Point, the desired orientation, and the desired Chord Length. The Chord Distance must be less than 2 * the Radius (the distance between the From Point and the Center Point), otherwise an error is returned. Only IsMinor CircularArcs can be constructed.

#### Remarks

-isCCW stands for "is counter clockwise"

Note : To construct a major CircularArc using the same paramaters use the IConstructCircularcArc2::ConstructChordDistanceEx method with the IsMinor parameter equal to false. ``````private void ConstructChordDistance()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

IPoint toPoint = new PointClass();

fromPoint.PutCoords(100, 100);

toPoint.PutCoords(50, 50); constructCircularArc.ConstructChordDistance(fromPoint, toPoint, true, 100); String report = "Length : " + circularArc.Length + "\n" +

"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("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 isCCW As Boolean _
)
``````
``````public void ConstructCircle (
IPoint CenterPoint,
bool isCCW
);
``````

#### Description

Constructs a complete circle given the Center Point, the Radius of the circle, and the desired Orientation. The From and To Points are located on the YMax point of the CircularArc.

#### Remarks

-isCCW stands for "is counter clockwise" ``````public ICircularArc CreateCircleArc(IPoint point, double radius, bool isCCW)

{

ICircularArc circularArc = new CircularArcClass();

IConstructCircularArc construtionCircularArc = circularArc as IConstructCircularArc;

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

CreateCArcFull = pConstCArc

End Function
``````

### IConstructCircularArc.ConstructEndPointsAngle Method

Constructs an arc from the given endpoints and central angle.

``````Public Sub ConstructEndPointsAngle ( _
ByVal from As IPoint, _
ByVal to As IPoint, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double _
)
``````
``````public void ConstructEndPointsAngle (
IPoint from,
IPoint to,
bool isCCW,
double CentralAngle
);
``````

#### Description

Constructs a CircularArc given the From Point, To Point, the desired orientation, and the desired Central Angle. The Central Angle is measured in radians.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructEndPointsAngel()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

IPoint toPoint = new PointClass();

fromPoint.PutCoords(100, 100);

toPoint.PutCoords(50, 50);

constructCircularArc.ConstructEndPointsAngle(fromPoint, toPoint, true, 90);

String report = "Length : " + circularArc.Length + "\n" +

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

pConstructCircularArc.ConstructEndPointsAngle(pFromPoint, pToPoint, True, 90 * Pi / 180)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructEndPointsArc Method

Constructs an arc from the given endpoints and arc distance.

``````Public Sub ConstructEndPointsArc ( _
ByVal from As IPoint, _
ByVal to As IPoint, _
ByVal isCCW As Boolean, _
ByVal arcDistance As Double _
)
``````
``````public void ConstructEndPointsArc (
IPoint from,
IPoint to,
bool isCCW,
double arcDistance
);
``````

#### Description

Constructs a CircularArc given the From Point, To Point, the desired orientation, and the desired CircularArc Length. The Arc Distance must be greater than the distance between the From Point and the To Point, otherwise an error is returned.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructEndPointsArc()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

IPoint toPoint = new PointClass();

fromPoint.PutCoords(100, 100);

toPoint.PutCoords(50, 50);

constructCircularArc.ConstructEndPointsArc(fromPoint, toPoint, true, 200);

String report = "Length : " + circularArc.Length + "\n" +

"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("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructEndPointsChordHeight Method

Constructs an arc with specified endpoints and and chord height.

``````Public Sub ConstructEndPointsChordHeight ( _
ByVal from As IPoint, _
ByVal to As IPoint, _
ByVal isCCW As Boolean, _
ByVal ChordHeight As Double _
)
``````
``````public void ConstructEndPointsChordHeight (
IPoint from,
IPoint to,
bool isCCW,
double ChordHeight
);
``````

#### Description

Constructs a CircularArc given the From Point, To Point, the desired orientation, and the desired Chord Height.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructEndPointsChordHeight()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint1 = new PointClass();

fromPoint1.PutCoords(100, 100);

IPoint toPoint1 = new PointClass();

toPoint1.PutCoords(50, 50);

constructCircularArc.ConstructEndPointsChordHeight(fromPoint1, toPoint1, true, 100);

String report = "Length : " + circularArc.Length + "\n" +

"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("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
``````

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 IsMinor As Boolean _
)
``````
``````public void ConstructEndPointsRadius (
IPoint from,
IPoint to,
bool isCCW,
bool IsMinor
);
``````

#### Description

Constructs a CircularArc given the From Point, To Point, the desired Radius, IsCounterClockwise direction, and IsMinor value.

#### Remarks ``````private void ConstructEndPointsRadius()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

IPoint toPoint = new PointClass();

fromPoint.PutCoords(100, 100);

toPoint.PutCoords(50, 50);

String report = "Length : " + circularArc.Length + "\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)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructEndPointsTangent Method

Constructs an arc from the given endpoints and tangent distance.

``````Public Sub ConstructEndPointsTangent ( _
ByVal from As IPoint, _
ByVal to As IPoint, _
ByVal isCCW As Boolean, _
ByVal tangentDistance As Double _
)
``````
``````public void ConstructEndPointsTangent (
IPoint from,
IPoint to,
bool isCCW,
double tangentDistance
);
``````

#### Description

Constructs a CircularArc given the From Point, To Point, the desired orientation, and the desired Tangent Distance. The Tangent Distance must be greater than half the distance between the From Point and the To Point, otherwise an error is returned.

#### Remarks

-isCCW stands for "is counter clockwise"  ### IConstructCircularArc.ConstructFilletPoint Method

Constructs an arc of given start point near first segment and tangent to two segments. hintPoint can be nil or can be a location near the desired fillet.

``````Public Sub ConstructFilletPoint ( _
ByVal s1 As ISegment, _
ByVal s2 As ISegment, _
ByVal from As IPoint, _
ByVal hintPoint As IPoint _
)
``````
``````public void ConstructFilletPoint (
ISegment s1,
ISegment s2,
IPoint from,
IPoint hintPoint
);
``````

#### Description

A Fillet Arc is a CircularArc constructed between two input segments such that the CircularArc is tangential to both embedded segments at the Fillet Arc endpoints. ConstructFilletPoint constructs a Fillet Arc between two input Segments given a suggested From Point and a Hint Point. The From Point of the Fillet Arc is the nearest point on one of the input segments to the input From Point. The Hint Point determines which Fillet Arc is to be constructed and the region in which the desired Fillet Arc should exist. The To Point of the Fillet Arc lies on the embedded extension of the other segment. If the Hint Point lies in a region in which the Fillet Arc cannot be constructed given the input From Point, an error is returned.

#### Remarks ``````private void ConstructFilletPoint()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint1 = new PointClass();

fromPoint1.PutCoords(100, 100);

IPoint toPoint1 = new PointClass();

toPoint1.PutCoords(50, 50);

ILine line1 = new LineClass();

line1.PutCoords(fromPoint1, toPoint1);

IPoint fromPoint2 = new PointClass();

fromPoint2.PutCoords(100, 100);

IPoint toPoint2 = new PointClass();

toPoint2.PutCoords(150, 50);

ILine line2 = new LineClass();

line2.PutCoords(fromPoint2, toPoint2);

IPoint hintPoint = new PointClass();

hintPoint.PutCoords(100, 75);

constructCircularArc.ConstructFilletPoint(line1 as ISegment, line2 as ISegment, line1.ToPoint, hintPoint);

String report = "Length : " + circularArc.Length + "\n" +

"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("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
``````

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 hintPoint As IPoint _
)
``````
``````public void ConstructFilletRadius (
ISegment s1,
ISegment s2,
IPoint hintPoint
);
``````

#### Description

A Fillet Arc is a CircularArc constructed between two input segments such that the CircularArc is tangential to both embedded segments at the Fillet Arc endpoints. ConstructFilletRadius constructs a Fillet Arc of a given input Radius between two input Segments given a Hint Point. The Hint Point determines which Fillet Arc is to be constructed. The endpoints of the Fillet Arc lie on the embedded extensions of the input Segments. The From Point always lies on the embedded extension of the first input segment. If the Hint Point lies in a region in which the Fillet Arc cannot be constructed with the given Radius, an error is returned. The input Radius must be greater than 0, otherwise an error is returned. Use QueryFilletRadiusRange to find the range of radii for a given set of inputs such that the constructed Fillet Arc has endpoints on both of the non-extended input segments.

#### Remarks ``````private void ConstructFilletRadius()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint1 = new PointClass();

fromPoint1.PutCoords(100, 100);

IPoint toPoint1 = new PointClass();

toPoint1.PutCoords(50, 50);

ILine line1 = new LineClass();

line1.PutCoords(fromPoint1, toPoint1);

IPoint fromPoint2 = new PointClass();

fromPoint2.PutCoords(100, 100);

IPoint toPoint2 = new PointClass();

toPoint2.PutCoords(150, 50);

ILine line2 = new LineClass();

line2.PutCoords(fromPoint2, toPoint2);

IPoint hintPoint = new PointClass();

hintPoint.PutCoords(100, 75);

constructCircularArc.ConstructFilletRadius(line1 as ISegment, line2 as ISegment, 50, hintPoint);

String report = "Length : " + circularArc.Length + "\n" +

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

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructTangentAndPoint Method

Constructs an arc with one endpoint being p, tangent to s, and connected to s. If atFrom is true, the connection is at s's from point, otherwise at s's to point.

``````Public Sub ConstructTangentAndPoint ( _
ByVal s As ISegment, _
ByVal atFrom As Boolean, _
ByVal p As IPoint _
)
``````
``````public void ConstructTangentAndPoint (
ISegment s,
bool atFrom,
IPoint p
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), and the desired To Point. The Center Point of the constructed CircularArc lies on the Normal to the desired segment endpoint on the same side of the extended tangent as the To Point. If the To Point lies on the tangent line from the desired segment endpoint, an IsLine CircularArc is constructed.

#### Remarks ``````private void ConstructTangentAndPoint()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint1 = new PointClass();

fromPoint1.PutCoords(100, 100);

IPoint toPoint1 = new PointClass();

toPoint1.PutCoords(50, 50);

ILine line1 = new LineClass();

line1.PutCoords(fromPoint1, toPoint1);

IPoint point = new PointClass();

point.PutCoords(100, 75);

constructCircularArc.ConstructTangentAndPoint(line1 as ISegment, false, point);

String report = "Length : " + circularArc.Length + "\n" +

"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("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructTangentAngleArc Method

Constructs an arc with a common tangent to the input segment, a given central angle and an arc length.

``````Public Sub ConstructTangentAngleArc ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal arcDistance As Double _
)
``````
``````public void ConstructTangentAngleArc (
ISegment Segment,
bool atStart,
bool isCCW,
double CentralAngle,
double arcDistance
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Central Angle, and the desired CircularArc Length. The Central Angle is measured in radians. A full CircularArc is constructed if the Central Angle is greater than 2*Pi.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructTangentAngleArc()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

IPoint toPoint = new PointClass();

toPoint.PutCoords(100, 400);

ILine line = new LineClass();

line.PutCoords(fromPoint, toPoint);

constructCircularArc.ConstructTangentAngleArc(line as ISegment, false, true, Math.PI, 100);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructTangentAngleArc(pLine1, False, True, Pi, 100)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructTangentAngleChord Method

Constructs an arc with a common tangent to the input segment, a given central angle and a chord length.

``````Public Sub ConstructTangentAngleChord ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal chordDistance As Double _
)
``````
``````public void ConstructTangentAngleChord (
ISegment Segment,
bool atStart,
bool isCCW,
double CentralAngle,
double chordDistance
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Central Angle, and the desired Chord Length. The Central Angle is measured in radians. Only IsMinor CircularArcs can be constructed. The Central Angle should be between 0 and Pi (half CircularArc) for the CircularArc to be properly constructed as expected.

#### Remarks

-isCCW stands for "is counter clockwise"  ``````private void ConstructTangentAngleChord()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

IPoint toPoint = new PointClass();

toPoint.PutCoords(100, 400);

ILine line = new LineClass();

line.PutCoords(fromPoint, toPoint);

constructCircularArc.ConstructTangentAngleChord(line as ISegment, false, true, Math.PI, 100);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructTangentAngleChord(pLine1, False, False, Pi, 100)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructTangentAngleTangent Method

Constructs an arc with a common tangent to the input segment, a given central angle and a tangent length.

``````Public Sub ConstructTangentAngleTangent ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal CentralAngle As Double, _
ByVal tangentDistance As Double _
)
``````
``````public void ConstructTangentAngleTangent (
ISegment Segment,
bool atStart,
bool isCCW,
double CentralAngle,
double tangentDistance
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Central Angle, and the desired Tangent Distance. The Central Angle is measured in radians. If the Central Angle is greater than or equal to Pi (half CircularArc), an empty CircularArc is constructed.

#### Remarks

-isCCW stands for "is counter clockwise"  ``````private void ConstructTangentAngleTangent()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

IPoint toPoint = new PointClass();

toPoint.PutCoords(100, 400);

ILine line = new LineClass();

line.PutCoords(fromPoint, toPoint);

constructCircularArc.ConstructTangentAngleTangent(line as ISegment, false, true, Math.PI / 2, 100);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructTangentAngleTangent(pLine1, False, True, Pi / 2, 100)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructTangentArcTangent Method

Constructs an arc with a common tangent to the input segment, a given arc length and a tangent length.

``````Public Sub ConstructTangentArcTangent ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal arcDistance As Double, _
ByVal tangentDistance As Double _
)
``````
``````public void ConstructTangentArcTangent (
ISegment Segment,
bool atStart,
bool isCCW,
double arcDistance,
double tangentDistance
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired CircularArc Length, and the desired Tangent Distance. Only IsMinor CircularArcs can be constructed. The Tangent Distance must be greater than half the Arc Distance, otherwise an error is returned.

#### Remarks

-isCCW stands for "is counter clockwise"  ``````private void ConstructTangentArcTangent()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

IPoint toPoint = new PointClass();

toPoint.PutCoords(100, 400);

ILine line = new LineClass();

line.PutCoords(fromPoint, toPoint);

constructCircularArc.ConstructTangentArcTangent(line as ISegment, false, true, 157.08, 100);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructTangentArcTangent(pLine1, False, True, 157.08, 100)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructTangentChordArc Method

Constructs an arc with a common tangent to the input segment, a given chord length and an arc length.

``````Public Sub ConstructTangentChordArc ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal chordDistance As Double, _
ByVal arcDistance As Double _
)
``````
``````public void ConstructTangentChordArc (
ISegment Segment,
bool atStart,
bool isCCW,
double chordDistance,
double arcDistance
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Chord Distance, and the desired CircularArc Length. Only IsMinor CircularArcs can be constructed.

#### Remarks

-isCCW stands for "is counter clockwise"  ``````private void ConstructTangentChordArc()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

IPoint toPoint = new PointClass();

toPoint.PutCoords(100, 400);

ILine line = new LineClass();

line.PutCoords(fromPoint, toPoint);

constructCircularArc.ConstructTangentChordArc(line as ISegment, false, true, 100, 157.08);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructTangentChordArc(pLine1, False, True, 100, 157.08)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructTangentChordTangent Method

Constructs an arc with a common tangent to input segment, a given chord length and a tangent length.

``````Public Sub ConstructTangentChordTangent ( _
ByVal Segment As ISegment, _
ByVal atStart As Boolean, _
ByVal isCCW As Boolean, _
ByVal chordDistance As Double, _
ByVal tangentDistance As Double _
)
``````
``````public void ConstructTangentChordTangent (
ISegment Segment,
bool atStart,
bool isCCW,
double chordDistance,
double tangentDistance
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Chord Distance, and the desired Tangent Distance. The Tangent Distance must be great than half the Chord Distance, otherwise an error is returned.

#### Remarks

-isCCW stands for "is counter clockwise"  ``````private void ConstructTangentChordTangent()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

IPoint toPoint = new PointClass();

toPoint.PutCoords(100, 400);

ILine line = new LineClass();

line.PutCoords(fromPoint, toPoint);

constructCircularArc.ConstructTangentChordTangent(line as ISegment, false, true, 100, 100000000);

String report = "Length : " + circularArc.Length + "\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)

pConstructCircularArc.ConstructTangentChordTangent(pLine1, False, True, 100, 100000000)

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructTangentDistance Method

Constructs an arc from a center point, a starting point, and an tangent length.

``````Public Sub ConstructTangentDistance ( _
ByVal Center As IPoint, _
ByVal from As IPoint, _
ByVal isCCW As Boolean, _
ByVal tangentDistance As Double _
)
``````
``````public void ConstructTangentDistance (
IPoint Center,
IPoint from,
bool isCCW,
double tangentDistance
);
``````

#### Description

Constructs a CircularArc given the Center Point, From Point, the desired orientation, and the desired Tangent Distance.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructTangentDistance()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

IPoint toPoint = new PointClass();

fromPoint.PutCoords(100, 100);

toPoint.PutCoords(50, 50);

constructCircularArc.ConstructTangentDistance(fromPoint, toPoint, true, 100000000);

String report = "Length : " + circularArc.Length + "\n" +

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

pConstructCircularArc.ConstructTangentDistance(pCenterPoint, pStartPoint, True, 100000000)

Debug.Print("Length : " & pCArc.Length)

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
``````

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 CentralAngle As Double _
)
``````
``````public void ConstructTangentRadiusAngle (
ISegment Segment,
bool atStart,
bool isCCW,
double CentralAngle
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Radius, and the desired Central Angle. The Central Angle is measured in radians. A full CircularArc is constructed if the Central Angle is greater than 2*Pi.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructTangentRadiusAngle()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

fromPoint.PutCoords(100, 100);

IPoint toPoint = new PointClass();

toPoint.PutCoords(100, 400);

ILine line = new LineClass();

line.PutCoords(fromPoint, toPoint);

constructCircularArc.ConstructTangentRadiusAngle(line as ISegment, false, true, 50, Math.PI);

String report = "Length : " + circularArc.Length + "\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)

Debug.Print("Length : " & pCArc.Length)

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
``````

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 arcDistance As Double _
)
``````
``````public void ConstructTangentRadiusArc (
ISegment Segment,
bool atStart,
bool isCCW,
double arcDistance
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Radius, and the desired CircularArc Length. If the Arc Distance is greater than 2 * Pi * Radius, a full circle is constructed.

#### Remarks

-isCCW stands for "is counter clockwise" ``````private void ConstructTangentRadiusArc()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

IPoint toPoint = new PointClass();

fromPoint.PutCoords(100, 100);

toPoint.PutCoords(50, 50);

ILine line = new LineClass();

line.PutCoords(fromPoint, toPoint);

constructCircularArc.ConstructTangentRadiusArc(line as ISegment, false, true, 50, 157.08);

String report = "Length : " + circularArc.Length + "\n" +

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

Debug.Print("Length : " & pCArc.Length)

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
``````

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 chordDistance As Double _
)
``````
``````public void ConstructTangentRadiusChord (
ISegment Segment,
bool atStart,
bool isCCW,
double chordDistance
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Radius, and the desired Chord Length. If the Chord Distance is greater than 2 * Radius, a half CircularArc is returned. Only IsMinor CircularArcs can be created.

#### Remarks

-isCCW stands for "is counter clockwise"

Note : To construct a major CircularArc using the same paramaters use the IConstructCircularcArc2::ConstructTangentRadiusChordEx method with the IsMinor parameter equal to false.  ``````private void onstructTangentRadiusChord()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

IPoint toPoint = new PointClass();

fromPoint.PutCoords(100, 100);

toPoint.PutCoords(50, 400);

ILine line = new LineClass();

line.PutCoords(fromPoint, toPoint);

constructCircularArc.ConstructTangentRadiusChord(line as ISegment, false, true, 50, 100);

String report = "Length : " + circularArc.Length + "\n" +

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

Debug.Print("Length : " & pCArc.Length)

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
``````

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 tangentDistance As Double _
)
``````
``````public void ConstructTangentRadiusTangent (
ISegment Segment,
bool atStart,
bool isCCW,
double tangentDistance
);
``````

#### Description

Constructs a CircularArc given the Tangent Segment, the desired segment endpoint (the From Point), the desired orientation, the desired Radius, and the desired Tangent Distance.

#### Remarks

-isCCW stands for "is counter clockwise"  ``````private void ConstructTangentRadiusTangent()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint = new PointClass();

IPoint toPoint = new PointClass();

fromPoint.PutCoords(100, 100);

toPoint.PutCoords(50, 400);

ILine line = new LineClass();

line.PutCoords(fromPoint, toPoint);

constructCircularArc.ConstructTangentRadiusTangent(line as ISegment, false, true, 50, 50);

String report = "Length : " + circularArc.Length + "\n" +

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

Debug.Print("Length : " & pCArc.Length)

Debug.Print("Chord Height : " & pCArc.ChordHeight)

Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)

Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)

Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)

Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)

Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)

Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)

End Sub
``````

### IConstructCircularArc.ConstructThreePoints Method

Constructs an arc from three points. useExistingCenter can be set to true in order to help create a reasonable arc when from and to are identical.

``````Public Sub ConstructThreePoints ( _
ByVal from As IPoint, _
ByVal middle As IPoint, _
ByVal to As IPoint, _
ByVal useExistingCenter As Boolean _
)
``````
``````public void ConstructThreePoints (
IPoint from,
IPoint middle,
IPoint to,
bool useExistingCenter
);
``````

#### Description

Given a From Point, a Thru Point, and a To Point, the unique CircularArc defined by those points is constructed. The From and To Points become the From and To Points of the CircularArc. The Thru Point is a point that lies somewhere on the CircularArc. For every three points, a single well-defined CircularArc can be created. (The only exception is if all three points are colinear and the Thru Point is not between the From and To Points.)

#### Remarks

ConstructThreePoints is excellent for creating a CircularArc with exact endpoint coordinates.

The from and to points may be identical, in which case the third point, if it is distinct, will be on the circle and diametrically opposed to the from/to point (orientation will be clockwise). ``````public  ICircularArc CreateCArcThreePoint(IPoint fromPoint, IPoint thruPoint,IPoint toPoint)

{

ICircularArc circularArcThreePoint = new CircularArcClass();

IConstructCircularArc construtionCircularArc = circularArcThreePoint as IConstructCircularArc;

construtionCircularArc.ConstructThreePoints(fromPoint, thruPoint, toPoint, true);

return circularArcThreePoint;

}
``````
``````Public Function CreateCArcThreePoint(ByVal FromPoint As ESRI.ArcGIS.Geometry.IPoint, ByVal ThruPoint As ESRI.ArcGIS.Geometry.IPoint, ByVal ToPoint As ESRI.ArcGIS.Geometry.IPoint) As ESRI.ArcGIS.Geometry.ICircularArc

Dim ConstCArc As ESRI.ArcGIS.Geometry.IConstructCircularArc

CreateCArcThreePoint = New ESRI.ArcGIS.Geometry.CircularArc

ConstCArc = CreateCArcThreePoint

ConstCArc.ConstructThreePoints(FromPoint, ThruPoint, ToPoint, True)

End Function
``````

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, _
)
``````
``````public void QueryFilletRadiusRange (
ISegment s1,
ISegment s2,
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. QueryFilletRadiusRange determines the Maximum and Minimum Fillet Arc Radii in the region of the given Hint Point that can be used in ConstructFilletRadius such that the endpoints of the Fillet Arc lie on both input curves without extension. If no such Radii exist for the given Hint Point, an error is returned.

#### Remarks ``````private void QueryFilletRadiusRange()

{

IConstructCircularArc constructCircularArc = new CircularArcClass();

ICircularArc circularArc = constructCircularArc as ICircularArc;

IPoint fromPoint1 = new PointClass();

fromPoint1.PutCoords(100, 100);

IPoint toPoint1 = new PointClass();

toPoint1.PutCoords(50, 50);

ILine line1 = new LineClass();

line1.PutCoords(fromPoint1, toPoint1);

IPoint fromPoint2 = new PointClass();

fromPoint2.PutCoords(100, 100);

IPoint toPoint2 = new PointClass();

toPoint2.PutCoords(150, 50);

ILine line2 = new LineClass();

line2.PutCoords(fromPoint2, toPoint2);

IPoint hintPoint = new PointClass();

hintPoint.PutCoords(100, 75);

//Discover min and max fillet radius

//Create a circular arc with the maxRadius

String report = "Length : " + circularArc.Length + "\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   