ArcGIS Pro 2.7 API Reference Guide
QueryFilletRadiusRange Method
Example 

ArcGIS.Core.Geometry Namespace > EllipticArcBuilder Class : QueryFilletRadiusRange Method
The first segment. The segment must be a line segment or a circular arc.
The second segment. The segment must be a line segment or a circular arc.
The point that determines which arc is constructed.
Gets the minimum and maximum radius for a fillet arc to touch both input segments. hintPoint specifies a location near the desired fillet. The returned values can be used in EllipticArcBuilder Constructor(Segment,Segment,Double,Coordinate2D,SpatialReference) and CreateEllipticArcSegment(Segment,Segment,Double,Coordinate2D,SpatialReference).
Syntax
public static Tuple<double,double> QueryFilletRadiusRange( 
   Segment segment1,
   Segment segment2,
   Coordinate2D hintPoint
)
Public Shared Function QueryFilletRadiusRange( _
   ByVal segment1 As Segment, _
   ByVal segment2 As Segment, _
   ByVal hintPoint As Coordinate2D _
) As Tuple(Of Double,Double)

Parameters

segment1
The first segment. The segment must be a line segment or a circular arc.
segment2
The second segment. The segment must be a line segment or a circular arc.
hintPoint
The point that determines which arc is constructed.

Return Value

A 2-tuple where Item1 is the minimum radius and Item2 is the maximum radius.
Exceptions
ExceptionDescription
This method or property must be called within the lambda passed to QueuedTask.Run.
segment1 or segment2 is null.
segment1 or segment2 is not a line segment or a circular arc.
Remarks
A fillet arc is a circular arc constructed between two input segments such that the circular arc 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 hintPoint such that the endpoints of the fillet arc lie on both input curves without extension. If the input segments are such that a fillet cannot be constructed, -1.0 is returned for both radii.

QueryFilletRadius

Example
// Construct a segment from (100, 100) to (50, 50) and another segment from (100, 100) to (150, 50).
// Use a builder convenience method or use a builder constructor.

LineSegment segment1 = LineBuilder.CreateLineSegment(new Coordinate2D(100, 100), new Coordinate2D(50, 50));
LineSegment segment2 = LineBuilder.CreateLineSegment(new Coordinate2D(100, 100), new Coordinate2D(150, 50));

// Construct the hint point to determine where the arc will be constructed.
Coordinate2D hintPoint = new Coordinate2D(100, 75);

// Call QueryFilletRadius to get the minimum and maximum radii that can be used with these segments.
var minMaxRadii = EllipticArcBuilder.QueryFilletRadiusRange(segment1, segment2, hintPoint);

// Use the maximum radius to create the arc.
double maxRadius = minMaxRadii.Item2;

// Builder convenience methods don't need to run on the MCT.
EllipticArcSegment circularArc = EllipticArcBuilder.CreateEllipticArcSegment(segment1, segment2, maxRadius, hintPoint);

// Builder constructors need to run on the MCT.
ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
{
  using (EllipticArcBuilder cab = new EllipticArcBuilder(segment1, segment2, maxRadius, hintPoint))
  {
    // do something with the builder

    EllipticArcSegment otherCircularArc = cab.ToSegment();
  }
});
Requirements

Target Platforms: Windows 10, Windows 8.1

See Also

Reference

EllipticArcBuilder Class
EllipticArcBuilder Members