CS 284: CAGD 
Lecture #5 -- Tu 9/12, 2006.

PREVIOUS < - - - - > CS 284 HOME < - - - - > CURRENT < - - - - > NEXT


Read:  Rockwood: pp 59-73 (Lagrange Interpolation)  and  pp 93-97; 108-112 (B-Splines)

Think-Problems on DoFs

Main Lecture Topic

More on how to make interesting, complex, smooth curves that interpolate given points.

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.

Lagrange Interpolation

Lagrange Basis Functions Compared with Bernstein (p.62)

Evaluation of the Lagrange Curve ( skip for now )

Circle Splines

Curves that are not subject to the "Linear-Precision Collapse"
-- see new reading assignment.

Three Ways to Make Surfaces:
NURBS patches, Subdivision Surfaces, Sweeps (homework)!

Next Reading Assignments:

SLIDE Manual Pages about Sweeps

"Fair, G2- and C2-Continuous Circle Splines," by C. H. Séquin, Kiha Lee, and Jane Yen.

Next Homework Assignment: (to be done individually)

Sweeps are an easy way to make water-tight surfaces and thus define the B-rep of a solid.
An amazing variety of shapes can be generated with just a few basic constructs !
Examples how I used sweeps:

Smooth Sweeps along Complex 3D Curves

   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:

PREVIOUS < - - - - > CS 284 HOME < - - - - > CURRENT < - - - - > NEXT
Page Editor: Carlo H. Séquin