Exploring Bezier Curves

Saltire Software, home of Geometry Expressions and GXWeb

Download a Geometry Expressions Model for the Bezier Curves Explorer

Try this activity with TI-Nspire™

Symbolic computations on this page use the GeoGebra CAS engine.

  
 
 
 

With special thanks to Phil Todd for the Bezier Clock, all the helpful advice and the inspiration over many years

Learn more about this and other GX Apps at Euclid's Muse

 
 
 

Introduction

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).

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

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

 

Enjoy some Bezier Art

Tap either image to download a TI-Nspire Bezier Exploration

 
 
 
 

Back to Top

Jump to GX Model

 
 

Geometric or Algebraic?

 

The curves above have been generated geometrically. A Dilation Transformation is used to set points which move in proportion to the point on segment. 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, 2 and 8). 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 returns '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.

 

Next, explore the second order (quadratic) bezier function,

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

 
 

Back to Top

Jump to GX Model

 
 

Recursive Mathematics

 

Begin your exploration by defining these two fundamental functions:

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

And maybe even bezier3(a,b,c,d,t) = bezier2(a,b,c,t)*(1 - t) + bezier2(b,c,d,t)*t

 

Back to Top

Jump to GX Model

 
 

Now for our example, the x-coordinates for A, B and C are -1, 2 and 8, so try the command bezier2(-1,2,8,t).

For the y-coordinates, try bezier2(10,2,8,t)

 

Back to Top

Jump to GX Model

 
 

Can you see how this might relate to our figure?

In general, we could define x and y coordinates using x(A) and y(A), and so try bezier2(x(A),x(B),x(C),t) and bezier2(y(A),y(B),y(C),t).

What if we used parametric equations? Press the button below to use the Input Line to enter x=bezier2(x(A),x(B),x(C),t),y=bezier2(y(A),y(B),y(C),t).

Is this what you expected?

We might even go one step further...

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?

 

Back to Top

Jump to GX Model



 

Hint: When entering mathematical expressions in the math boxes which follow, use the space key to step out of fractions, powers, etc. On Android, begin entry by pressing Enter.

Type simple mathematical expressions and equations as you would normally enter these: for example, "x^2[space]-4x+3", and "2/3[space]". For more interesting elements, use Latex notation (prefix commands such as "sqrt" and "nthroot3" with a backslash (\)): for example: "\sqrt(2)[space][space]". More?

Back to Top

Jump to GX Model

 

 

This document requires an HTML5-compliant browser.
t
0 0 1
x(A)
y(A)
x(B)
y(B)
x(C)
y(C)
x(D)
y(D)
f(x)
x(t)
y(t)

App generated by Geometry Expressions

Use the MathBox below to enter:

  • functions in x for graphing. For example, enter x^2-x-1 and press the Graph button.

  • Parametric equations in t for graphing: Enter these in the form x=x(t),y=y(t). For example: x=2t-1,y=(2t-1)^2 and press the Graph button.

  • Expressions for CAS: Define functions, simplify expressions, solve equations... For example, enter Solve(x^2-x-1=0) and press the CAS button.

 

Back to Top

Jump to GXWeb

 

 

Assessment

Back to Top

Jump to Model

Jump to GXWeb

 
 

Share using QR Codes

Back to Top

Jump to Model

Jump to GXWeb