I introduced Bezier curves and surfaces yesterday with a quick and non-technical treatment focusing on the recursive definition of the Bezier curve of order
The definition of order-2 (quadratic) Bezier curve is then
In general, one arrives at a polynomial expression in terms of the control points
where
To help you visualize the recursive definition of Bezier curves, I’ve created a demo in the SVN repository for our class. Update and run the main() method in util.BezierDemo. You’ll need to invoke the animation panel and set two key frames (by clicking on Save then Insert buttons), then hit the play button. You’ll probably want to adjust the playback speed also. Here’s a movie showing the result:
Rational Bezier curves. If one uses homogeneous coordinates for the points of space, then one can generate a wider variety of curves using the same algorithm. Remember, the final step of drawing the curve is to dehomogenize, that is, divide by the homogeneous coordinate, which in our case is the
Representation of circles. In particular, it is possible to parametrize arcs of circles using rational Bezier curves of degree 2. This takes advantage of the fact that the circle an be represented rationally as the homogeneous curve
provides essentially the same parametrization of this circular arc.
Bezier surfaces. There are two approaches to generalizing the above approach to generate surfaces. In the first, one begins with a triangle instead of a line segment, and two parameters
The other approach creates surfaces as the tensor product of two curves. In this case, one requires for an order-n surface a total of