BezierCurve
✖
BezierCurve
is a graphics primitive that represents a Bézier curve with control points pti.
Details and Options

- BezierCurve can be used in both Graphics and Graphics3D (two‐ and three‐dimensional graphics).
- The positions of control points can be specified either in ordinary coordinates as {x,y} or {x,y,z}, or in scaled coordinates as Scaled[{x,y}] or Scaled[{x,y,z}].
- In two dimensions, Offset and ImageScaled can be used to specify coordinates.
- BezierCurve by default represents a composite cubic Bézier curve.
- SplineDegree->d specifies that the underlying polynomial basis should have maximal degree d.
- With SplineDegree->d, BezierCurve with d+1 control points yields a simple degree-d Bézier curve. With fewer control points, a lower-degree curve is generated. With more control points, a composite Bézier curve is generated. »
- Curve thickness can be specified using Thickness or AbsoluteThickness, as well as Thick and Thin. »
- Curve dashing can be specified using Dashing or AbsoluteDashing, as well as Dashed, Dotted, etc. »
- Curve shading or coloring can be specified using CMYKColor, GrayLevel, Hue, Opacity, or RGBColor. »
- Individual coordinates and lists of coordinates in BezierCurve can be Dynamic objects.
Examples
open allclose allBasic Examples (1)Summary of the most common use cases
A Bézier curve and its control points in 2D:

https://wolfram.com/xid/0cf3js6tiak2lem-nymihs

https://wolfram.com/xid/0cf3js6tiak2lem-d5ur72

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

https://wolfram.com/xid/0cf3js6tiak2lem-hlqhf

https://wolfram.com/xid/0cf3js6tiak2lem-ow240

A composite Bézier curve and its control points:

https://wolfram.com/xid/0cf3js6tiak2lem-dfjac0

https://wolfram.com/xid/0cf3js6tiak2lem-b544qc

Scope (17)Survey of the scope of standard use cases
Graphics (11)
Specification (4)

https://wolfram.com/xid/0cf3js6tiak2lem-3ox1f9


https://wolfram.com/xid/0cf3js6tiak2lem-zhulbh


https://wolfram.com/xid/0cf3js6tiak2lem-s6aykc


https://wolfram.com/xid/0cf3js6tiak2lem-9m5poc

Bézier curves of different degrees:

https://wolfram.com/xid/0cf3js6tiak2lem-vvx2i7


https://wolfram.com/xid/0cf3js6tiak2lem-tww1t2

By default, a Bézier curve is open:

https://wolfram.com/xid/0cf3js6tiak2lem-olfw0d

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

https://wolfram.com/xid/0cf3js6tiak2lem-g9j71y

Styling (4)
Bézier curves with different thicknesses:

https://wolfram.com/xid/0cf3js6tiak2lem-rhselg


https://wolfram.com/xid/0cf3js6tiak2lem-54nygb


https://wolfram.com/xid/0cf3js6tiak2lem-d1pl7g

Thickness in printer's points:

https://wolfram.com/xid/0cf3js6tiak2lem-pdg0bx


https://wolfram.com/xid/0cf3js6tiak2lem-zflhi8


https://wolfram.com/xid/0cf3js6tiak2lem-busjcw


https://wolfram.com/xid/0cf3js6tiak2lem-qisk2m

Coordinates (3)
Use Scaled coordinates:

https://wolfram.com/xid/0cf3js6tiak2lem-nb9g9m

Use ImageScaled coordinates in 2D:

https://wolfram.com/xid/0cf3js6tiak2lem-c0gi38

Use Offset coordinates in 2D:

https://wolfram.com/xid/0cf3js6tiak2lem-g2at7e

Regions (6)

https://wolfram.com/xid/0cf3js6tiak2lem-y220


https://wolfram.com/xid/0cf3js6tiak2lem-bx9tom


https://wolfram.com/xid/0cf3js6tiak2lem-di0yv6


https://wolfram.com/xid/0cf3js6tiak2lem-lb51on

https://wolfram.com/xid/0cf3js6tiak2lem-bs1xd


https://wolfram.com/xid/0cf3js6tiak2lem-m2h1an


https://wolfram.com/xid/0cf3js6tiak2lem-sgjro6


https://wolfram.com/xid/0cf3js6tiak2lem-oc6hy

https://wolfram.com/xid/0cf3js6tiak2lem-bjikjq

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

https://wolfram.com/xid/0cf3js6tiak2lem-da2zys


https://wolfram.com/xid/0cf3js6tiak2lem-cybvpc

https://wolfram.com/xid/0cf3js6tiak2lem-bm4ed

Signed distance to the Bézier curve:

https://wolfram.com/xid/0cf3js6tiak2lem-g7ezsg


https://wolfram.com/xid/0cf3js6tiak2lem-cyjdcd

https://wolfram.com/xid/0cf3js6tiak2lem-b5d6xy


https://wolfram.com/xid/0cf3js6tiak2lem-1pdcpd


https://wolfram.com/xid/0cf3js6tiak2lem-mu3hj3

Generalizations & Extensions (3)Generalized and extended use cases
A single Bézier curve with degree d requires d+1 control points:

https://wolfram.com/xid/0cf3js6tiak2lem-mfpx

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

https://wolfram.com/xid/0cf3js6tiak2lem-f2dwk

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

https://wolfram.com/xid/0cf3js6tiak2lem-kpb00m

Applications (7)Sample problems that can be solved with this function
Graphics, Glyphs, etc. (4)
Approximate a circle with 4 Bézier curves:

https://wolfram.com/xid/0cf3js6tiak2lem-ca8cal


https://wolfram.com/xid/0cf3js6tiak2lem-hz9gd2

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

https://wolfram.com/xid/0cf3js6tiak2lem-e55vjt

https://wolfram.com/xid/0cf3js6tiak2lem-belmwk

https://wolfram.com/xid/0cf3js6tiak2lem-c5ehkq

https://wolfram.com/xid/0cf3js6tiak2lem-ctda3p

Define the outline of a glyph:

https://wolfram.com/xid/0cf3js6tiak2lem-e2mw4j


https://wolfram.com/xid/0cf3js6tiak2lem-tr4gn


https://wolfram.com/xid/0cf3js6tiak2lem-j9jb0d

Use BezierCurve instead of lines to draw the edges:

https://wolfram.com/xid/0cf3js6tiak2lem-k6nwtu

https://wolfram.com/xid/0cf3js6tiak2lem-b9ty3l

Interpolation (1)
Choose 4 points to be interpolated:

https://wolfram.com/xid/0cf3js6tiak2lem-lvla

https://wolfram.com/xid/0cf3js6tiak2lem-o8lerq

Compute distances between control points:

https://wolfram.com/xid/0cf3js6tiak2lem-nbqjn

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

https://wolfram.com/xid/0cf3js6tiak2lem-jo0blv

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

https://wolfram.com/xid/0cf3js6tiak2lem-fe6p8c
The formula for the interpolating Bézier curve:

https://wolfram.com/xid/0cf3js6tiak2lem-f708xa

https://wolfram.com/xid/0cf3js6tiak2lem-bvrbfr

https://wolfram.com/xid/0cf3js6tiak2lem-bjgxsa


https://wolfram.com/xid/0cf3js6tiak2lem-mpw1e

Least Squares Fitting (1)
Generate a list of points to be approximated:

https://wolfram.com/xid/0cf3js6tiak2lem-d724oz

https://wolfram.com/xid/0cf3js6tiak2lem-cpd7xj

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

https://wolfram.com/xid/0cf3js6tiak2lem-c4ycf1


https://wolfram.com/xid/0cf3js6tiak2lem-fgaefe

Construct control points from the coefficients:

https://wolfram.com/xid/0cf3js6tiak2lem-bzazf0


https://wolfram.com/xid/0cf3js6tiak2lem-ta4hn


https://wolfram.com/xid/0cf3js6tiak2lem-bcozo7

Properties & Relations (11)Properties of the function, and connections to other functions
A Bézier curve always interpolates the endpoints:

https://wolfram.com/xid/0cf3js6tiak2lem-cz6aeg

https://wolfram.com/xid/0cf3js6tiak2lem-bcy7va

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

https://wolfram.com/xid/0cf3js6tiak2lem-fblwnd

https://wolfram.com/xid/0cf3js6tiak2lem-cj72vq

A Bézier curve is affine invariant:

https://wolfram.com/xid/0cf3js6tiak2lem-wdkjj

https://wolfram.com/xid/0cf3js6tiak2lem-3n32i

https://wolfram.com/xid/0cf3js6tiak2lem-b0i8ws

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

https://wolfram.com/xid/0cf3js6tiak2lem-xqbu0p

https://wolfram.com/xid/0cf3js6tiak2lem-hjoxqi

https://wolfram.com/xid/0cf3js6tiak2lem-gkb8s4

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

https://wolfram.com/xid/0cf3js6tiak2lem-coznj8

https://wolfram.com/xid/0cf3js6tiak2lem-dv8tcs

https://wolfram.com/xid/0cf3js6tiak2lem-ojl06

https://wolfram.com/xid/0cf3js6tiak2lem-hosjau

The cubic Bernstein polynomials:

https://wolfram.com/xid/0cf3js6tiak2lem-cltgwx

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

https://wolfram.com/xid/0cf3js6tiak2lem-1ghus

https://wolfram.com/xid/0cf3js6tiak2lem-bwxk19


https://wolfram.com/xid/0cf3js6tiak2lem-ivlhbf

https://wolfram.com/xid/0cf3js6tiak2lem-5lyc5

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

https://wolfram.com/xid/0cf3js6tiak2lem-rxu5a

https://wolfram.com/xid/0cf3js6tiak2lem-n3dkz

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

https://wolfram.com/xid/0cf3js6tiak2lem-zx0il

https://wolfram.com/xid/0cf3js6tiak2lem-kwryn

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

https://wolfram.com/xid/0cf3js6tiak2lem-dq9607

https://wolfram.com/xid/0cf3js6tiak2lem-kdbgp

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

https://wolfram.com/xid/0cf3js6tiak2lem-bpkw27

https://wolfram.com/xid/0cf3js6tiak2lem-92bb0

A single BezierCurve is a special case of BSplineCurve:

https://wolfram.com/xid/0cf3js6tiak2lem-dju1g9

https://wolfram.com/xid/0cf3js6tiak2lem-fn3syw

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

https://wolfram.com/xid/0cf3js6tiak2lem-f3rjwe


https://wolfram.com/xid/0cf3js6tiak2lem-c89t0n

The boundaries of the surface form Bézier curves:

https://wolfram.com/xid/0cf3js6tiak2lem-be0h7q

Interactive Examples (1)Examples with interactive outputs
Neat Examples (2)Surprising or curious use cases
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
]}
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
]}