Last lectures: How to use Bezier curve segments and Hermite Splines, properly stitched together,
to make an interpolating spline.
This lecture: More on Lagrange Interpolation.
1. Implement smooth curve interpolation in 3D.
- - Start from the file http://www.cs.berkeley.edu/~sequin/CS284/CODE/pa2.slf
- - Write the corresponding formulae for
the z-components of the inner Bezier control points.
- - Add the necessary z-expressions in
all places where I have not already done so.
- - I have added a "Z-scale" slider that
multiplies all the new z-coordinates with a slider-controlled constant,
so that you
can readily go back and forth between 2D (multiplier=0.0) and 3D (multiplier=1.0).
- - Lift the data points out of the x-y-plane,
and convince yourself that everything still "works smoothly."
2. Use the SLIDE "sweep" construct to form a small ribbon
going along a closed B-spline curve approximating the original 15 control
points.
- - This can be done by sweeping a "star"
type cross section, and giving the star 2 skinny spokes.
- - I have already put in most of the needed
code; if you turn on "drawSweep" in the "slf_swp" slider menu,
you should
see such a ribbon in red, displayed edge-on.
- - However, the ribbon seems to have 10
pinched-off, twisted points in its loop; WHY is this ? -- Write down your
thoughts.
- - Under what conditions do you get a
nice "prismatic" sweep with no funny points ?
- - How do you have to set parameters such
as : "minimizeTorsion" "closed (curve)" "symmetry" "azimuth" ...
in order
to achieve a nice result ?
(It is advisable
to consult the manual
pages on SLIDE ...)
- - Now lift the original control points
out of the x-y-plane by increasing the "Z-scale" slider at the bottom of
the "slf_bez" slider menu..
- - How is the behavior of the sweep different
now ?
- - Pay particular attention to the end
condition where the loop closes; under what circumstances do you get a
smooth, seamless closure ?
- - Answer the same questions also for
a 5-pointed star (set "Spokes" to 5).
3. Now try to make such a nice sweep along your own
smooth, composite, interpolating curve.
- - It is somewhat tedious, since you have
to specify a separate sweep construct for each of the 15 Bezier segments.
- - But again, the code is already in place,
and you can see such a ribbon in green, if you turn on "drawSweep" in the
"slf_bez" menu.
- - You may now want to turn off the B-spline
at this time, so that you can focus on the Bezier segments.
- - For a 2D curve, as long as the ribbon
is perpendicular to the curve's plane, everything should work fairly nicely.
- - But there may be problems in 3D. --
WHY ? What can you do about them ?
4. Now use all the originally given points, as well
as your own calculated control points,
to make a closed polyline with 45
joints, and then sweep a 5-pointed star along that polyline.
- - The code for this is right next to
the B-spline "backbone" code (near line 467 in pa2.slf).
- - Under what conditions do you get nice
prismatic beams with nicely mitered joints ?
- - How do you have to set parameters such
as : "minimize Torsion" "closed (curve)" "symmetry" "azimuth" ...
in order
to achieve a nice result ?
- - Can the "twist" parameter be of any
use in achieving nice, properly mitred joints ? HOW ?
DUE: Tue. 9/19/2006, 2:10pm.
Set the initial values for the sliders to the proper values,
so that when your program is run,
one will see a nice "prismatic" sweep of a 3-pointed star along
your best composite Bezier curve.
(You may want to change some of the parameters from the values
that you gave them in pa1.)
Capture a hardcopy print-out of this sweep.
Hand in at the beginning of class: