Stephen ARNOLD
HomeOnLine Maths Resources →Introducing Bezier Curves

Introducing Bezier Curves

With thanks to Jon Roberts

For a step-by-step introduction using TI-Nspire, work through the Bezier Intro and download the TNS file.


Most of the curves you see on a computer screen or printed page - everything from text fonts to animations - are generated mathematically using Bezier Curves (sometimes called Bezier Splines).

Click on the image below to open the TI-Nspire Player and explore the construction and theory of these wonderful objects.


Two GeoGebra examples are shown here - a quadratic bezier (controlled by points A, B and C) and a cubic bezier (controlled by all four points, A, B, C and D).

Drag the control points around and see the effect this has upon the curves.

Sorry, the GeoGebra Applet could not be started. Please make sure that Java 1.4.2 (or later) is installed and active in your browser (Click here to install Java now)

These curves have been generated geometrically. The Dilation Transformation is used to set points which move in proportion to the point P on segment AB. This is interesting and powerful mathematics, but the real control comes when the curves are generated algebraically.

This may be done in several ways, but one relatively easy way involves using recursive formulae, beginning with one like this:

Bezier(a,b,t) = a*(1 - t) + b*t

Suppose a and b are two numbers (say, 1 and 5). What happens as the value of t varies between 0 and 1?

When t = 0, the formula is completely "a" and when t = 1, it gives "b". For values between 0 and 1, it gives values between a and b, just like dragging a slider point P between the points A and B on the figure.

Then explore the second order bezier function,

Bezier2(a,b,c,t) = bezier(a,b,t)*(1 - t) + Bezier(b,c,t)*t

Use a computer algebra system if you have one - or try Yacas Online: go to My Yacas and define the following functions as shown (using ":=")

bezier(a,b,t) := a*(1-t) + b*t

bezier2(a,b,c,t) := bezier(a,b,t)*(1 - t) + bezier(b,c,t)*t

Now for our example, the x-coordinates for A, B and C are 3, 1 and 5, so try the command Expand(bezier2(3,1,5,t))

For the y-coordinates, try Expand(bezier2(5,2,-1,t))

Can you see how this might relate to our figure?

What if we used parametric equations (in GeoGebra, this is the Curve[] command)? Double click on the Geogebra window above and use the Input Line to enter Curve[6t^2-4t+3,-6t+5,t,0,1]. Is this what you expected?

The possibilities for exploring interesting mathematics are great - with even the chance to display some artistic tendencies along the way!

Now what about that cubic curve?


Steve Arnold, Created with GeoGebra


©2009 Compass Learning TechnologiesOnLine Mathematics Resources ← GeoGebra Showcase