Bernstein Polynomials and Convex Bézier Sums

Requires a Wolfram Notebook System

Interact on desktop, mobile and cloud with the free Wolfram CDF Player or other Wolfram Language products.

Requires a Wolfram Notebook System

Edit on desktop, mobile and cloud with any Wolfram Language product.

This Demonstration throws light on the fact that the points that form a basic Bézier curve are convex combinations of the Bézier points to : , where the coefficients are just the Bernstein polynomials of degree and is a parameter running from 0 to 1.

[more]

This curve lies entirely within the convex hull of its Bézier points and so in this Demonstration is inside the unit circle. (Recall that the convex hull of the points to consists of all convex combinations , where each is restricted to belong to the interval and the have to sum to unity: .)

The first control sets the number of Bézier points, which are chosen here as the roots of unity on the unit circle and count from to , with being the degree of the Bernstein polynomials belonging to the convex Bézier sum.

Click the "curve" button to see the curve . The curve for the whole parameter range is thin while the curve from 0 up to the current parameter value of is thick.

Click the "points" button to see the vectors from the origin to the Bézier points.

Click the "convex sum" button to see the convex combination , which is built up (starting with the origin) by putting each component as a vector on top of its predecessor , and thus creating "Bézier's polygon".

Click the "convex components" button to see the individual component as a multiple of its Bézier point vector , which can be seen after pressing the button; to emphasize this, click the "segment chart" button.

Click the button "length sum" to see that the Bernstein factors indeed form a partition of unity of the form , which covers 1 as the vector ranging from the origin (0,0) to the point in the plane.

The response time shortens if you use only some of the buttons.

To each number of points there corresponds a different Bézier curve. Choose a number!

Almost every item in the graphic is annotated, so mouseover them to see the explanations.

[less]

Contributed by: Ludwig Weingarten (March 2011)
Open content licensed under CC BY-NC-SA


Snapshots


Details

Bernstein polynomials, , are weighted multiples of and of the form , where is the degree, is the index running from 0 to , and . So, for each degree , there are polynomial functions from to . The only zeros of these functions are 0 and 1; the index counts the multiplicity of the root at 0 and counts the multiplicity of the root at 1. In addition, they are positive in , nonnegative in [0,1] and, for each , they sum to the constant function 1 on , so they constitute a partition of unity. This is why they can be used to build convex combinations.

In Mathematica these polynomials are denoted as BernsteinBasis[d,i,s].

Thinking of the variable as a parameter, a Bernstein vector of degree and parameter can thus be defined as , a vector of functions from to , with entries.

On the other hand, if the roots of unity on the unit circle are , then for every parameter value , the linear combinations are a convex combination of the points to . They lie within the convex hull of and thus within the unit circle.

Regarded as a mapping from to the plane, these linear combinations form a curve called the "basic Bézier curve of the points to ". A component is called the "Bézier part of "; the combination is also called the "Bézier sum of to ".

Note: "basic" means that we are talking about polynomial curves, not piecewise polynomials!

Snapshot 1: click the buttons one after the other; after any change mouse over the graphics to see explanations

Snapshot 2: the convex components are shown underlined by the corresponding segment chart

Snapshot 3: the convex sum and Bézier's polygon are shown, the length of its components indicated by the segment radius

Snapshot 4: the convex sum and Bézier's polygon are shown, the length of its components indicated by the length sum



Feedback (field required)
Email (field required) Name
Occupation Organization
Note: Your message & contact information may be shared with the author of any specific Demonstration for which you give feedback.
Send