CS 284: CAGD 
Lecture #5 -- We 9/10, 2003.


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

Preparation:

Read:  Rockwood: pp 59-73 (Lagrange Interpolation)

Main Lecture Topic

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

Last lecture: How to use Bezier curve segments, properly stitched together, to make an interpolating spline.
This lecture: Other approaches: Hermite Splines; Lagrange Interpolation.
All types of splines thus far, are polynomial based; all of them are invariant under affine transformations,
thus for all of them each, coordinate component can be dealt with individually.
For a given curve interpolation problem, all of these spline types have some unconstrained DoF that can be used for optimization.



Left over :


(Cubic) Hermite Splines

Higher-Order Hermite Splines


Lagrange Interpolation

Lagrange Basis Functions Compared with Bernstein (p.62)

Evaluation of the Lagrange Curve


Next Homework Assignment: (to be done individually)

Smooth Sweeps along Complex 3D Curves

   1. Implement smooth curve interpolation in 3D.
     - - Start from the file 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: Wed. 9/17/03, 9:10am.

On line:
  Set the initial values for the sliders to the proper values, so that when we execute your program,
 we 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.
  Put your SLIDE file in the proper place {see instructional page} (same as with your last assignment);
  and also mail a copy of your final modified pa2.slf file to jordans@cs.berkeley.edu

Hand in at the beginning of class:
  A hardcopy print-out of your sweep;
  and a page or two of text, answering the questions raised above.

Reading Assignment:

READ: "Fair, G2- and C2-Continuous Circle Splines," by C. H. Séquin, Kiha Lee, and Jane Yen, to be submitted to CAD.
Constructive criticism (specifically about understandability) is most welcome!


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