1 Dr. Scott Schaefer Blossoming and B-splines
2/105 Blossoms/Polar Forms A blossom b(t 1,t 2,…,t n ) of a polynomial p(t) is a multivariate function with the properties: Symmetry: b(t 1,t 2,…,t n ) = b(t m(1),t m(2),…,t m(n) ) for any permutation m of (1,2,…,n) Multi-affine: b(t 1,t 2,…,(1-u)t k +u w k,,…t n ) = (1-u)b(t 1,t 2,…,t k,,…t n ) + u b(t 1,t 2,…,w k,,…t n ) Diagonal: b(t,t,…,t) = p(t)
3/105 Blossoms/Polar Forms A blossom b(t 1,t 2,…,t n ) of a polynomial p(t) is a multivariate function with the properties: Symmetry: b(t 1,t 2,…,t n ) = b(t m(1),t m(2),…,t m(n) ) for any permutation m of (1,2,…,n) Multi-affine: b(t 1,t 2,…,(1-u)t k +u w k,,…t n ) = (1-u)b(t 1,t 2,…,t k,,…t n ) + u b(t 1,t 2,…,w k,,…t n ) Diagonal: b(t,t,…,t) = p(t) The blossom always exists and is unique!!!
4/105 Examples of Blossoms
5/105 Examples of Blossoms
6/105 Examples of Blossoms
7/105 Examples of Blossoms
8/105 Examples of Blossoms
9/105 Examples of Blossoms
10/105 Examples of Blossoms
11/105 Examples of Blossoms
12/105 Examples of Blossoms
13/105 Examples of Blossoms
14/105 Examples of Blossoms
15/105 Examples of Blossoms
16/105 Examples of Blossoms
17/105 Examples of Blossoms
18/105 Blossoms/Polar Forms Symmetry: b(t 1,…,t n ) = b(t m(1),…,t m(n) ) Multi-affine: b(t 1,…,(1-u)t k +u w k,,…t n ) = (1-u)b(t 1,…,t k,,…t n ) + u b(t 1,…,w k,,…t n ) Diagonal: b(t,…,t) = p(t)
19/105 Pyramid Algorithms for Bezier Curves
20/105 Pyramid Algorithms for Bezier Curves
21/105 Pyramid Algorithms for Bezier Curves Bezier curve Bezier control points
22/105 Subdivision Using Blossoming Control points of left Bezier curve!
23/105 Subdivision Using Blossoming Control points of right Bezier curve!
24/105 Change of Basis Using Blossoming Given a polynomial p(t) of degree n, find the coefficients of the same Bezier curve
25/105 Change of Basis Using Blossoming Given a polynomial p(t) of degree n, find the coefficients of the same Bezier curve
26/105 Change of Basis Using Blossoming Example: Find Bezier coefficients of p(t)=1+2t+3t 2 -t 3 Old Method
27/105 Change of Basis Using Blossoming Example: Find Bezier coefficients of p(t)=1+2t+3t 2 -t 3 New Method
28/105 Degree Elevation
29/105 Degree Elevation Using Blossoming
30/105 Degree Elevation Using Blossoming Symmetry: is symmetric Multi-affine: is multi-affine Diagonal:
31/105 Degree Elevation Using Blossoming
32/105 Homogeneous Polynomials and Blossoming Polynomial: Homogeneous Polynomial:
33/105 The Homogeneous Blossom Homogenize each parameter of the blossom independently
34/105 The Homogeneous Blossom Homogenize each parameter of the blossom independently
35/105 The Homogeneous Blossom Homogenize each parameter of the blossom independently homogenized combinations
36/105 The Homogeneous Blossom Homogenize each parameter of the blossom independently
37/105 The Homogeneous Blossom Homogenize each parameter of the blossom independently
38/105 Homogeneous deCasteljau Algorithm Really b((0,1),(0,1),(1,1))
39/105 Homogeneous deCasteljau Algorithm
40/105 Homogeneous deCasteljau Algorithm
41/105 Homogeneous deCasteljau Algorithm Homogeneous blossom evaluated at (t,1) and (1,0) yields derivatives!!!
42/105 Homogeneous Blossoms and Derivatives
43/105 Problems with Bezier Curves More control points means higher degree Moving one control point affects the entire curve
44/105 Problems with Bezier Curves More control points means higher degree Moving one control point affects the entire curve
45/105 Problems with Bezier Curves More control points means higher degree Moving one control point affects the entire curve Solution: Use lots of Bezier curves and maintain C k continuity!!!
46/105 Problems with Bezier Curves More control points means higher degree Moving one control point affects the entire curve Solution: Use lots of Bezier curves and maintain C k continuity!!! Difficult to keep track of all the constraints.
47/105 B-spline Curves Not a single polynomial, but lots of polynomials that meet together smoothly Local control
48/105 B-spline Curves Not a single polynomial, but lots of polynomials that meet together smoothly Local control
49/105 History of B-splines Designed to create smooth curves Similar to physical process of bending wood Early Work de Casteljau at Citroen Bezier at Renault de Boor at General Motors
50/105 B-spline Curves Curve defined over a set of parameters t 0,…,t k (t i t i+1 ) with a polynomial of degree n in each interval [t i, t i+1 ] that meet with C n-1 continuity t i do not have to be evenly spaced Commonly called NURBS Non-Uniform Rational B-Splines
51/105 B-Spline Basis Functions
52/105 B-Spline Basis Functions
53/105 B-Spline Basis Functions
54/105 B-Spline Basis Functions
55/105 B-Spline Basis Functions
56/105 B-Spline Basis Functions
57/105 B-Spline Basis Functions
58/105 B-Spline Curves
59/105 B-Splines Via Blossoming
60/105 B-Splines Via Blossoming
61/105 B-Splines Via Blossoming Single polynomial
62/105 B-Splines Via Blossoming
63/105 B-Splines Via Blossoming
64/105 B-Splines Via Blossoming
65/105 B-Splines Via Blossoming
66/105 B-Splines Via Blossoming
67/105 B-Splines Via Blossoming n-1 derivatives are equal yielding C n-1 continuity!!!
68/105 B-Splines Via Blossoming
69/105 B-Splines Via Blossoming n-2 derivatives are equal yielding C n-2 continuity at doubled knot!!!
70/105 B-Splines Via Blossoming In general, curves have C n-u continuity at knot of multiplicity u
71/105 Conversion to Bezier Form
72/105 Conversion to Bezier Form
73/105 Conversion to Bezier Form
74/105 Polynomial Reproduction Given a polynomial p(t) and a set of knots t 1, t 2, t 3, …, find control points for the b-spline curve that produces p(t)
75/105 Polynomial Reproduction Given a polynomial p(t) and a set of knots t 1, t 2, t 3, …, find control points for the b-spline curve that produces p(t)
76/105 Polynomial Reproduction Given a polynomial p(t) and a set of knots t 1, t 2, t 3, …, find control points for the b-spline curve that produces p(t)
77/105 Polynomial Reproduction Given a polynomial p(t) and a set of knots t 1, t 2, t 3, …, find control points for the b-spline curve that produces p(t) Control points!!!
78/105 Knot Insertion Given a B-spline curve with knot sequence …, t k-2, t k-1, t k, t k+1, t k+2, t k+3, … generate the control points for an identical B-spline curve over the knot sequence …, t k-2, t k-1, t k, u, t k+1, t k+2, t k+3, …
79/105 Boehm’s Knot Insertion Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u, t 4, t 5, t 6
80/105 Boehm’s Knot Insertion Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u, t 4, t 5, t 6
81/105 Boehm’s Knot Insertion Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u, u, t 4, t 5, t 6
82/105 The Oslo Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u 1, u 2, u 3, u 4, t 4, t 5, t 6
83/105 The Oslo Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u 1, u 2, u 3, u 4, t 4, t 5, t 6
84/105 The Oslo Algorithm Given curve with knots t 1, t 2, t 3, t 4, t 5, t 6, find curve with knots t 1, t 2, t 3, u 1, u 2, u 3, u 4, t 4, t 5, t 6
85/105 Degree Elevation for B-splines Degree n B-splines meet with C n-1 continuity Degree n+1 B-splines meet with C n continuity Must double knots to maintain same degree of continuity!!!
86/105 Subdivision for Non-Uniform B-splines Given a knot sequence t 1, t 2, t 3, t 4, …, insert knots u 1, u 2, u 3, u 4, … such that t i u i t i+1
87/105 Subdivision for Non-Uniform B-splines Given a knot sequence t 1, t 2, t 3, t 4, …, insert knots u 1, u 2, u 3, u 4, … such that t i u i t i+1 Double control points At level 0<k<n+1, insert knots u k-1, u k, u k, u k+1, u k+1, … into pyramid
88/105 Schaefer’s Algorithm
89/105 Schaefer’s Algorithm
90/105 Schaefer’s Algorithm
91/105 Schaefer’s Algorithm
92/105 Schaefer’s Algorithm
93/105 Schaefer’s Algorithm
94/105 B-spline Properties Piecewise polynomial C n-u continuity at knots of multiplicity u Compact support Non-negativity implies local convex hull property Variation Diminishing
95/105 B-spline Curve Example
96/105 B-spline Curve Example
97/105 B-spline Curve Example
98/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically?
99/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically?
100/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Uniform parameterization
101/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Centripetal parameterization
102/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Chord length parameterization
103/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Uniform parameterization
104/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Centripetal parameterization
105/105 Choosing Knot Values B-splines dependent on choice of knots t i Can we choose t i automatically? Chord length parameterization