II Interpolační plochy Bezierovy pláty nad obdélníkovou a trojúhelníkovou sítí Recionální Bezierovy pláty B-spline NURBS
Konstrukce a zadání plochy hraniční křivky sítí bodů Kinematicky vytvořené křivky rotační plochy (vnikne rotací křivky okolo přímky) plochy vzniklé skládáním pohybů posun, rotace Analytický předpis ploch - parametrické, explicitní, implicitní vyjádření
Příčné tečné vektory Směrové vektory tečen v- křivky sestrojené podél okrajové u-křivky. (, ) P ( u, v) ( ) ( ) ( ) P u v P0 ( v) = u = 0, v ; P1 v = u = 1, v ; u u Směrové vektory tečen v- křivky sestrojené podél okrajové u-křivky (, ) P ( u, v) ( ) ( ) ( ) P u v P0 ( u) = u, v = 0 ; P1 u = u, v = 1 ; v v
Bezierovy pláty ( ) ( ) ( ) ( ) Plochy počítačové grafiky ( 0, n 1, n n, n ) ( 0, m ( ) 1, m ( ) n, m ( )) X u, v = B u, B u,, B u U B v, B v,, B v U.mapa plochy U B i,n.bernsteinovy polynomy P P P P P P... P P P 00 01 0m 10 11 1m = n0 n1 nm n Bi, n u u 1 u i i ( ) = ( ) n i
Algoritmus de Casteljau po křivkk ivkách (, ) = ( ) ( ) = ( ) ( ) = ( ) ( ) 0 ij in 0 jm jm ij in 0 jm j 0 j= 0 i= 0 j= 0 i= 0 j= 0 ( v ), je bod na Bezierově ploše 0 0 m n m n m X u v P B u B v B v P B u B v Q u X u ( ) ( ) ( ) je to bod na Bezierově křivce s řídícími body Q u, v, Q u, v, Q u, v 0 0 0 1 0 0 n 0 0
Algoritmus de Casteljau-přímá metoda Plocha stupně je dána (n+1)(n+1) body P ij Plochy počítačové grafiky P 0 ij = P ij r r P 1 i, j P i, j 1 1 v r+ + 0 Pij = ( 1 u0, u0 ) r r Pi 1, j P i 1, j 1 v + + + 0 r = 0 n 1 i, j = 0 n r 1
Napojení Bezierových obdélníkových plátů
Plátování C 0 - pláty mají společný okraj, ale různé příčné tečné vektory Plochy počítačové grafiky U P P P P P P... P P P 00 01 0m 10 11 1m = n0 n1 nm U P P P P P P... P P P 0m 01 0m 1m 11 1m = nm n1 nm
Plátování Plochy počítačové grafiky C 1 - pláty mají společný okraj i příčné tečné vektory podél společného okraje U P P P P P P... P P P 00 0m 1 0m 10 1m 1 1m = n0 1m 1 nm U P P P P P P... P P P 0m 01 0m 1m 11 1m = nm n1 nm P im = P + i, m 1 Pi,1
Plátování Plochy počítačové grafiky C - pláty mají společný okraj, příčné tečné vektory podél společného okraje a společnou křivost parametrických křivek U P P P P P P... P P P 00 0m 1 0m 10 1m 1 1m = n0 1m 1 nm U P P P P P P... P P P 0m 01 0m 1m 11 1m = nm n1 nm Pi, m 1 + P i,1 Pim = P = P + P P ( ) i i, m i,1 i, m 1
16 vektorový Coonsův plát jako Bezierova bikubická plocha Plochy počítačové grafiky
16 vektorový Coonsův plát jako Bezierova bikubická plocha ( 0, 0 ), ( 0,1 ), ( 1, 0 ), ( 1,1) P = V P = V P = V P = V 00 03 30 33 P P P P ( 0, 0) = 3 ( V10 V00 ), ( 1, 0) = 3 ( V30 V0 ), ( 0,1) = 3 ( V13 V03 ), ( 1,1) = 3 ( V33 V3 ), u u u u P P P P ( 0, 0) = 3 ( V01 V00 ), ( 1, 0) = 3 ( V03 V0 ), ( 0,1) = 3 ( V31 V30 ), ( 1,1) = 3 ( V33 V3 ), v v v v P P ( 0,0) = 9 ( V11 V10 ) ( V01 V00 ) u v, ( 1, 0) = 9 ( V31 V30 ) ( V1 V0 ), u v P P ( 0,1) = 9 ( V13 V1 ) ( V03 V0 ), ( 1,1) = 9 ( V33 V3 ) ( V3 V ), u v u v V V V V V V V V V0 V V V V V V V 00 01 0 03 10 11 1 13 1 3 30 31 3 33
Subdivision Plochy počítačové grafiky
Zvýšen ení stupně Bezierovy křivky ( α ) Q P P i = αi i 1 + 1 i i i αi = i = 0 n + 1 n + 1 Př: Kvadratická Bezierova křivka je dána body P 0, P 1, P. Zadejte tutéž parabolu pomocí 4 řídících bodů. 1 1 Q = P ; Q = P + P; Q = P + P ; Q = P 3 3 3 3 0 0 1 0 1 1 3 X( t ) = ( 1 t) 3 Q0+ 3 t ( 1 t) Q1+ 3 t ( 1 t) Q+ t 3 Q3 X( t ) = P0 P0t + P0t + t P1 t P1+ t P X( t ) = ( 1 t + t ) P0 + ( t + t) P1+ t P
U P P P P P P... P P P 00 01 0n 10 11 1n = m0 m1 mn 1 n P P + P P n + 1 n + 1 1 n P P + P P U = n + 1 n + 1... 1 n P P + P P n + 1 n + 1 00 00 01 0n 10 10 11 1n m0 m0 m1 mn
Racionální Bezierova plocha Řídící body jsou zadány v afinním prostoru vnořeném do projektivního prostoru P 3. (,,,1) (,,, ) P = x y z w x w y w z w ij ij ij ij ij ij ij ij ij ij ij x = w x B ( u) B ( v) x = w y B ( u) B ( v) x = w z B ( u) B ( v) x = w B ( u) B ( v) ( 1 3 4 ) ( ) = 3 Bezierova plocha v P,,,, 1 3 4 m n j= 0 i= 0 m n j= 0 i= 0 m n j= 0 i= 0 m n j= 0 i= 0 ij ij in jm ij ij in jm ij ij in jm ij in jm X u v x x x x (, ) P u v = m n j= 0 i= 0 m n j= 0 i= 0 ( ) ( ) w P B u B v ij ij in jm ( ) ( ) w B u B v ij in jm
Kinematicky vytvořené plochy Plochy počítačové grafiky
Kružnice jako kvadratický NURBS Plochy počítačové grafiky Oblouk - Bezierova kvadrika 1. Délka úseků na tečnách musí být shodná. Vektor uzlových bodů [0,0,0,1,1,1] w0 =1 w 0 = 1 w 3 = Kružnice kvadratický NURBS 1. Řídící vrcholy jsou tvořeny vrcholy opsaného čtverce a středy stran w 4 = 1. Vektor uzlových bodů 0,0,0, 1 1 1 1 3 3,,,,, 4 4 4 4,1,1,1 w = 5 w = 1 w 6 = 1 w = w 1 0 = w8 = 1 w = 7
Válec jako Racionální Bezierova plocha ¼ Rotační válcové plochy. (, ) P u v = m n j= 0 i= 0 m n j= 0 i= 0 ( ) ( ) w P B u B v ij ij in jm ( ) ( ) w B u B v ij in jm [ ] V = r,0,0 w = 1 00 00 V01 = [ r, r,0] w01 = V = 0, r,0 w = 1 [ ] [ ] 0 0 V = r,0, v w = 1 10 10 V11 = [ r, r, v] w11 = V = 0, r, v w = 1 [ ] 1 1 r = 1, v = X ( u, v ) = ( + + 3 v 4 v ) ( 1 + v ) ( 4 v + 3 v ) v,, 4 v + 6 v + 4 v 6 v 4 v + 6 v + 4 v 6 v u
Rotační plocha Je dán meridián plochy jako (Neracionální) Bezierova křivka v rovině (x,z). Řídící body P i =[x i,0,z i ] w = 1 w = 1 w = 0.707 w = 0.707 w = 0.707 [ ] V = x,0, z w = 1 0i i i 0i V1 i = [ xi, xi, zi ] w1 i = V = 0, x, z w = 1 [ ] i i i i w = 1 w = 0.707
Anuloid jako Racionální Bezierova plocha 1/16 Anuloidu. w = 1 w = 0.707 w = 0.707 w = 0.5 [ ] V = 0, R, r w = 1 00 00 V01 = [ 0, R + r, r] w01 = V = 0, R + r,0 w = 1 [ ] 0 0 V10 = [ R, R, r] w10 = V = R + r, R + r, r w = 0.5 [ ] 11 11 w = 1 w = 0.707 w = 1 w = 0.707 [,,0] V = R + r R + r w = 1 1 [ ] V = R,0, r w = 1 0 0 [ ] V1 = [ R + r,0, r] w1 = V = R + r,0,0 w = 1
Trojúhelníková síť Plochy počítačové grafiky
z Bezierův obdéln lníkový plát Plocha st. n.m je dána obdélníkovou sítí (n+1)(m+1) bodů P ij y Bezierův trojúheln helníkový plát Plocha stupně n=i+j+k je dána trojúhelníkovou sítí ½(n+1)(n+) bodů P ijk Ω [u 0,v 0 ] x z Barycentrické souřadnice u + v + w = 1 u 0, v 0, w 0, Ω [u 0,v 0, w 0 ] x y
Bezierův trojúhelníkový plát Plocha je dána trojúhelníkovou sítí ½(n+1)(n+) bodů P ijk stupeň plochy n=i+j+k Plát stupně 1 trojúhelník P 001, P 100, P 010 X ( u, v) P001 u ( P100 P001 ) v ( P010 P001 ) = vp010 + ( 1 u v) P001 + up100 (,, ) = + + ; + + = 1 = + + = X u v w up vp wp u v w 100 010 001
Bezierův trojúhelníkový plát Plochy počítačové grafiky
Bezierův trojúhelník-subdivision Plochy počítačové grafiky
Racionální Bezierův trojúhelník Plochy počítačové grafiky Je dána trojúhelníková siť P ijk. Každý řídící bod má svou váhu w ijk (,, ) P u v w = i+ j+ k = n n wijk Pijk B ijk i, j, k 0 i+ j+ k = n n wijk B ijk i, j, k 0 ( u, v, w) ( u, v, w)
BSpline Plochy počítačové grafiky
BSpline X ( u, v) = Plocha je určena: řídící sítí (m+1)x(n+1) bodů Stupněm k pro bázové polynomy parametru u Stupněm l pro bázové polynomy parametru v i= 1 j= 1 Uzlovými vektory parametrizace pro parametry u a v. m Plochy počítačové grafiky n P N ij i, k ( u) N ( v) j, l N i1 1 t ti, ti+ pro 0 jinde t t 1 i i+ k = Nik ( t) = Nik 1( t) + Ni+ 1, k 1( t) ti+ k 1 ti ti+ k ti+ 1 t t
Vlastnosti BSpline Lokalita změn Podmínka konvexního obalu Afinní invariance Plochy počítačové grafiky Interpolace okrajem hraniční křivky jsou B-spline křivky pro uzlové hodnoty parametrů U = (u0 =... = uk, uk+1,..., um, um+1 =... = um+k+1), V = (v0 =... = vl, vl+1,..., vn, vn+1 =... = vn+l+1)
Coonsův bikubický plát (uniformní B-spline plát) 1 (, ) = ( 0 ( ), 1 ( ), ( ), 3 ( )) ( 0 ( ), 1 ( ), ( ), 3 ( )) X u v C u C u C u C u U C v C v C v C v 36 U.mapa plochy U C i,.coonsovy polynomy U U U U U U U U 00 01 0 03 10 11 1 13 = U0 U1 U U3 U U U U 30 31 3 33
NURBS Plochy počítačové grafiky
NURBS De Boorův algoritmus
Vytažení křivky jako NURBS Profilová NURBS křivka stupně k je dána řídícími body P i, i=0 n. Je dán vektor posunutí a. C( u) = Dva sloupce matice řídících bodů jsou dány původními řídícími body a body posunutými ve směru vektoru a. n i= 1 n i= 1 PN i w N i i, k i, k ( u) ( u) P P i0 i1 = Pi = P + a i X ( u, v) = n 1 i= 0 j= 0 n 1 i= 0 j= 0 ( ) ( ) w P N u N v i ij i, k j,1 ( ) ( ) w N u N v i i, k j,1
Přímkové plochy jako NURBS Jsou dány dvě NURBS křivky Sjednotíme stupeň a uzlové vektory obou křivek. Křivky se osadí novým uzlovým vektorem a sjednotí se tak, aby měly stejný počet řídicích bodů. Povrch se vytvoří za pomocířídicích bodů a uzlových vektorů obou křivek. Každá křivka se stává řádkem hodnot v matici řídicích bodů.