# Splines (continued)

### REVIEW:

Splines are smooth parameterized representations of smooth curves.
We distinguish between:
-- Interpolating splines (pass through all the data points; example Hermite splines), and
-- Approximating splines (only come close to data points; example B-Splines).

When making smooth shapes by piecing together smooth curves, consider the
degrees of smoothness at the joints:
-- Parametric Continuity: differentiability of the parametric representation (C0, C1, C2, ...)
-- Geometric Continuity: smoothness of the resulting displayed shape (G0=C0, G1=tangent-cont., G2=curvature-cont. )

Properties of Bezier Curves:
• Cubic polynomial, ==> true space curves;
• Interpolates endpoints;
• Approximation of other two control points;
• End tangents defined by pairs of control points;
• Convex hull property;
• Invariant under affine transformations;
• Start-to-end symmetry;
• Infinitely differentiable;
• May have loops, cusps;
• Robust construction with the DeCasteljau algorithm
Stitching Bezier Curves Together: How to approximate a given smooth curve with Bezier segments.

A better way to make extensive smooth curves:  B-Splines

Properties of Cubic B-Splines
• Piecewise cubic polynomial;
• Does NOT interpolate control points;
• Convex hull property;
• Construction by 3-fold linear interpolation
• Invariant under affine transformations;
• Start-to-end symmetry;
• Twice differentiable (C2) at joints;
• Infinitely differentiable everywhere else;
• May have cusps, thus may not be G2 everywhere;
• Good to make smooth closed loops.
Example use of a closed B-Spline:
-- Design of a knot for a snowsculpture (closed curve with 9 control points);
-- A 6-inch model made on a rapid prototyping machine (FDM);
-- The final sculpture "Knot Divided", Breckenridge, CO, Jan. 2005.

## Curve Optimization

What should we do with all the degrees of freedom resulting from the many control points?
==> use it to "optimize" the curve in some way:
-- Define a cost function:  e.g., Bending Energy = arc-length integral of square of curvature.
-- Modify curve incrementally so as to minimize this cost function.

## Use of Splines in your Final Projects

• Smooth camera paths.
• Rollercoaster tracks.
• Snake bodies (sweep along a spline curve).
• Curved smooth bodies and shells.

• ## Differential Geometry of Curves

### "Analysis" of Curves (as compared to "Design" or "Data Fitting")

• Intrinsic Curve Properties -- defined at each local point on the curve
• - - Vectors: Tangent, Normal, Binormal;
- - Planes: Osculating, Normal, Rectifying;
- - Scalars: Curvature, Torsion.
• Extrinsic Curve Properties -- overall, global values
• - - Arc-length;
- - Planarity, Linearity;
- - Closedness, Turning Number, Knot Type;
- - Highest polynomial degree, lowest continuity type, # of inflection points.

### Construction of the Frenet Frame (Ref. frame for intrinsic properties)

• Finding the Tangent: -- p' = dp/dt -- velocity vector -- normalize ...
• Acceleration: -- p" -- change of velocity vector: 2 components (true acceleration, turning) ...
• Normal Plane: -- normal to tangent vector.
• Osculating Plane: -- containing osculating circle = the one that best (locally) fits the curve.
• Normal vector: -- indicates direction in which curve bends.
• Binormal: -- axis around which Frenet frame turns.
• Difference between Normal and second derivative ...
• The three coordinate planes and their relations to the 3 vectors ...

### Serret - Frenet Relations

• What is Curvature ? -- rate of rotation around b (1/r of the osculating circle)
• What is Torsion ? -- rate of rotation of osculating plane (around tangent)
• Inflection points -- where curvature = 0.
• Which unit vectors serve as local rotation axis ?  (==> see above)

Chapter 5 in "Geometric Modeling" by Michael E. Mortenson, John Wiley &Sons, 1985

## Spline Patches  (Two-Manifolds = Surfaces)

A Tensor-Product Surface is a curve swept through space.

### Bicubic Bezier Patches

Use two parameters (u,v). Apply the Bezier-curve "machinery" twice:
-- Step one: make a few control curves (say as a function of v);
-- Use these control curves to define a whole familiy of curves in the u-direction.
All this forms a two-parameter patch.

Putting patches together with G1- or G2- continuity is not trivial (same issues as for curves -- only more of them!).
To make curvature-continuous (G2 or C2) surfaces, use biquintic Bezier patches.
(but even more of a hassle to get all the control points in the right place!).

### B-Spline Surfaces

Apply B-Spline "machinery" in two different directions.
Creates a small patch near the central "mesh" of the control point grid.
Will create smooth surfaces if the control points are properly reused (overlaped) for adjacent patches.
Much easier than stitching together Bezier patches -- but creates an approximating surface!

### Subdivision Surfaces

Extend the above "machinery" to surfaces of arbitrary genus,
that contain "irregular" vertices (where not exactly 4 quadrilateral patches join together).
-- Catmull Clark
-- Doo Sabin
Similar approaches can also be used to deal with triangulated surfaces:
-- Loop's Triangle Subdivision
-- Zorin's Interpolating Triangle Subdivision

Slides prepared by Prof. O'Brien.

### ( PREVIOUS: Spline Lecture #1)

Page Editor: Carlo H. Séquin