📗 Smoothness of curves are usually defined by whether there are abrupt changes.
➩ Breaks or gaps.
➩ Corners.
➩ Changes in higher derivatives.
📗 Mathematically, continuity at a point at \(u\) is defined as the \(\lim_{x \to u^{-}} f\left(x\right) = f\left(u\right) = \lim_{x \to u^{+}} f\left(x\right)\).
📗 Given \(n\) points, to find a polynomial curve that passes through all the points, a polynomial of degree \(n - 1\) is needed.
➩ The coefficients are hard to compute (regression).
➩ The curve is hard to control.
➩ There can be unwanted wiggles.
➩ The resulting curve is \(C\left(\infty\right)\).
📗 Alternative 1: piecewise linear interpolation.
➩ The line segments are easy to control and predict.
➩ Only \(C\left(0\right)\).
📗 Alternative 2: piecewise polynomials (Hermite spline): Wikipedia.
➩ Connect the curves so that \(p'_{1}\) of the first segment is the same as \(p'_{0}\) of the second segment.
➩ This uses Hermite form polynomial.
➩ It requires specifying the derivatives at every point.
➩ The result is \(C\left(1\right)\).
📗 Alternative 3: piecewise polynomials (Cardinal spline): Wikipedia.
➩ Compute the derivative using the previous and next control points, meaning \(p'_{0} = s \left(p_{1} - p_{-1}\right)\) and \(p'_{1} = s \left(p_{2} - p_{0}\right)\), where \(s\) specifies the tension.
➩ When \(s = \dfrac{1}{2}\), the resulting spline is called Catmull-Rom spline.
➩ This works for closed loop too. Try this in Workbook 5.
📗 Catmull-Rom splines have \(p'_{0} = \dfrac{1}{2} \left(p_{1} - p_{-1}\right)\) and \(p'_{1} = \dfrac{1}{2} \left(p_{2} - p_{0}\right)\) for every curve segment connecting \(p_{0}\) and \(p_{1}\) and use the previous \(p_{-1}\) and next control \(p_{2}\) control points to compute the derivatives at \(p_{0}\) and \(p_{1}\). Try this in Workbook 5 and Project 1.
📗 Another subdivision curve that does not interpolate the control points is the B-spline (basis spline): Wikipedia.
📗 Chaikin's corner cutting algorithm can be used and the limit curve is a (uniform) quadratic B-spline.
📗 Quadratic B-spline can also be written in the form \(f\left(u\right) = \dfrac{1}{2} \left(1 - u\right)^{2} p_{1} + \left(-u^{2} + u + \dfrac{1}{2}\right) p_{2} + \dfrac{1}{2} u^{2} p_{3}\) (see Workbook readings for more details).
📗 Parameterization with \(u\) in the Hermite form is also called the natural parameterization.
📗 Changing \(u\) at a constant speed does not move \(f\left(u\right)\) along the curve at a constant speed.
📗 Arc-length parameterization is a reparameterization of a curve so that changing the parameter \(t\) at a constant speed moves \(f\left(u\right)\) along the curve at a constant speed.
➩ Analytically computing the arc-length parameterization is difficult.
➩ It can be approximated numerically by making a table of points with distances between them.
📗 Notes and code adapted from the course taught by Professor Michael Gleicher.
📗 Please use Ctrl+F5 or Shift+F5 or Shift+Command+R or Incognito mode or Private Browsing to refresh the cached JavaScript: Code.
📗 You can expand all the examples and demos: , or print the notes: .
📗 If there is an issue with TopHat during the lectures, please submit your answers on paper (include your Wisc ID and answers) or this Google Form at the end of the lecture.