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
36Homogeneous deCasteljau Algorithm
Really b((0,1),(0,1),(1,1))
37Homogeneous deCasteljau Algorithm
38Homogeneous deCasteljau Algorithm
39Homogeneous deCasteljau Algorithm
Homogeneous blossom evaluated at (t,1) and (1,0)
yields derivatives!!!
40Homogeneous Blossoms and Derivatives
41Problems with Bezier Curves
- More control points means higher degree
- Moving one control point affects the entire curve
42Problems with Bezier Curves
- More control points means higher degree
- Moving one control point affects the entire curve
43Problems 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!!!
44Problems 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. ?
45B-spline Curves
- Not a single polynomial, but lots of polynomials
that meet together smoothly - Local control
46B-spline Curves
- Not a single polynomial, but lots of polynomials
that meet together smoothly - Local control
47B-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
48B-Spline Basis Functions
49B-Spline Basis Functions
50B-Spline Basis Functions
51B-Spline Basis Functions
52B-Spline Basis Functions
53B-Spline Basis Functions
54B-Spline Basis Functions
55B-Spline Curves
56B-Splines Via Blossoming
57B-Splines Via Blossoming
58B-Splines Via Blossoming
Single polynomial
59B-Splines Via Blossoming
60B-Splines Via Blossoming
61B-Splines Via Blossoming
62B-Splines Via Blossoming
63B-Splines Via Blossoming
64B-Splines Via Blossoming
n-1 derivatives are equal yielding Cn-1
continuity!!!
65B-Splines Via Blossoming
66B-Splines Via Blossoming
n-2 derivatives are equal yielding Cn-2
continuity at doubled knot!!!
67B-Splines Via Blossoming
In general, curves have Cn-u continuity at knot
of multiplicity u
68Conversion to Bezier Form
69Conversion to Bezier Form
70Conversion to Bezier Form
71Polynomial 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)
72Polynomial 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)
73Polynomial 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)
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)
Control points!!!
75Knot 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,
76Boehms Knot Insertion Algorithm
- Given curve with knots t1, t2, t3, t4, t5, t6,
find curve with knots t1, t2, t3, u, t4, t5, t6
77Boehms Knot Insertion Algorithm
- Given curve with knots t1, t2, t3, t4, t5, t6,
find curve with knots t1, t2, t3, u, t4, t5, t6
78Boehms 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
79The 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
80The 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
81The 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
82Degree 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!!!
83Subdivision for Non-Uniform B-splines
- Given a knot sequence t1, t2, t3, t4, , insert
knots u1, u2, u3, u4, such that ti ui
ui1
84Subdivision for Non-Uniform B-splines
- Given a knot sequence t1, t2, t3, t4, , insert
knots u1, u2, u3, u4, such that ti ui
ui1 - Double control points
- At level 0ltkltn1, insert knots uk-1, uk, uk,
uk1, uk1, into pyramid
85Schaefers Algorithm
86Schaefers Algorithm
87Schaefers Algorithm
88Schaefers Algorithm
89Schaefers Algorithm
90Schaefers Algorithm
91B-spline Properties
- Piecewise polynomial
- Cn-u continuity at knots of multiplicity u
- Compact support
- Non-negativity implies local convex hull property
- Variation Diminishing
92B-spline Curve Example
93B-spline Curve Example
94B-spline Curve Example