CS 284: CAGD
Lecture #4 -- Mo 9/11, 2000.
PREVIOUS < - -
- - > CS 284 HOME < - -
- - > CURRENT < - -
- - > NEXT
Preparation:
Rockwood: pp 59-73
Main Lecture Topic
How to make interesting, complex, smooth curves that interpolate given points.
Review: Continuity of a Bezier Curve
- Individual segment is C1, but not always G1-continuous;
- - it may have cusps !
Stitching Bezier Curves Together
- Aiming for more control over complicated curves.
- - High-order Bezier curve does not allow much real control.
- - Basis functions are to broad; affect all points of the curve.
- Making Interpolating Curves from several Bezier segments.
- - Cubic Bezier segments for G1 or C1 continuity.
- - Quintic Bezier segments for G2 or C2 continuity.
- Tangent Continuity Conditions at the joints.
- Curvature Continuity Conditions at the joints.
- Counting Degrees of Freedom (DoF)
- - Each control point in 2D has 2 DoF.
- - Each constraint imposed removes one DoF.
- - How many DoF are remaining ?
- - (3 for G1; 2 for C1)
- How to use these DoF's ?
- - -> Optimize the curve !
- - -> Make it as pleasing as possible: --> See Programming Assignment #1.
- Global Optimization (approximation)
- - Define a cost function:
- - E.g., Strain Energy = arc-length integral of square of curvature.
- - (Approximate this as best possible with Bezier segments)
Administrative Intermezzo
Questions on Programming Assignment PA1 ?
Lagrange Interpolation
- Another way to make a smooth interpolating curve.
- The Goal: To interpolate all data (control) points with ONE function.
- A Set of basis functions that will achieve this
- - (p.61, eqn 4.2)
- The concept of "knots" {here: t-values at control points}
- - at what "time" do we pass the given points.
- Example of the Cubic Lagrange Basis with uniform knots
- Effect of changing the knot values
- - Experiment with applet.
- - Squeezing "more" of the curve between some knot pair --> yields bigger bulge.
Lagrange Basis Functions Compared with Bernstein
- Interpolation of ALL Points
- NO Tangent Conditions
- Preserves Affine Invariance
- Convex Hull Does NOT Apply
- Preserves Linear Precision
- NOT Variation diminishing
- - Look at a case with "extra wiggles"
- Maintains end-to-end symmetry if knots are symmetrical, too.
Evaluation of the Lagrange Curve
- How NOT to Evaluate a Lagrange Curve
- Iterated Linear Interpolation:
Aitken Algorithm
- Quadratic Lagrange Interpolation
- The First Level of Interpolation
- Subsequent Level of Interpolation
- Generalization
Current Homework Assignment:
In this first programming assignment you will be introduced (gently) to SLIDE
and to the Tcl language.
Your actual programming will be less than ten lines of code
(most of the expressions you will need have already been provided),
but it encourages experimentation and thinking.
The goal is to learn how to stitch cubic Bezier segments together
to make a smooth, pleasing-looking, interpolating curve
that behaves well even for rather ragged control polygons with
irregularly spaced control points (like the example we did in class by hand).
Your assignment is to find a robust expression for the placement for the
inner control points of each Bezier segment,
involving only information from the nearest neighbor points,
and which guarantees a G1-continuous overall curve.
DUE: WED 9/13/00, 9:10am.
Hand in:
Window snapshot showing your best solution;
The formula you used to place the inner control points;
A one paragraph discussion of your approach, and what you learned from it;
any other comments you would like to make.
On line:
Put your SLIDE file in the proper place
{see instructional page};
Set the initial values for the sliders to the preferred value,
so that when we execute your program, your best solution,
the one that you handed in, will show up.
The code that you should modify and execute,
as well as additional instructions on how to run SLIDE,
can be found in
http://www-inst.eecs.berkeley.edu/~cs284/FA00/pa1/pa1.htm
Next Reading Assignment:
Rockwood: pp 75-92 (Blossoms)
PREVIOUS < - -
- - > CS 284 HOME < - -
- - > CURRENT < - -
- - > NEXT
Page Editor:
Carlo H. Séquin