CS 284: CAGD
Lecture #3 -- We 9/6, 2000.


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

Preparation:

Rockwood: pp 42-58

Lecture Topics

Last lecture: An Intuitive Introduction to the Bezier Curve and Its Behavior.
This lecture: A Look at the Underlying Formalism.

The Bézier Curve

  • Homework Discussion
    - - What can we do with an eighth-order Bezier curve ?
    - - What order is needed for a G1-smooth loop of turning number 3 ?
    - - What order is needed for a figure-8 shape with C2 point-symmetry ?

    Bernstein Basis Functions

  • Formula
  • Geometric View

    Understanding the Properties of Bezier Curves

  • Endpoint Interpolation
    - - Look at basis functions; check cases for t=0 and t=1.
  • Tangent Condition
    - - Look at the basis functions; differentiate.
  • Convex Hull
    - - Partition of unity; only interpolation -- not extrapolation.
  • Linear Precision
    - - Spacial case of convex hull property.
  • Affine Invariance
    - - Splines are based on linear operators.
  • Variation Diminishing
    - - # of line intersections with control polygon <= intersections with spline curve.
    - - Need a bending reversal in the control polygon to enable a curvature reversal in the curve.

    de Casteljau Algorithm

  • How NOT to evaluate a Bezier curve
  • Finding curve points by interpolation
    - - An efficient pipelining scheme.
  • Finding Tangent Directions
  • Subdivision
    - - Finding the new control points.
    - - Use of subdivision for clipping to a boundary.
    - - Use of subdivision for curve refinement.


    Administrative Intermezzo

  • Student Introductions.
  • Class Roster, Accounts, etc.
  • Companion Course CS 294-3 ===> makes a nice complement to CS284 !
    - - This Friday, 9:30am sharp in 380 Soda Hall: Introduction to SLIDE by Jane Yen (like a one-time dicussion session for CS 284)


    Working with Bézier Curves

  • Derivatives
    - - Hodograph is just another Bezier curve;
    - - its control points have the coordiantes of the original connecting segments.
  • Degree Elevation
    - - Choosing higher-order basis to obtain more control points,
    - - e.g., in order to match degrees of adjacent Bezier patches.
    - - The general formula for new control points;
    - - think about redistributing the needed control points uniformaly along a straight line.
  • Continuity
    - - Individual segment is C1, but not always G1-continuous;
    - - it may have cusps !

    Stitching Bezier Curves Together

  • Aiming for more control over complicated curves.
  • Making Interpolating Curves from several Bezier segments.
  • 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 ?
  • 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.

    New 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 59-73 (Lagrange Interpolation)


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