(Smooth) CURVES and SURFACES
Lecture #2 for CS 184
Wednesday 3/30, 2005 -- 2:40pm-4: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
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 ...
-
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 (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!
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