WOLFRAM

BezierCurve[{pt1,pt2,}]

is a graphics primitive that represents a Bézier curve with control points pti.

Details and Options

Examples

open allclose all

Basic Examples  (1)Summary of the most common use cases

A Bézier curve and its control points in 2D:

Out[2]=2

A Bézier curve and its control points in 3D:

Out[4]=4

A composite Bézier curve and its control points:

Out[6]=6

Scope  (17)Survey of the scope of standard use cases

Graphics  (11)

Specification  (4)

A single cubic Bézier curve:

Out[1]=1
Out[2]=2

A composite Bézier curve:

Out[1]=1
Out[2]=2

Bézier curves of different degrees:

Out[1]=1
Out[2]=2

By default, a Bézier curve is open:

Out[1]=1

A closed Bézier curve automatically adds the first control point at the end:

Out[2]=2

Styling  (4)

Bézier curves with different thicknesses:

Out[1]=1
Out[2]=2

Thickness in scaled size:

Out[1]=1

Thickness in printer's points:

Out[2]=2

Dashed curves:

Out[1]=1
Out[2]=2

Colored curves:

Out[1]=1

Coordinates  (3)

Use Scaled coordinates:

Out[1]=1

Use ImageScaled coordinates in 2D:

Out[1]=1

Use Offset coordinates in 2D:

Out[1]=1

Regions  (6)

Embedding dimension:

Out[1]=1

Geometric dimension:

Out[2]=2

Point membership test:

Out[1]=1

Arc length:

Out[2]=2

Centroid:

Out[3]=3
Out[4]=4

Distance from a point:

Out[2]=2

The distance to the nearest point for the Bézier curve:

Out[3]=3

Signed distance from a point:

Out[2]=2

Signed distance to the Bézier curve:

Out[3]=3

A Bézier curve is bounded:

Out[2]=2

Get its range:

Out[3]=3
Out[4]=4

Generalizations & Extensions  (3)Generalized and extended use cases

A single Bézier curve with degree d requires d+1 control points:

Out[1]=1

With fewer control points, a lower-degree curve is generated:

Out[1]=1

With more control points, a composite Bézier curve is generated:

Out[1]=1

Applications  (7)Sample problems that can be solved with this function

Graphics, Glyphs, etc.  (4)

Approximate a circle with 4 Bézier curves:

Out[1]=1
Out[2]=2

A quadratic Bézier curve can be converted into a cubic Bézier curve:

Out[4]=4

Define the outline of a glyph:

Out[1]=1

Draw a tree plot:

Out[1]=1
Out[2]=2

Use BezierCurve instead of lines to draw the edges:

Out[4]=4

Interpolation  (1)

Choose 4 points to be interpolated:

Out[2]=2

Compute distances between control points:

Out[3]=3

Compute normalized parameters with respect to the distances (chord length parametrization):

Out[4]=4

Since a Bézier curve interpolates endpoints, you only need to compute two intermediate points:

The formula for the interpolating Bézier curve:

Solve the equations:

Out[8]=8

Show the interpolating curve:

Out[9]=9

Least Squares Fitting  (1)

Generate a list of points to be approximated:

Out[2]=2

Fit to a cubic Bézier curve, using Bernstein polynomials:

Out[3]=3

Show the data with the curve:

Out[4]=4

Construct control points from the coefficients:

Out[5]=5
Out[6]=6

Show the data with the curve:

Out[7]=7

Geometric Invariances  (1)

Linear transition from one Bézier curve to another:

Out[3]=3

Properties & Relations  (11)Properties of the function, and connections to other functions

A Bézier curve always interpolates the endpoints:

Out[2]=2

A Bézier curve with degree 1 is equivalent to Line:

Out[2]=2

A Bézier curve is affine invariant:

Out[3]=3

A single Bézier curve lies in the convex hull of the control points:

Out[3]=3

In 3D, a Bézier curve with planar control points lies in the plane:

Out[4]=4

The cubic Bernstein polynomials:

Out[1]=1

A Bézier curve can be constructed from the sum of the Bernstein polynomials:

Out[3]=3
Out[5]=5

A Bézier curve generated from the average of two sets of control points:

Out[2]=2

The new curve is indeed the average of two Bézier curves:

Out[4]=4

A composite Bézier curve may not be smooth at the point where two segments meet:

Out[2]=2

By making the adjacent points collinear, you can get a smooth composite Bézier curve:

Out[2]=2

A single BezierCurve is a special case of BSplineCurve:

Out[2]=2

In 3D, a single Bézier surface patch can be generated using BSplineSurface:

Out[1]=1
Out[2]=2

The boundaries of the surface form Bézier curves:

Out[3]=3

Interactive Examples  (1)Examples with interactive outputs

A simple Bézier curve editor:

Out[1]=1

Neat Examples  (2)Surprising or curious use cases

A random collection of cubic Bézier curves:

Out[1]=1
Out[58]=58

A composite Bézier flower:

Out[1]=1
Wolfram Research (2008), BezierCurve, Wolfram Language function, https://reference.wolfram.com/language/ref/BezierCurve.html.
Wolfram Research (2008), BezierCurve, Wolfram Language function, https://reference.wolfram.com/language/ref/BezierCurve.html.

Text

Wolfram Research (2008), BezierCurve, Wolfram Language function, https://reference.wolfram.com/language/ref/BezierCurve.html.

Wolfram Research (2008), BezierCurve, Wolfram Language function, https://reference.wolfram.com/language/ref/BezierCurve.html.

CMS

Wolfram Language. 2008. "BezierCurve." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/BezierCurve.html.

Wolfram Language. 2008. "BezierCurve." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/BezierCurve.html.

APA

Wolfram Language. (2008). BezierCurve. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BezierCurve.html

Wolfram Language. (2008). BezierCurve. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BezierCurve.html

BibTeX

@misc{reference.wolfram_2025_beziercurve, author="Wolfram Research", title="{BezierCurve}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/BezierCurve.html}", note=[Accessed: 02-June-2025 ]}

@misc{reference.wolfram_2025_beziercurve, author="Wolfram Research", title="{BezierCurve}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/BezierCurve.html}", note=[Accessed: 02-June-2025 ]}

BibLaTeX

@online{reference.wolfram_2025_beziercurve, organization={Wolfram Research}, title={BezierCurve}, year={2008}, url={https://reference.wolfram.com/language/ref/BezierCurve.html}, note=[Accessed: 02-June-2025 ]}

@online{reference.wolfram_2025_beziercurve, organization={Wolfram Research}, title={BezierCurve}, year={2008}, url={https://reference.wolfram.com/language/ref/BezierCurve.html}, note=[Accessed: 02-June-2025 ]}