Kror och ytor Eplicit form Implicit form Kror och ytor Parametrisk form Procerbaserade Polynom Catmll-Clark ekannan och dess datormotsarighet Martin Newell, 975. Gsta aén CID gstat@nada.kth.se Kbiska (grad Generella (grad d Interpolerande Hermite Bezier B-Spline Generell B-Spline Uniform NURBS Matematiska representationer a kror Parametriska kror Om i derierar ttrycket för kran Eplicit Implicit Generellt y f( f(, y Eempel y - y y p( f ( f y ( får i en ektor som definierar krans tangent: Parametrisk f ( y f y ( min ma y dp( df ( df y ( Parametriska kror: Eempel Parametriska ytor För ytor kräs tå parametrar: p(, f (, f y (, f z (, z y
Parametriska ytor Parametriska ytor: Eempel De ektorer i får om i derierar m.a.p. och definierar ytans tangentplan: p(, f (, f y (, f z (, p(, f (, f y (, f z (, N(, p(, p(, är ytans normal. Parametriska polynomkror Parametriska polynomkror: Eempel Då p( är ett polynom i kallas kran polynomkra. p( f ( f y ( f z ( c + c + 2 c 2 +... + n c n c y + c y + 2 c y2 +... + n c yn c z + c z + 2 c z2 +... + n c zn Polynomkror, isar det sig, har egenskaper som är intressanta för datorgrafik och CAD/CAM. Kbiska polynomkror f ( c + c + 2 c 2 + c f y ( c y + c y + 2 c y2 + c y f z ( c z + c z + 2 c z2 + c z Antag att i har fyra styrpnkter p, p, p 2 och p och att i ill att kran ska gå genom dessa pnkter. Vi låter p (p p y p z, p (p p y p z, p 2 ( p 2y p 2z, p (p p y p z p p p p p y och sätter p y p y p 2y p y p z p z p z p 2z p z Kbiska polynomkror Vi bestämmer att kran ska gå genom styrpnkterna id, /, 2/ och. Vilka c-ärden ska i ha? Låt oss börja med -komponenten. Vi har : : /: 2/: f ( c + c + 2 c 2 + c och i ill ha f ( p f (/ p f (2/ f ( p ilket ger p c p c + c + c 2 + c p c + (/c + (/ 2 c 2 + (/ c c + (2/c + (2/ 2 c 2 + (2/ c 2
Interpolerande polynomkror Interpolerande polynomkror: Eempel Löser man ekationssystemet får man y c p c 5.5p + 9p 4.5 + p c 2 9p 22.5p + 8 4.5p c 4.5p +.5p.5 + 4.5p Analogt för y- och z-komponenterna. p ( p ( p 2 ( p ( p p 2 p p Kran som har dessa c-koefficienter sägs interpolera de fyra styrpnkterna. Interpolerande polynomkror: Eempel Interpolerande polynomkror: Eempel p ( p ( p 2 ( p ( ger c c 5.5 + 9 4.5 + 4.5 c 2 9 22.5 + 8 4.5 4.5 c 4.5 +.5.5 + 4.5 Så krans fnktion blir f ( 4.5 4.5 2 f y (.5 +.5 2-9 c y c y 5.5 + 9 4.5 +.5 c 2y 9 22.5 + 8 4.5.5 c y 4.5 +.5.5 + 4.5 9 Interpolerande polynomkror: Eempel Polynomkror på matrisform Vi ska n isa att i kan skria kran på formen f ( b( p f y ( b( p y f z ( b( p z där p p p p p y p y p y p 2y p y p z p z p z p 2z p z och b( M 2 44-matris
Polynomkror på matrisform Skrier i lösningen på ekationssystemet för f ( på matrisform får i c c c 2 c 5.5 9 4.5 9 22.5 8 4.5 4.5.5.5 4.5 eller c M I p p p p Polynomkror på matrisform Krans ekation för f ( är f ( c + c + 2 c 2 + c f ( eller 2 ilket ger c c c 2 c f ( c (M I p (M I p Enl. föreg. bild Matrisregel c Blandningspolynom b( Det ill säga, i har f ( (M I p b( p där 5.5 9 4.5 9 22.5 8 4.5 4.5.5.5 4.5 2 b ( b ( b 2 ( b ( b( kallas för krans blandningspolynom. Notera att eftersom b( bara beror a, gäller resltatet äen för f y ( och f z (. Sammanfattning p En parametrisk kbisk polynomkra är en kra på formen f ( b( p f y ( b( p y f z ( b( p z p p p p y p y p y p 2y p y p z där p z p z p 2z p z är krans styrpnkter och b( är krans blandningspolynom. Parametriska kbiska polynomytor Parametriska kbiska polynomytor: Eempel p(, f (, f y (, f z (, i j c ij c yij c zij i j 4
För ytans -komponent har i f (, i j c ij i j Detta kan skrias som c c c 2 c c f (, 2 c c 2 c c 2 c 2 c 22 c 2 c c c 2 c eller f (, C 2 Antag n att i har 6 styrpnkter p ij, i, j p p 2 p p p p p 2 p p p 2 Precis som fört har i att p (p p y p z p (p p y p z... p (p p y p z... p (p p y p z Om i sätter får i en kra som måste interpolera pnkterna p, p, p 2 och p. p p p 2 p os. p p 2 p p p 2 p Med andra ord tittar i på styrpnkterna p p p p p (p p y p z p (p p y p z p 2 ( p 2y p 2z p (p p y p z p y Sätt n p y p y p 2y p y p z p z p z p 2z p z En sådan kra kan, för -komponenten (som i tidigare sett, skrias f ( (M I p Eftersom i för ytan hade att f ( C och eftersom i satt får i f (, M I p C Vi ill att! 2 C 5
Sätter i får i en kra som måste interpolera pnkterna p, p, p 2 och p. p p p 2 p p p 2 p p p 2 p p Vi betraktar då styrpnkterna p p p p (p p y p z p (p p y p z p 2 ( p 2y p 2z p (p p y p z och i sätter p y p y p y p 2y p y p z p z p z p 2z p z För -komponenten och gäller då f ( (M I p och f (, C Om i lägger till / och 2/ får i p p p p f (, M I p C 2 f (, M I p C 2 p p f (, M I p C Vi ill att! 2 C p p f (,/ / 2/ M I p C f (/ 2 2 (,2/ M I p C 22 (2/ 2 p (/ (2/ M I p p p Dessa fyra ekationer kan sammanfattas som p p p P p 22 p p p C / (/ 2 (/ 2/ (2/ 2 (2/ A är ekialent med M I - (se härledningen a den interpolerande kran. Vi har alltså M I P C (M I - C M I P M I A (Stryk och arrangera om termer Ytans ekation för -komponenten är f (, C och r föregående bild fick i C M I P M I ilket tillsammans ger f (, M I P M I 6
Sammanfattningsis har i Interpolerande polynomytor: Eempel f (, M I P M I f y (, M I P y M I f z (, M I P z M I P p p p p p p p 22 p p p P y p y p y p 2y p y p y p y p 2y p y p 2y p 2y p 22y p 2y p y p y p 2y p y P z p z p z p 2z p z p z p z p 2z p z p 2z p 2z p 22z p 2z p z p z p 2z p z (Angels bok och ytor Angel anänder följande notation för att spara trymme: p(, f (, f y (, f z (, där c ij c ij c yij c zij i j c ij i j (Angels bok ytor Med andra ord har han C p(, C c c c 2 c c c c 2 c c 2 c 2 c 22 c 2 c c c 2 c ilket gör att han måste införa operationen C c c c 2 c c c c 2 c c 2 c 2 c 22 c 2 c c c 2 c Vektor! Skalär! Sammanlänkning a kror Icke-kontinerlig C -kontinerlig Hermitekror Fås om man kräer C -kontinitet. Krans ekation är (som tidigare f ( c + c + 2 c 2 + c f y ( c y + c y + 2 c y2 + c y f z ( c z + c z + 2 c z2 + c z Vi fierar deriatan i p och p och tar dem som styrpnkter : C -kontinerlig p (p p y p z p (p p y p z dp df (p df y (p y df z (p z p p y p z dp df (p df y (p y df z (p z p p y p z 7
Hermitekror För f ( ger detta ekationssystemet : p c : p c + c + c 2 + c : p df (/ c : p df (/ c + 2c 2 + c med lösningen Hermitekror: Eempel f 2 ( 2 2 2 p p p p Analogt för y- och z-komponenterna. Beziérkror Det är ofta bökigt att arbeta med deriatorna eplicit. Helst ill man arbeta med fyra pnkter (istället för tå pnkter och tå deriator. p Vi kan approimera deriatorna med en differens: p p 2 p dp (p p dp (p p 2 För att kran ska ritas med linjär hastighet m.a.p.. (Inte ppenbart, men kan isas. Beziérkror : : : : För f ( ger detta ekationssystemet f 2 ( p c p c + c + c 2 + c (p p df (/ c (p df (/ c + 2c 2 + c med lösningen 4 6 p p p Analogt för y- och z-komponenterna. Beziérkror: Eempel Kbiska B-splinekror Nackdelen med Beziérytor är att det kan ara sårt att få till C -kontinitet. Det kan lösas genom att man släpper kraet att kran ska interpolera sltpnkterna på kran. p i- p i p i- p i-2 8
Kbiska B-splinekror Nackdelen med Beziérytor är att det kan ara sårt att få till C -kontinitet. Det kan lösas genom att man släpper kraet att kran ska interpolera sltpnkterna på kran. Kbiska B-splinekror Nackdelen med Beziérytor är att det kan ara sårt att få till C -kontinitet. Det kan lösas genom att man släpper kraet att kran ska interpolera sltpnkterna på kran. p i- p i p i- p i p i-2 p i+ p i+ p i+2 Se boken för blandningspolynom och härledning. Kbiska B-splinekror: Eempel Generaliserade B-splinekror Vi kan generalisera B-splinekrsbegreppet. Vi ill konstrera en fnktion p( f ( f y ( f z ( öer interallen 2... n- n Värdena,,..., n kallas kntar. Generaliserade B-splinekror Den generaliserade B-splinekrans ekation är n p( B id ( p i i där B id ( är en basfnktion, i det här fallet ett polynom a grad d (och p i är styrpnkterna Väljer man B i ( som blandningspolynom för en kbisk B-spline (se boken och kntarna {,,,,,,, } får man en Bèzierkra. Generaliserade B-splinekror: Eempel En generell B-splinekra a grad d med tre kntar: p( p p B d ( p y + p z p 2 p 2 p B d ( p y + p z B 2d ( p 2y p 2z Basfnktionerna talar om hr mycket a respektie styrpnkt som ska tas med för ett giet. 9
NURBS Catmll-Clark-ytor NURBS Non-Uniform Rational B-Spline Variant a generaliserad B-Spline där man iktar de olika styrpnkterna. p( B id (w i p i i Anledningen är att man ill ge anändaren eplicit kontroll öer hr mycket a arje styrpnkt som ska tas med. Om man anänder kombinationer a polynomytor kan det ara sårt att ndika sprickor på ställen där ytorna möts. Catmll-Clark-ytor Catmll-Clark-ytor Lösning: Utgå från ett antal polygoner och dela dem i sccessit mindre bitar enligt på förhand bestämda (relatit enkla regler. Slta när polygonerna är mindre än en pielpnkt. Catmll-Clark-ytor: Eempel