# CS 284: CAGD  Lecture #7 -- Mon 9/21, 2009.

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

## Sweeps along Piecewise Linearly Approximated Curves

Examples of mitered joints (by Koos Verhoeff): 1 2 3 4
Default:  Keep cross-section of constant geometry and always perpendicular to tangent vector.
This can be achieved by constructing "ribs" in angle-divider plane at all segment junctions,
stretching them by 1/cos(half-angle) in direction of normal vector.

# Topic: Blossoms:

## A geometrical view of iterated "multi-level" linear inter-/extra-polation.

• Basic Notation and Machinery
• Create N-"digit" labels for system with N iterative steps. ("digit" can be a fractional or real number).
• Write down interpolation value used in one step as one "digit".
• To capture a polynomial of degree D: N>=D.
• Geometric interpretation leads to algorithms for subdivision, knot-insertion, degree elevation, deCasteljeau, Aitken, conversion between Bezier and B-Splines, ...
• General Properties of Blossoms
• Diagonal agreement, -- if all labels the same ==> point lies on curve at that t value.
• Symmetry, -- order of "digits" in label is irrelevant.
• Multiaffinity property, -- if 2 labels differ in only one "digits", one can inter/extra-polate along that line.
• Bezier Curves in Blossom Form
• Control point labelling (p82).
• Generalization  (you may skip this)
• Arbitrary blossom parametrization ==> EvalBlossomProgram (p88).
• "systolic" computation: synchronous pumping action (e.g. in heart chambers).
• Illustration of the Cubic Blossom (p89). {80% down}
• Find out how the point moves around in the (whole ?) plane.

# Topic:  B-Splines

• An approximating spline, controlled by the "deBoor points".
• Relations between Bezier Curves and B-Splines
• B-Spline in Blossom Form (p 94) {0% down}
• Watch the de Boor control points fly...
• Control Points of the Uniform B-Spline
• Finding de Boor Points Geometrically
• Interpretation: Change to a new set of basis functions -- some linear combination of old ones.

### The deBoor Algorithm (= deCasteljau for B-splines)

• Iterated Interpolation to find B-Spline Curve Points
• Graphical Construction (p98)
• Can "t" lie outside the range [2,3] for this example (p99) ?
• Graphical Construction for such an extended point (e.g., t=3.5)
• What is this curve that we are constructing ?
• Finding additional de Boor points for this curve e.g., "456"
• Will using "456" lead to the same curve point for t=3.5 ?

### Multi Segmented B-Splines

• Choosing additional de Boor points more freely; add several extra segments:
• Joining B-Spline Curves (p 96) {5% down}
• Study influence of de Boor control points (p97)
• Concept of limited support
• The valid range for the curve parameter (e.g., 3 4 5   4 5 6   5 6 7   6 7 8 )
• Page 103, bullet 3.
• What do we gain from this restriction ? ( Cn-1 continuity)
• What do we pay -- if anything ? ( only one new free point per segment)
• Page 103, bullet 4.
•  Periodic (closed) B-Spline Curves (p 105)

### B-Spline Basis Functions

• Concentrate on one dimension of a B-Spline curve: e.g., Y(t)= piecewise m-degree polynomial.
• Assemble that basis function from  m+1  m-degree polynomial pieces, joined with Cm-1 continuity.
• How to construct such basis functions: Repeated convolution
• m=1 : triangular hat functions
• m=2 : three parabolic pieces
• m=3 : four cubic pieces
• The limited support of these basis functions
• Comparison with Bezier Basis Functions

### The Behavior of B-Splines

• Reviewing the standard seven properties:
• e.g., degrees of continuity ... (Comparison Table)
• Comparing B-splines of degrees 2,3, and 4:
• Study their behavior using the applets on pages 101,102.
• The use of B-splines
• B-spline curves of degree 3  (p 97)
• What can you do with a given number of segments ?
• How many segments does it take to make a 3D knotted space curve ?

## Next Reading Assignments:

Review again: Rockwood pp. 94-117: B-Splines
Study handout: B+B+B: Effect of Knot Multiplicities

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