Blossoms
Bezier Curve Construction Reminder ● Successive linear interpolations at point t ● Each point can be found as a function of the parameter, t , and the control points, b i n n i t n b t = ∑ i ,n b i = ∑ i 1 − t n − 1 b i ● i = 0 i = 0
Changing parameters b 1 ● We can interpolate using a vector of values 1 [ t ] b 1 2 [ t ,t ] b 0 1 [ t ] ● b t b [ t 1, t 2 ... t n ] b 0 b 2 t = 0.5 b 0
Changing parameters b 1 ● We can interpolate using a vector of values 1 [ t 1 ] b 1 2 [ t 1, t 2 ] b 0 1 [ t 1 ] 2 [ t 1, t 3 ] b 0 b 0 b 2 b t b [ t 1, t 2 ... t n ] t 1 ≈ 0.5 t 2 ≈ 0.25 t 3 ≈ 0.75 b 0 ● This is the polar form of function.
Affect of changing Parameters ● Red: ; Green: b [ t ,t ] 2 ] b [ t ,t ● Can also fix one or more parameters
Polar Representation ● For each parametric function univariate function, , there is a comparable multivariate n p t : ℝℝ function P [ t 0, t 1 ,t 2 ... t n ]= p t ● Instead of one parameter, we expand the function to have one parameter for each degree of freedom.
Examples ● The polar form of a standard cubic polynomial is 2 a 3 t 3 p t = a 0 a 1 t a 2 t P [ t 1, t 2, t 3 ]= a 0 a 1 3 t 1 t 2 t 3 a 2 3 t 1 t 2 t 2 t 3 t 3 t 1 a 3 t 1 t 2 t 3 ● A bivariate quadratic function, in parametric and polar form, is 2 3xy 2y 2 x = x , y , f x = x F [ x 0, x 1 ]= x 0 x 1 3 2 x 0 y 1 3 2 x 1 y 0 2 y 0 y 1
Blossoms ● A multivariate function represents the b [ t 1, t 2,. .. t n ] polar form of a polynomial function. ● This polar form function is known as a blossom
Properties ● If t 0 = t 1 = ... = t n , then the function diverges to a standard parametric curve – Example, using the standard cubic P [ t ,t ,t ]= a 0 a 1 3 t t t a 2 2 t 2 t 2 a 3 t 3 – 3 t 2 a 3 t 3 = p t a 0 a 1 t a 2 t ● This is the definition of the polar form of a function.
Properties (Cont.) ● Symmetric b [ s ,t ]= b [ t , s ] – Proof is Menalaos' Theorem ● Affine b [ r s ,t ]= b [ r ,t ] b [ s ,t ] , = 1 ● Both these properties can be extended to n degrees of freedom
Menelaos' Theorem ● We can define the following points b [ 0, t ]= 1 − t b 0 t b 1 ● b [ s , 0 ]= 1 − s b 0 sb 1 b [ 1, t ]= 1 − t b 1 t b 2 b [ s , 1 ]= 1 − s b 1 sb 2 We will see shortly why the parameter ● switching in the s terms is allowed
Menelaos' Theorem (cont.) ● We further define 2 more points b [ s ,t ]= 1 − t b [ s , 0 ] t b [ s , 1 ] b [ t , s ]= 1 − s b [ 0, t ] sb [ 1, t ] ● Menalaos' theorem states: b [ s ,t ]= b [ t , s ]
Menalaos' Theorem (Proof) ● b [ s ,t ]= 1 − t b [ s , 0 ] tb [ s , 1 ] 1 − t 1 − s b 0 [ 1 − t s t 1 − s ] b 1 stb 2 1 − s b [ 0, t ] sb [ 1, t ]= b [ t , s ] ● Can switch the parameters (Symmetric) ● The extension to n degrees of freedom is trivial (leave some parameters untouched
Multi-Affinity ● Blossoms are affine invariant with respect to the 1 st parameter. ● We then apply the property of symmetry to extend to other parameters.
n-Degree Properties ● Symmetric b [ t 1, t 2, ... t n ]= b [ t 1, t 2, ... t n ] – denotes a permutation of the n t 1, t 2, ... t n arguments
n-Degree Properties (Cont ● Multiaffinity b [ r s , *]= b [ r , *][ s , *] , = 1 – Example b [ t 1, t 2, t 3 ]= 1 − t 1 b [ 0, t 2, t 3 ] t 1 b [ 1, t 2, t 3 ]
Properties (Cont) ● Diagonalization 〈 n 〉 ] t 1 = t 2. ... = t n = t , b [ t ,t , ... ,t ]= b [ t – ● One last property: Vector notation – b [ b − a , *]= b [ b , *]− b [ a , *] – Example, a = 0, b = 1, b − a = 1 b [ 1, r , s ]= b [ 1, r , s ]− b [ 0, r , s ]
Leibniz Formula ● When given a blossom argument of form 〈 n 〉 r s we get the following formula: n i i n − i b [ r 〈 i 〉 , s n 〈 n 〉 ]= ∑ 〈 n − i 〉 ] b [ r s i = 0
Leibniz Formula, Proof ● We prove via induction ● The initial case is trivial n = 1: b [ r s ]= b [ r ] b [ s ]
Leibniz Formula, Cont. ● Inductive step: n i i n − i b [ r s ,r 〈 i 〉 , s n 〈 n 1 〉 = ∑ 〈 n − i 〉 ]= ... r s i = 0 n i n i i n − i b [ r 〈 i 1 〉 , s n 1 − i b [ r 〈 i 〉 , s n n ∑ 〈 n − i 〉 ] ∑ i 1 〈 n 1 − i 〉 ] i = 0 i = 0 ● We transform the indexes, and 〈 n 1 〉 = ... r s n 1 i − 1 n 1 i i i n 1 − i b [ r n 1 − i b [ r 〈 i 〉 , s n n ∑ 〈 n 1 − i 〉 ] ∑ 〈 i 〉 , s 〈 n 1 − i 〉 ] i = 0 i = 0
Leibniz Formula, Conclusion i = i − 1 i n 1 n n ● We last use the recursion ● We combine the 2 summations, and conclude ● n 1 i i n 1 − i b [ r n 1 〈 n 1 〉 ]= ∑ 〈 i 〉 , s 〈 n 1 − i 〉 ] b [ r s i = 0
Uses of Blossoms ● Remember the de Casteljau Algorithm. ● Given a control polygon b 0, b 1, ... b n t ∈[ 0,1 ] and , this interpolation results in: b 0, b 1, b 2, b 3 1, b 1 1, b 2 1 b 0 2, b 1 2 b 0 3 b 0
● Add new parameter for each interpolation b 0, b 1, b 2, b 3 1 [ t 1 ] , 1 [ t 1 ] , 1 [ t 1 ] b 0 b 1 b 2 2 [ t 1, t 2 ] , 2 [ t 1, t 2 ] b 0 b 1 3 [ t 1, t 2, t 3 ] b 0
Evaluation ● To evaluate, we must first check special arguments [ t 1, t 2, t 3 ]=[ 0,0,0 ] ● b 0, b 1, b 2, b 3 b 0, b 1, b 2 b 0, b 1 b 0 b 0 = b [ 0,0,0 ] ● Can repeat for all control points: 〈 n − i 〉 , 1 〈 i 〉 ] b i = b [ 0
Evaluation Cont ● We next evaluate at [ t 1, t 2, t 3 ]=[ 0,0, t ] b 0, b 1, b 2, b 3 b 0, b 1, b 2 b 0, b 1 1 b 0 1 = b [ 0,0, t ] b 0 ● We continue in the same manner to get b [ 0,0,0 ] , b [ 0,0,1 ] , b [ 0,1,1 ] , b [ 1,1,1 ] b [ 0,0, t ] , b [ 0, t , 1 ] , b [ t , 1,1 ] b [ 0, t ,t ] , b [ t ,t , 1 ] b [ t ,t ,t ]
Bezier Curves with Blossoms ● We can now rewrite the recursion algorithm as 〈 n − r − i 〉 ,t 〈 r 〉 , 1 〈 i 〉 ]= ... b [ 0 〈 n − r − i 1 〉 ,t 〈 r − 1 〉 , 1 〈 n − r − i 〉 ,t 〈 r − 1 〉 , 1 〈 i 〉 ] t b [ 0 〈 i 1 〉 ] 1 − t b [ 0 ● Using the blossom formulation, and the substitution t = 1 − t ⋅ 0 t ⋅ 1 We can now rewrite the Leibniz Formula n i t n i − i b [ 0 〈 n − i 〉 , 1 n 〈 n 〉 ]= ∑ 〈 i 〉 ]= ∑ i 1 − t b [ t i ,n ⋅ b i i = 0 i = 0
Derivative of the Bezier Blossom Curve ● Tangent line is line connecting the last 2 interpolation points 〈 n − 1 〉 , 〈 n − 1 〉 , 1 ]− b [ 0, t 〈 n − 1 〉 ] b ' t = n ⋅ b [ t 1 ]= n ⋅ b [ t
Derivative, Proof ● We start with the following: – t is a point on the real line is a 1D vector v n 〈 n − i 〉 , 〈 n 〉 ]= ∑ 〈 i 〉 ] b [ t v b [ t v i = 0 d b ' 1 v ∣ [ b [ t 〈 n 〉 ] ] = ... 〈 n 〉 ]− b [ t dt = lim v ∣ v 0 v ∣ [ ∑ 〈 n 〉 ] ] n i b [ t 1 〈 n − i 〉 , n 〈 i 〉 ]− b [ t lim v ∣ v 0 i = 0
Proof, Cont. ● We cancel, rearrange, and factor, and: 0 n b [ t v ] ... v ∣ ] 2 b [ t d b ' v v 〈 n − 1 〉 , 〈 n − 2 〉 , n dt = lim v ∣ , ∣ ∣ v v v ∣= ● We observe that, 1 and that the limit ∣ annihilates the remaining terms, giving us 〈 n − 1 〉 , b ' = n b [ t 1 ]
High Order Derivative ● Using a similar pattern and proof, we arrive at n 〈 n − r 〉 , r = 〈 r 〉 ] n − r ! b [ t b 1
Bezier Blossom Subdivision ● Subdivision of a bezier curve at t=c b [ 0,0,0 ] , b [ 0,0,1 ] , b [ 0,1,1 ] , b [ 1,1,1 ] b [ 0,0, c ] , b [ 0, c , 1 ] , b [ c , 1,1 ] b [ 0, c ,c ] , b [ c ,c , 1 ] b [ c ,c ,c ] 〈 n − i 〉 ,c 〈 i 〉 ] c i , f = b [ 0 〈 n − i 〉 , 1 〈 i 〉 ] c i ,b = b [ c
Bezier Degree Raising ● The new control points can be found by n 1 1 = 1 n 1 ∑ b [ t 1,. .. t n 1 │t j ] b j = 0 ● This is the average of all the points, with the argument omitted from the sum t j
Degree Raising Cont. ● Need Diagram of Example
Blossoms and B-Splines ● The control points for a quadratic Bezier curve are b [0,0], b [0,1], and b [1,1]. – Successive pairs from the sequence: 0,0,1,1. ● We generalize 0,0,1,1 u 0, u 1, u 2, u 3
Recommend
More recommend