Interpolation and elevation zhu ping 07.10.10 Problem T0,T1,T2,…,Tn∈R2 , Ti≠Ti+1 Find a curve P(t): P:[0,1]—> R2 , satisfying P(ti)=Ti i=0,1,…,n Paper 1. <<Constructing Iterative Non-Uniform B-spline Curve and Surface to Fit Data Points>> Lin Hongwei Science in China 04 2.<<Totally Positive Bases and Progressive Iteration Approximation>> Lin Hongwei Computers and Mathematics with Application 05 3.<<Progressive iterative approximation and bases with the fastest convergence rates>> J.Delgado CAGD 07 4.<<Geometric interpolation by planar cubic polynomial curves>> Jernej Kozak CAGD 07 5.<<An alternative method of curve interpolation>> Les A.Piegl The Visual Computer 05 6.<<On the degree elevation of B-spline curve and corner cutting>> Wang Guozhao CAGD07 7.<<Interpolation by geometric algorithm>> Takashi Maekawa CAD 07 Constructing Iterative Non-Unifrom B-spline Curve and Surface to Fit Data Points Problem:Progressive iterative approximation Proposed by Prof.Qi Dongxu and de Boor In 1991, cubic uniform B-spline and convergence Shortage:NURBS,convexity-preserving,explict expression Iterative algorithm (1) parameter (2)normal {Pi }(i 1, , n) R3 i 2 ti || Pj Pj 1 || {ti }(i 1, , n 4) i 4,5, j 2 t1 t2 t3 0, tn2 tn3 tn4 , n2 Parameter Normal Deduce: Pi0 Pi , i 1, 2, n1 r (t ) Ni,4 (t ) Pi0 0 i 0 , n; P00 P10 , Pn01 Pn0 t [t3 , tn2 ] P1j Pj0 ?0j , j 1, 2, ?kj Pj r k (t j 2 ) n1 r (t ) Ni,4 (t ) Pik 1 i 0 , n, P01 P11, Pn11 Pn1 j 1,2,..., n Pjk 1 Pjk ?kj , j 1,2,..., n; k 1 ?0j Pj r 0 (t j 2 ) P0k 1 P1k 1, Pnk11 Pnk 1 Iterative error: ?kj Pj r k (t j 2 ) j 1,2,..., n [?k21,?3k 1, ,?kn11]T C [?k2 ,?3k , ,?kn1]T C I B; k 0,1, N 24 (t4 ) N 34 (t4 ) 0 ... ... ... ... ... ... ... ... ... 0 4 4 4 N 2 (t5 ) N 3 (t5 ) N 4 (t5 ) ... ... ... ... ... ... ... . 0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... B 0 0 ... ... ... .... ... ... 0 ... ... .... 0 ........................................ 4 4 4 0 0 ..................N n -3 (tn ) N n 2 (tn ) N n 1 (tn ) 0 .......................... N n4-2 (tn 1 ) N n41 (tn1 ) 0 Iterative convergence 0 i (B) 1, i 1,2,..., n 2 0 i (C ) 1 i (B) 1 4 times (C)<1 15 times Convexity-preserving algorithm i Polyline L is convexity and if sgn(αi)=sgn(βi) polyline L’is also convexity Iterative formulae Pjk 1 Pjk k ?kj , j 1,2,..., n; P0k 1 P1k 1, Pnk11 Pnk 1 [?k21,?3k 1, ,?kn11]T Ck [?2k ,?3k , ,?kn1]T Ck I k B, 0 k 1; k 0,1,... X -1 BX diag (1( B), 2 ( B),..., n2 ( B)) X -1Ck X diag (1 k 1(B),1 k 2 (B),...,1 k n2 (B)) Ck 0 k 0 Surface iterative ?khl1 m 1 n 1 Phl ( Pijk ?ijk ) Ni,4 (uh 2 ) N j ,4 (vl 2 ) i 0 j 0 j T ? j [?11j ,?12j , ,?1jn ,?21j , ,?mj 1, ,?mm ], ?k 1 C ?k , C I B, k 0,1, j k, k 1 Example: 30 times convexity-preserving property of non-uniform B-spline curve Totally Positive Bases and Progressive Iteration Approximation Totally Positive Bases Definition: Given a basis {Bi(t) ≥0|i=0,1,…,n} , an increasing sequence 0 1 m the collocation matrix is B0 ( 0 ) B0 ( m ) B0 , , Bn M : ( B ( )) ............................. j i i 0,...,m; j 0,...,n , , m 0 B ( ) B ( ) n n m 0 Basis {Bi} is totally positive basis if the matrix is a totally positive matrix Theorem. If the basis is totally positive and its collocation matrix B at {t0,t1,…,tn} is non-singular,the curve has progressive iteration appromation. Proof. i (B) 0 , i 0,1, , n i0 Bi 1 n || B || 1 0 i (B) 1, i 0,1, , n (C ) 1 Example: Bezier,B-spline and NUBRS curve and surface Bezier 20 times 60 times Progressive iterative approximation and bases with the fastest convergence rates Outline: The normalized B-basis has optimal shape preserving properties and we prove that it satisfies the progressive iterative approximation property with the fastest convergence rates. A similar result for tensor product surfaces is also derived. Theorem: Given a space U with an TP basis,the normalized B-basis of U provided a progressive iterative approximation with the fastest convergence rates among all TP bases of U. Proof. (I B) will be minimum when the smallest eigenvalue of B is maximum. U:unique normalized B-basis (b0,…,bn),TP basis (v0,…,vn) . (v0,…,vn)=(b0,…,bn)K . K is a stochastic TP matrix. prove that the smallest eigenvalue of B is greater than the smallest eigenvalue of V Consider matrix J : diag(1, 1,1,...,(1)n ) 1 1 since J J JV J is similar to V 1, JB1J is similar to B1 .We should prove (JV 1J ) (JB1J ) (JB1J ) (JV 1J ) ((JK 1J )(JB1J )) K Fn1Fn2 FG 1 1 Gn2Gn1 1 0 0 ... ... ... ... ... ... ... ... ... .......0 0 1 ... ... ... ... ... ... ... . ............ 0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... Fi 0 0 0 ... 0 1... ... .... ... ... 0 0 .......................... i+1,1 1- i+1,1 ........... 0 0 0 ........................................... 0 0 .............................. i+1,1 1- i+1,1 1 0 0 ... ... ... ... ... ... ... ... ... 0 1 ... ... ... ... ... ... ... . ........ ... ... ... ... ... ... ... ... ... ... ... .. Gi 0 0 0 ... 1 0... ... .... ... ... ..........................1- 1,1+i 1,1+i 0 0 0 .................................... 0 0 ...................................0 1 1 0 0 ... ... ... ... ... ... ... ... ... .......0 0 1 ... ... ... ... ... ... ... . ............ 0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... U (i ) 0 0 0 ... 0 1 i i ... ... 0 0 .......................... ........................... 0 0 0 .......................................1 0 0 0 .............................. .............. 1 Fi L(i1,1) JEi1J L(n,ni ) 1 0 0 ... ... ... ... ... ... ... ... ... .......0 0 1 ... ... ... ... ... ... ... . ............ 0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... L(i ) 0 0 0 ... 0 i 1 i ... ... 0 0 .......................... ........................... 0 0 0 .......................................1 0 0 0 .............................. .............. 1 Gi U (ni,n ) U (1,i1) 1 0 0 ... ... ... ... ... ... ... ... ... .......0 1 0 0 ... ... ... ... ... ... ... ... ... .......0 0 1 ... ... ... ... ... ... ... . ............ 0 0 1 ... ... ... ... ... ... ... . ............ 0 ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... i 1 0 0 0 ... 0 1 i ... . 0 0 or 0 0 0 ... 0 ... . 0 0 1 i 1- i 1- i 1 i .......................... ........................... .......................... ........................... 0 0 0 .......................................1 0 0 0 0 .......................................1 0 0 0 .............................. .............. 1 0 0 .............................. .............. 1 K i 1 Ei r r JK J ( JEi1J ) 1 i 1 Tensor product surfaces: m n S (u, v) Pijui (u)u j (v) i 0 j 0 m n S (u, v) Pij k 1ui ( x)u j ( y) k 1 i 0 j 0 m S (u, v) Pij 0ui ( x)u j ( y) i 0 j 0 ijk Pij S k ( xi , y j ) Kronecker product: a11B A B a B m1 n 0 a1n B amn B Pijk 1 Pijk ijk Numerical test: Bernstein Basis VS Said-Ball Basis Definition: m m m 1 i t i (1 t ) 2 1 , 0i 2 2 i m m m 2 m Si (t ) m t (1 t ) 2 , i m/2 2 m m 2 m i t 2 1 (1 t ) m i , m 1 i m 2 m i Comparion: Error compare: Geometric Method for Hermite Iterpolation by a class of PH Quintics Outline: Geometric relationship among Bezier control points of PH Quintics is developed.And choose the best curve in the resulant PH quintics. 1 2 2 P1 P0 5 (u0 v0 , 2u0v0 ) 1 P P (u u v0v1, u0v1 u1v0 ) 1 2 5 0 1 2 1 (u12 v12 , 2u1v1 ) (u0u2 v0v2 , u0v2 u2v0 ) P3 P2 15 15 1 P P (u1u2 v1v2 , u1v2 u2v1 ) 4 3 5 1 2 2 P P ( u v , 2u2v2 ) 5 4 2 2 5 k (ui2 vi2 ,2uivi ) k(uiu j viv j , uiv j u jvi ) 1 2 2 (u1 v1 ,2u1v1 ) 15 1 B A (u0u2 v0v2 , u0v2 u2v0 ) 15 A P2 P3 B 1 2 2 (u1 v1 , 2u1v1 ) 15 L1 || P0 P1 || L2 || P1P2 || L3 ' || P2 A || L3 '' || AB || L4 || P3 P4 || L5 || P4 P5 || Theorem 1: A Bezier curve is PH curve when two points A,B exist making 3L L' L2 2 1 3 3L5 L'3 L24 L1L5 9 L ''32 P0 P1P2 P1P2 A P3 P4 P5 BP3 P4 P CD CDP 5 0 Hermite Method: Pj ( x j , y j ) P0 , P5 , , , L1, L5 P0 , P1, P4 , P5 L''3 1 L1 L5 ,3 k , k 0,1 3 2 On the degree elevation of B-spline curves and corner cutting Outline: Our idea is making bi-degree B-spline to elevate B-spline. Old Method:splite into pieces of Bezier curves m P (t ) Ni ,k (t ) Pi i 1 0 m P (t ) Ni ,k (t ) Pi U {u0 , u1, , umk 1} i 0 T {t1 , , t1 , , tn , z1 , tn } zn m P (t ) P (t ) N i,k 1(t ) P i i 0 T {t1, , t1 , z1 1 , tn , , tn } zn 1 T j { t1, , t1 , , t j , , t j , t j 1, , t j 1 , , tn , , tn } {t0j , t1j , , tmj j } z11 mj z1 z j 1 zn 1 z j1 zn j 1 l j z1 z2 z j j 1 t ti j j j , if t t t j i i 1 and 0 i l j j ti 1 ti j t t j if ti j1 t ti j2and 0 i l j 1 Ni,0 (t ) ji 2 j ti 2 ti 1 j j 1, if t t t i i 1 and i l j 0, otherwise Ni,jk (t ) t [ Ni,jk 1 (s) j i ,k 1 Ni j 1,k 1 (s) j i 1,k 1 ]ds j i ,k Ni,jk (t )dt Theorem 1: {Ni,k (t)} , {N i,k 1(t)} are defined T and T T 0 T , T n1 T Ni,k (t ) Ni0,k (t ) N i,k 1(t ) Nin,k1(t ) N j (t ) i l j k 1 i ,k j 1 Ni,k (t ) (1 aij,k ) Ni,jk (t ) aij1,k Ni j 1,k (t ) l j k i l j 1 j i l j 1 Ni 1,k (t ) Theorem 2: aljj h1,h 0, aljj ,h 1 (h 0,1,..., k 1) aij,h1 aij1,h ij1,h i,jh1 (0 h k 1, l j h 1 i l j 1) Property:positivity,partition of unity,linear independence globally Theorem 3: Pi j 1 i l j k 1 j Pi (1 aij,k ) Pi j 1 aij,k Pi j11 l j k i l j j 1 i lj Pi 1 An alternative method of curve interpolation Author: Les A.Piegl, South Florida University, research in CAD/CAM,geometric modeling,computer graphics Wayne Tiller,in GeomWare, The NURBS Book Outline:given a point data set that contains several fairly unevently distributed random points,this paper presents a new paradigm of curve interpolation to fit a curve to the data with end tangent vector constraints. Major components: 1. Base curve 2. Localization 3. Constrained shape manipulation 4. Parametrization adjustment Definition:a B-spline curve of degree p n C (u) Ni, p (u) Pi i 0 U {u0 u p , u p1, , un , un1 p1 un p1} p1 Constrained shaping: Qk C(tk ) Vk k 0, NP V ,r n Ni, p (tk )( Pi Pi ) C (tk ) Vk i 0 P N 1V NT ( NNT )1V Parametrization: 1.Obtain a polygonal aproximation of the base curve 2.Project all points onto the polygon and find the closest vertex or polygon leg 3.Obtain an approximation parameter from the parameters of the closest leg or vertex Geometric decomposition: 1.Decompose the NURBS curve into piecewise Bezier segments 2.Bezier curve decomposition Location: Greville abscissae: 1 i p i uj p j i1 i 0, , n degree p 1 i+ p-1 ηi = uj p -1 j=i+1 i = 1, ,n degree p-1 Procedure: 1.Go through the brackets (ηi,ηi+1) i=1,…,n-1 to see how many parameters fall within the brackets 2.If there are two or more parameters,insert a knot and recomputer the brackets 3.Repeat the process until each bracket contains no more than one parameter Let w∈ (ηi,ηi+1) be the new abscissa w i or i1 i 1 (ui 1 ui 2 p ui p1) 1 i1 (ui2 ui3 ui p1 ui p ) p 1 u w( p 1) ui 2 ui p1 The algorithm: 1.Computer the Grevile brackets 2.Check end conditions and insert knots if necessary 3.While there are brakets with more than one parameter 3.1 Find first offending span 3.2 Average parameters lying inside the span.The average is to become the new Greville abscissa 3.3 Get the knot to be inserted 3.4 If the knot falls on an existing knot,select another parameter representative 3.5 Insert the knot and recompute Greville brackets Base curve:two methods (1)1.Obtain a local cubic C interpolation to the points. 2.Sample the interpolant 3.Approximate the smple points by least-squares. 1 (2)using Hermite curves. C (u) h00 (u)Qs h01(u)Qe h10 (u)Ts h11(u)Te h00 (u ) 1 3u 2 2u 3 h10 (u) u 2u 2 u 3 h01 (u) 3u 2 2u 3 h11 (u) u 2 u 3 C (u ) V (u ) q(u )T (u ) V (u ) (1 h01(u ))Qs h01(u )Qe T (u ) (1 u )Ts uTe q(u ) (1 u )u The algorithm: 1.Computer an initial parameter t0 , , tr 2.For each point Q1,..., Qr 1 | Q V (t ) | | q(t )T (t ) | 2.1 Computer r 1 1 2.2 Get r 1 k 1 k 3.Computer Ts Ts and Te Te 4.Repeat 4.1 Recomputer parameters by projecting the points onto the Hermite curve 4.2 Recomputer λ Untill no significant change in λis obtained i i i i i The updated parameters t0 , 1 i 1 ui t j 3 j i 1 i 1,..., r 1 , tr The whole algorithm: 1.If there is no internal points,generate a Hermite curve defined by Q0 , Q1,Ts ,Te 2.Get a base curve: 2.1 If the data is simple: 2.1.1 Computer a Hetmite curve to Q0 , Qr ,Ts ,Te 2.1.2 Scale tangents to approximate internal points 2.1.3 Iteratively improve parameters and the base curve 2.2 Otherwise: 2.2.1 Interpolate data with a local method 2.2.2 Sample interpolating curve 2.2.3 Approximate sampling points to eliminate multiple knots 3. Perform constrained shape manipulation to obtain interpolation. 4. While not all points have been interpolated: 4.1 Get/update parameter by projecting points onto the current curve 4.2 If necessary,eliminate point clustering and add additional knots 4.3 Set up vectors Vi by pulling curve points towards Qi by the computered increment 4.4 Perform shape operation 4.5 Mark data points that have been reached,and exclude them from further operations 5.Output shaped base curve and postprocess The End !