(Smooth) CURVES and SURFACES
Lecture #2 for CS 184
Wednesday 3/30, 2005  2:40pm4:00pm,  306 Soda Hall
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
BSplines).
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=tangentcont., G2=curvaturecont. )
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;

Starttoend 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: BSplines
Properties of Cubic BSplines

Piecewise cubic polynomial;

Does NOT interpolate control points;

Convex hull property;

Construction by 3fold linear interpolation

Invariant under affine transformations;

Starttoend 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 BSpline:
 Design of a knot for a snowsculpture (closed curve with 9 control points);
 A 6inch 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 = arclength 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
  Arclength;
  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 ...

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)
REFERENCE  TO LEARN MORE:
Chapter 5 in "Geometric Modeling" by Michael E. Mortenson, John Wiley &Sons, 1985
Spline Patches (TwoManifolds = Surfaces)
A TensorProduct Surface is a curve swept through space.
Bicubic Bezier Patches
Use two parameters (u,v). Apply the Beziercurve "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 udirection.
All this forms a twoparameter
patch.
Putting
patches together with G1 or G2 continuity is not trivial
(same issues as for curves  only more of them!).
To make curvaturecontinuous (G2 or C2) surfaces, use biquintic
Bezier patches.
(but even more of a hassle to get all the control points in the right
place!).
BSpline Surfaces
Apply BSpline "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!
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.
Page Editor: Carlo H. Séquin