ArcGIS Pro 2.7 API Reference Guide
PolylineBuilder Constructor(MapPoint,Double,Double,Double,esriArcOrientation,esriClothoidCreateMethod,Double,esriCurveDensifyMethod,Double,SpatialReference)
Example 

ArcGIS.Core.Geometry Namespace > PolylineBuilder Class > PolylineBuilder Constructor : PolylineBuilder Constructor(MapPoint,Double,Double,Double,esriArcOrientation,esriClothoidCreateMethod,Double,esriCurveDensifyMethod,Double,SpatialReference)
The start point of the polyline.
The tangent direction of the spiral, north azimuth, at the first point of the spiral. The unit of the azimuth is radians.
The radius at the start of the spiral. The radius must be greater than zero. Double.Infinity is a valid value for the radius.
The radius at the end of the spiral. The radius must be greater than zero. Double.Infinity is a valid value for the radius.
The orientation of the spiral.
The method of creation. esriClothoidCreateMethod.ByLength signifies that lengthOrAngle specifies the length of the entire spiral. esriClothoidCreateMethod.ByAngle signifies that lengthOrAngle specifies the angle, in radians, measuring the span of the arc from the start to the end of the clothoid path.
Either the length of the clothoid or the central angle of the clothoid as specified by createMethod.
The method of densification.
If densifyMethod is esriCurveDensifyMethod.ByLength, then curveDensity is the maximum segment length allowed in the clothoid. If densifyMethod is esriCurveDensifyMethod.ByDeviation, then curveDensity is the maximum distance, in meters, that the clothoid can deviate from the actual curve. If densifyMethod is esriCurveDensifyMethod.ByAngle, then curveDensity is the maximum angle between tangent lines to the curve.
(Optional) The spatial reference of the polyline. The default value is null.
Initializes a new instance of the PolylineBuilder class that is a linear approximation to a clothoid. This method must be called on the MCT. Use QueuedTask.Run.
Syntax

Parameters

startPoint
The start point of the polyline.
startTangentDirection
The tangent direction of the spiral, north azimuth, at the first point of the spiral. The unit of the azimuth is radians.
startRadius
The radius at the start of the spiral. The radius must be greater than zero. Double.Infinity is a valid value for the radius.
endRadius
The radius at the end of the spiral. The radius must be greater than zero. Double.Infinity is a valid value for the radius.
orientation
The orientation of the spiral.
createMethod
The method of creation. esriClothoidCreateMethod.ByLength signifies that lengthOrAngle specifies the length of the entire spiral. esriClothoidCreateMethod.ByAngle signifies that lengthOrAngle specifies the angle, in radians, measuring the span of the arc from the start to the end of the clothoid path.
lengthOrAngle
Either the length of the clothoid or the central angle of the clothoid as specified by createMethod.
densifyMethod
The method of densification.
curveDensity
If densifyMethod is esriCurveDensifyMethod.ByLength, then curveDensity is the maximum segment length allowed in the clothoid. If densifyMethod is esriCurveDensifyMethod.ByDeviation, then curveDensity is the maximum distance, in meters, that the clothoid can deviate from the actual curve. If densifyMethod is esriCurveDensifyMethod.ByAngle, then curveDensity is the maximum angle between tangent lines to the curve.
spatialReference
(Optional) The spatial reference of the polyline. The default value is null.
Remarks
A clothoid, also known as an Euler spiral, is a curve such that its curvature is equal to a constant times its length. Curvature is a value that measures how curved or flat the curve is at a point. The larger the curvature, the more flat the curve is. The curvature is equal to the reciprocal of the radius. If the radius is infinity, then the curvature is zero. i.e. flat.

Shown below is a clothoid with startTangentDirection = 0, startRadius = double.PositiveInfinity, endRadius = 1, orientation = esriArcOrientation.esriArcCounterClockwise, createMethod = esriClothoidCreateMethod.ByLength, and lengthOrAngle = 10.

Clothoid1

Here is a clothoid with startTangentDirection = Math.PI / 4, startRadius = double.PositiveInfinity, endRadius = 0.8, orientation = esriArcOrientation.esriArcClockwise, createMethod = esriClothoidCreateMethod.ByLength, and lengthOrAngle = 10.

Clothoid2

Now here is a clothoid such that the start radius is smaller than the end radius. It has startTangentDirection = Math.PI / 3, startRadius = 2, endRadius = 10, orientation = esriArcOrientation.esriArcClockwise, createMethod = esriClothoidCreateMethod.ByLength, and lengthOrAngle = 20.

Clothoid3
Example
MapPoint startPoint = MapPointBuilder.CreateMapPoint(0, 0);
MapPoint queryPoint = MapPointBuilder.CreateMapPoint(3.8, 1);
double tangentDirection = 0;
esriArcOrientation orientation = esriArcOrientation.esriArcCounterClockwise;
double startRadius = double.PositiveInfinity;
double endRadius = 1;
esriClothoidCreateMethod createMethod = esriClothoidCreateMethod.ByLength;
double curveLength = 10;
MapPoint pointOnPath;
double radiusCalculated, tangentDirectionCalculated, lengthCalculated, angleCalculated;

PolylineBuilder.QueryClothoidParameters(queryPoint, startPoint, tangentDirection, startRadius, endRadius, orientation, createMethod, curveLength, out pointOnPath, out radiusCalculated, out tangentDirectionCalculated, out lengthCalculated, out angleCalculated, SpatialReferences.WGS84);

// pointOnPath = (3.7652656620171379, 1.0332006103128575)
// radiusCalculated = 2.4876382887687227
// tangentDirectionCalculated = 0.80797056423543978
// lengthCalculated = 4.0198770235802987
// angleCalculated = 0.80797056423544011

queryPoint = MapPointBuilder.CreateMapPoint(1.85, 2.6);

PolylineBuilder.QueryClothoidParameters(queryPoint, startPoint, tangentDirection, startRadius, endRadius, orientation, createMethod, curveLength, out pointOnPath, out radiusCalculated, out tangentDirectionCalculated, out lengthCalculated, out angleCalculated, SpatialReferences.WGS84);

// pointOnPath = (1.8409964973501549, 2.6115979967308132)
// radiusCalculated = 1
// tangentDirectionCalculated = -1.2831853071795867
// lengthCalculated = 10
// angleCalculated = 5

tangentDirection = Math.PI / 4;
orientation = esriArcOrientation.esriArcClockwise;
startRadius = double.PositiveInfinity;
endRadius = 0.8;
createMethod = esriClothoidCreateMethod.ByLength;
curveLength = 10;

Polyline polyline = PolylineBuilder.CreatePolyline(startPoint, tangentDirection, startRadius, endRadius, orientation, createMethod, curveLength, esriCurveDensifyMethod.ByLength, 0.5, SpatialReferences.WGS84);
Requirements

Target Platforms: Windows 10, Windows 8.1

See Also

Reference

PolylineBuilder Class
PolylineBuilder Members
Overload List