This document is archived and information here might be outdated.  Recommended version.


IConstructCircularArc.ConstructFilletRadius Method (ArcObjects .NET 10.6 SDK)
ArcObjects Library Reference (Geometry)  

IConstructCircularArc.ConstructFilletRadius Method

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

[Visual Basic .NET]
Public Sub ConstructFilletRadius ( _
    ByVal s1 As ISegment, _
    ByVal s2 As ISegment, _
    ByVal inRadius As Double, _
    ByVal hintPoint As IPoint _
)
[C#]
public void ConstructFilletRadius (
    ISegment s1,
    ISegment s2,
    double inRadius,
    IPoint hintPoint
);
[C++]
HRESULT ConstructFilletRadius(
  ISegment* s1,
  ISegment* s2,
  double inRadius,
  IPoint* hintPoint
);
[C++]

Parameters s1
s1 is a parameter of type ISegment* s2
s2 is a parameter of type ISegment* inRadius
inRadius is a parameter of type double hintPoint
hintPoint is a parameter of type IPoint*

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Description

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

Remarks

 

ConstructCircularArc Construct Fillet Radius Example

[C#]
private void ConstructFilletRadius()
{
  IConstructCircularArc constructCircularArc=new CircularArcClass();
  ICircularArc circularArc=constructCircularArc as ICircularArc;
  
  IPoint fromPoint1=new PointClass();
  fromPoint1.PutCoords(100, 100);
  IPoint toPoint1=new PointClass();
  toPoint1.PutCoords(50, 50);
  ILine line1=new LineClass();
  line1.PutCoords(fromPoint1, toPoint1);
  IPoint fromPoint2=new PointClass();
  fromPoint2.PutCoords(100, 100);
  IPoint toPoint2=new PointClass();
  toPoint2.PutCoords(150, 50);
  ILine line2=new LineClass();
  line2.PutCoords(fromPoint2, toPoint2);
  IPoint hintPoint=new PointClass();
  hintPoint.PutCoords(100, 75);
  constructCircularArc.ConstructFilletRadius(line1 as ISegment, line2 as ISegment, 50, hintPoint);
   
  String report="Length : " + circularArc.Length + "\n" +
                  "Radius : " + circularArc.Radius + "\n" +
                  "Chord Height : " + circularArc.ChordHeight + "\n" +
                  "Central Angle (Rad) : " + circularArc.CentralAngle + "\n" +
                  "From Angle (Rad) : " + circularArc.FromAngle + "\n" +
                  "To Angle (Rad) : " + circularArc.ToAngle + "\n" +
                  "Center Point : " + circularArc.CenterPoint.X + " , " + circularArc.CenterPoint.Y + "\n" +
                  "From Point : " + circularArc.FromPoint.X + " , " + circularArc.FromPoint.Y + "\n" +
                  "To Point : " + circularArc.ToPoint.X + " , " + circularArc.ToPoint.Y;
  System.Windows.Forms.MessageBox.Show(report);
}
[Visual Basic .NET]

    Private Sub ConstructFilletRadius()
        Dim pConstructCircularArc As ESRI.ArcGIS.Geometry.IConstructCircularArc
        Dim pCArc As ESRI.ArcGIS.Geometry.ICircularArc
        Dim pToPoint As ESRI.ArcGIS.Geometry.IPoint
        Dim pFromPoint As ESRI.ArcGIS.Geometry.IPoint
        Dim pLine1 As ESRI.ArcGIS.Geometry.ILine
        Dim pLine2 As ESRI.ArcGIS.Geometry.ILine
        Dim pHintPoint As ESRI.ArcGIS.Geometry.IPoint

        pConstructCircularArc=New ESRI.ArcGIS.Geometry.CircularArc
        pCArc=pConstructCircularArc
        pFromPoint=New ESRI.ArcGIS.Geometry.Point
        pToPoint=New ESRI.ArcGIS.Geometry.Point
        pLine1=New ESRI.ArcGIS.Geometry.Line
        pLine2=New ESRI.ArcGIS.Geometry.Line
        pFromPoint.PutCoords(100, 100)
        pToPoint.PutCoords(50, 50)
        pLine1.PutCoords(pFromPoint, pToPoint)
        pFromPoint.PutCoords(100, 100)
        pToPoint.PutCoords(150, 50)
        pLine2.PutCoords(pFromPoint, pToPoint)
        pHintPoint=New ESRI.ArcGIS.Geometry.Point
        pHintPoint.PutCoords(100, 75)

        pConstructCircularArc.ConstructFilletRadius(pLine1, pLine2, 50, pHintPoint)

        Debug.Print("Length : " & pCArc.Length)
        Debug.Print("Radius : " & pCArc.Radius)
        Debug.Print("Chord Height : " & pCArc.ChordHeight)
        Debug.Print("Central Angle (Rad) : " & pCArc.CentralAngle)
        Debug.Print("From Angle (Rad) : " & pCArc.FromAngle)
        Debug.Print("To Angle (Rad) : " & pCArc.ToAngle)
        Debug.Print("Center Point : " & pCArc.CenterPoint.X & " , " & pCArc.CenterPoint.Y)
        Debug.Print("From Point : " & pCArc.FromPoint.X & " , " & pCArc.FromPoint.Y)
        Debug.Print("To Point : " & pCArc.ToPoint.X & " , " & pCArc.ToPoint.Y)
    End Sub

See Also

IConstructCircularArc Interface | IConstructCircularArc.QueryFilletRadiusRange Method | IConstructCircularArc.ConstructFilletPoint Method | IConstructCircularArc.ConstructFilletRadius Method