Curves Tutorial

This is a curves tutorial I wrote for an old version of my class. I have converted the old LaTeX sources to Hugo/Markdown using AI tools.

Note: a version of this tutorial was adapted into a book chapter. This work is similar to the book chapter derived from these notes. This version does not contain all the copy-editing, formatting, and design work that the book publisher put into the chapter.

I recommend the version in the textbook Fundamentals of Computer Graphics.

Or, you can start with Page  1  (Curves).

Curves

in Curves Tutorial

Intuitively, think of a curve as something you can draw with a (thin) pen. The curve is the set of points the pen traces over an interval of time. While we usually think of a pen writing on paper (e.g. a curve that is in a 2D space), the pen could move in 3D to generate a space curve, or (if you are a mathematician) you could imagine the pen moving in some other kind of space.

Read more…

Curve Properties

in Curves Tutorial

To describe a curve, we need to give some facts about its properties. For “named” curves, the properties are usually specific to the type of curve. For example, to describe a circle, we might provide its radius and the position of its center. For an ellipse, we might also provide the orientation of its major axis, and the ratio of the lengths of the axes. For free form-curves however, we need to have a more general set of properties to describe individual curves.

Read more…

Polynomial Pieces

in Curves Tutorial

The most popular representations for curves in computer graphics are piecewise functions where each curve piece is represented by a polynomial. Piecewise linear representations (a line segment is a polynomial of order 1) are a special case of this. In this section, we look over the mathematics of the individual polynomial pieces. In the next section, we discuss how to put pieces of polynomials together.

Read more…

Cubics

in Curves Tutorial

In graphics, when we represent curves using piecewise polynomials we usually use either line segments or cubic polynomials for the pieces. There are a number of reasons why cubics are popular in computer graphics:

Read more…

Approximating Curves

in Curves Tutorial

It might seem like the easiest way to control a curve is to specify a set of points for it to interpolate. In practice, however, interpolation schemes often have undesirable properties because they have less continuity and offer no control of what happens between the points. Curve schemes that only approximate the points are often preferred. With an approximating scheme, the control points influence the shape of the curve, but do not specify it exactly. Although we give up the ability to directly specify points for the curve to pass through, we gain better behavior of the curve and local control. The two most important types of approximating curves in computer graphics are Bezier Curves and B-Spline Curves.

Read more…

Bezier Curves

in Curves Tutorial

Bezier curves are one of the most common representations for free-form curves in computer graphics. The curves are named for Pierre Bezier, one of the people who were instrumental in their development. Bezier curves have an interesting history where they were concurrently developed by several independent groups.

Read more…

B-Splines

in Curves Tutorial

B-Splines provide a method for approximating a set of nn points with a curve made up of polynomials of degree dd that gives C(d1)C(d-1) continuity. Unlike the Bezier splines of the previous section, B-Splines allow curves to be generated for any desired degree of continuity (almost up to the number of points). B-Splines are, therefore, a prefered method for specifying very smooth curves (high degrees of continuity) in computer graphics. If we want a C(2)C(2) (or higher) curve through an arbitrary number of points, B-Splines are probably the right method.

Read more…