ArcObjects Library Reference  (Geometry)    

IBezierCurve_Example

[Visual Basic 6.0]
Public Sub BezierCurves() 
   Dim pBezier As IBezierCurve 
   Set pBezier = New BezierCurve 
   Dim pControlPoints(0 To 3) As IPoint 
   Set pControlPoints(0) = New Point 'Bezier FromPoint / From Tangent FromPoint 
   Set pControlPoints(1) = New Point 'From Tangent ToPoint 
   Set pControlPoints(2) = New Point 'To Tangent FromPoint 
   Set pControlPoints(3) = New Point 'Bezier To Point / To Tangent ToPoint 
   
   'Define the Bezier Control Points.  This is a simple S-Curve. 
   pControlPoints(0).PutCoords 0, 100 
   pControlPoints(1).PutCoords 100, 100 
   pControlPoints(2).PutCoords 0, 0 
   pControlPoints(3).PutCoords 100, 0 
   
   'Create the Bezier Curve. 
   pBezier.PutCoords 4, pControlPoints(0)
   'Get All of the Control Points from the Bezier Curve. 
   pBezier.QueryCoords pControlPoints(0)
   'Get each control point individually 
   pBezier.QueryCoord 0, pControlPoints(0) 
   pBezier.QueryCoord 1, pControlPoints(1) 
   pBezier.QueryCoord 2, pControlPoints(2) 
   pBezier.QueryCoord 3, pControlPoints(3) 
   
   'Change the control points to define a simple CircularArc-like Curve. 
   pControlPoints(0).PutCoords -100, 200 
   pControlPoints(1).PutCoords -100, 100 
   
   'Replace individual control points. 
   pBezier.PutCoord 0, pControlPoints(0) 
   pBezier.PutCoord 1, pControlPoints(1) 
   
   'Display the Bezier curve degree.  Note: This is always 3. 
   MsgBox "Degree of Bezier: " & pBezier.Degree 
End Sub

[C#]
public void showBezierCurvesProperties() 
{
    IPoint[] controlPoints = new IPoint[4];
    //Bezier FromPoint / From Tangent FromPoint 
    controlPoints[0] = new ESRI.ArcGIS.Geometry.Point();
    //From Tangent ToPoint 
    controlPoints[1] = new ESRI.ArcGIS.Geometry.Point();
    //To Tangent FromPoint 
    controlPoints[2] = new ESRI.ArcGIS.Geometry.Point();
    //Bezier To Point / To Tangent ToPoint 
    controlPoints[3] = new ESRI.ArcGIS.Geometry.Point(); 
    //Define the Bezier Control Points.  This is a simple S-Curve. 
    controlPoints[0].PutCoords(0, 100);
    controlPoints[1].PutCoords(100, 100);
    controlPoints[2].PutCoords(0, 0);
    controlPoints[3].PutCoords(100, 0);
    //Create the Bezier Curve.
    IBezierCurveGEN bezier = new BezierCurve(); 
    bezier.PutCoords(ref controlPoints);
    //Get All of the Control Points from the Bezier Curve. 
    bezier.QueryCoords(ref controlPoints);
    //Get each control point individually 
    bezier.QueryCoord(0, controlPoints[0]); 
    bezier.QueryCoord(1, controlPoints[1]); 
    bezier.QueryCoord(2, controlPoints[2]); 
    bezier.QueryCoord(3, controlPoints[3]); 
    //Change the control points to define a simple CircularArc-like Curve. 
    controlPoints[0].PutCoords(-100, 200); 
    controlPoints[1].PutCoords(-100, 100); 
    //Replace individual control points. 
    bezier.PutCoord(0, controlPoints[0]); 
    bezier.PutCoord(1, controlPoints[1]); 
    //Display the Bezier curve degree.  Note: This is always 3. 
    System.Windows.Forms.MessageBox.Show("Degree of Bezier: " + bezier.Degree); 
}

[Visual Basic .NET, C++]
No example is available for Visual Basic .NET or C++. To view a Visual Basic 6.0 or C# example, click the Language Filter button Language Filter in the upper-left corner of the page.