ArcGIS Pro 3.0 API Reference Guide
ArcGIS.Core.Geometry Namespace / EllipticArcBuilderEx 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.
Example

In This Topic
    QueryFilletRadiusRange Method
    In This Topic
    Gets the minimum and maximum radius for a fillet arc to touch both input segments. hintPoint specifies a location near the desired fillet. This method must be called on the MCT. Use QueuedTask.Run CreateCircularArc(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. The returned values can be used in EllipticArcBuilderEx Constructor(Segment,Segment,Double,Coordinate2D,SpatialReference) and CreateCircularArc(Segment,Segment,Double,Coordinate2D,SpatialReference).
    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 Circular Arc - using two segments and radius
    // Construct a segment from (100, 100) to (50, 50) and another segment from (100, 100) to (150, 50).
    // Use a builderEx convenience method or use a builderEx constructor.
    
    LineSegment segment1 = LineBuilderEx.CreateLineSegment(new Coordinate2D(100, 100), new Coordinate2D(50, 50));
    LineSegment segment2 = LineBuilderEx.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 = EllipticArcBuilderEx.QueryFilletRadiusRange(segment1, segment2, hintPoint);
    
    // Use the maximum radius to create the arc.
    double maxRadius = minMaxRadii.Item2;
    
    // BuilderEx convenience methods don't need to run on the MCT.
    //At 2.x - EllipticArcSegment circularArc = EllipticArcBuilderEx.CreateEllipticArcSegment(segment1, segment2, maxRadius, hintPoint);
    EllipticArcSegment circularArc = EllipticArcBuilderEx.CreateCircularArc(
                        segment1, segment2, maxRadius, hintPoint);
    
    // BuilderEx constructors need to run on the MCT.
    EllipticArcBuilderEx cab = new EllipticArcBuilderEx(segment1, segment2, maxRadius, hintPoint);
    EllipticArcSegment otherCircularArc = cab.ToSegment();
    
    Requirements

    Target Platforms: Windows 11, Windows 10, Windows 8.1

    See Also