What is a curve?
- A parameterized curve is a map btw each point an interval of the real line to some point in the plane
- Note that: the same geometrical curve admit many parameterizations...
- basically corresponds to a change of "velocity" along the curve
- canonical: unit-speed curve
- we can get this unit-speed curve by choosing the right parameterization:
- A measure of the curve is called geometric if it is invariant to the choice of parameterization:
- e.g: length, tangent direction, normal direction, curvature
- some are not intuitive from the formula. E.g: curvature
Given a curve
The length of this curve between and is:
- note that is strictly increasing
- thus, it has an inverse
- is exactly the unit-speed curve we are looking for
Local Frames of Curves (Frenet–Serret basis (or TNB basis))
![]()
Given an unit-speed curve.
The tangent, normal, and binormal unit vectors, often called T, N, and B make up the Frenet–Serret basis (or TNB basis), together form an orthonormal basis that spans are defined as follows:
- T is the unit vector tangent to the curve, pointing in the direction of motion.
- N is the normal unit vector, the derivative of T with respect to the arclength parameter of the curve, divided by its length.
- B is the binormal unit vector, the cross product of T and N.
In math word:
![]()
Because we have , one has , so
- The maginitude of is the absolute value of the curvature
- inverse of osculating radius
Fundamental theorem of Curves
- In 2D, the curvature fully determines a planar curve up to rigid motion (translation, rotation)
- In 3D, the curvature and torsion fully determine a curve up to rigid motion.
But now what, how to explain the curve to the computer?
The simplest form could be through a function:

Or through functions we saw earlier.
Or ... through interpolation between ordered points:
- linear interpolation: easy, but look boring, and not smooth
- linear combination of smooth functions
Winding number
Winding number (winding index) of a closed curve in the plane around a given point is an integer representing the total number of times that the curve travels counterclockwise around the point, i.e., the curve's number of turns. For certain open plane curves, the number of turns may be a non-integer. The winding number depends on the orientation of the curve, and it is negative if the curve travels around the point clockwise.
|
|
|
|
| -2 | -1 | 0 |
|
|
|
|
| 1 | 2 | 3 |
Turning number theorem:
Generic Interpolation
Given points and basis functions , find a function:
Solution step-by-step:
- Construct the Vandermonde-like matrix:
- Solve for the vector
- Done
So the problem come back to the choice of the basis function .
Polynomial Interpolation
|
simple, but can easily go bad:
|
|
Spline Interpolation
Idea: although globally, there is no interpolating low-degree polynomial, locally, we may find a good one.
Goal: construct a set of local, piecewise expressions that result in a smooth, global curve:
- simpler is better, so let's keep it of low-order
- but too simple is bad: linear should be avoided for example
cubic polynomial is the first order having inflections (change of curvature)
To formularize the problem again:
Given pairs of coordinates , construct a function s.t. that is cubic in each interval .
We have:
This ensures that interpolates the points and is continuous.
But we also need smoothness:
I am not so sure why, but my lecture also requires second derivative at the end of each interval to be equalized.
And finally, we need to ensure and with being the direction of the curve at the very last points.
Thus we have a linear equation with variables. And this approach has some particular benefits:
- easier to solve numerically (sparse solvers)
- more stable solutions (lower condition number)
- is guaranteed to converge as sampling density increases.
Note: This is so much better compare to Lagrange interpolation (polynomial version) because among all functions that interpolate a given set of points, spline interpolate minimizes:
which is closely related to curvature minimization!
Variant of Cubic Splines
- Hermite splines: The tangent at each endpoints is provided by users.
- Catmull-Rom splines: tangent based on previous/next points
Other Ways to Design Splines
Find a more expressive basis:
- This works for arbitrary order
- are the control points
- is the parameterization variable.
A few more key-word to look at:
- de Casteljau Algorithm: Repeated subdivision converges to curve
- B Splines
- Chaiken’s Algorithm: This idea is the basis of subdivision surfaces