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