Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdRuben Coppens Laatst gewijzigd meer dan 9 jaar geleden
2
Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica www.hogeschool-rotterdam.nl/cmi
3
Les 5 Les 5 gaat over de hoofdstukken 9.1 Eenvoudige meetkundige vormen 9.2 Draadmodellen 9.3 Gebogen oppervlakten 9.4 Ontwerp van krommen 9.5 Basis functies met polynomen 9.6 Interpolatie probleem 9.7 Benaderings probleem 9.8 Ontwerp van gebogen oppervlakten 9.9 Transformatie van kromme en oppervlakte 9.10 Kwadratische oppervlakten
4
Inleiding Een van de belangrijkste concepten in computer graphics is het modelleren van objecten Een model is een numerieke beschrijving van het object in meetkundige eigenschappen (grootte, vorm) en hoe die inwerken op licht (reflectie, doorlaatbaarheid) Dit hoofdstuk gaat over meetkundige voorstelling van objecten Een grafisch systeem gebruikt een verzameling primitieven of meetkundige vormen 1.Eenvoudig efficient te implementeren 2.Flexibel om te manipuleren(samenstellen)
5
Inleiding Hierdoor zijn veel objecten te maken of te modelleren Meetkundige vormen als primitieven zijn: Punten Lijnen Polylijnen ( 2 dimensionale verzameling lijnen open) Polygonen ( 2 dimensionale verzameling lijnen gesloten) Polyhedra (3 dimensionale verzameling polygonen)
6
Eenvoudige meetkundige vorm Punten en lijnen Een punt is een coordinaat in 3-dimensionale ruimte Een lijn is gedefinieerd door zijn eindpunten P 1 (x 1,y 1,z 1 ) en P 2 (x 2,y 2,z 2 ) Polylijnen Een polylijn is een serie verbonden lijn segmenten De hoekpunten P 0 …. P n definieren de lijn segmenten
7
Eenvoudige meetkundige vorm Het eerste hoekunt heet startpunt Het laatste hoekunt heet eindpunt ( zie fig 9-1)
8
Eenvoudige meetkundige vorm Polygonen Een polygoon is een gesloten polylijn Een polygoon wordt gespecificeerd door de hoekpuntenlijst P 0 …. P n,P 0 De lijnsegmenten heten de lijnen van de polygoon Een vlakke (planaire) polygoon is een poly- goon waarin alle hoekpunten in hetzelfde vlak liggen (zie fig 9-2)
9
IJzerdraad Modellen Een ijzerdraad (wire frame) model bestaat uit lijnen, hoekpunten en polygonen De hoekpunten worden verbonden met lijnen en polygonen zijn een reeks van hoekpunten of lijnen. De lijnen kunnen gebogen of rechte lijnen zijn Bij rechte lijnen heet het ijzerdraad model een polygonaal net of polygonaal netwerk (zie fig 9-3)
10
IJzerdraad Modellen
11
Voorstelling polygoon netwerk: 1. Een expliciete hoekpuntenlijst V= { P 0,P 1,P 2, …..,P N } De punten P i (x i,y i,z i ) zijn de hoekpunten van het polygoon netwerk opgeslagen in de volgorde die ze tegenkomen door rond het model te gaan Dit is inefficient omdat hoekpunten meerdere keren voorkomen in de lijst (en ook meerdere keren getekend worden) ( zie opg. 9.1)
12
IJzerdraad Modellen 2. Polygoon lijst Ieder hoekpunt is exact 1 keer opgeslagen in een hoekpuntenlijst V= (P 0,…..,P N ) Iedere polygoon heeft een pointer naar deze hoekpuntenlijst (zie opg 9.2) Gemeenschappelijke lijnen worden wel meerdere keren geschreven bij presentatie
13
IJzerdraad Modellen 3. Expliciete lijnenlijst We houden een hoekpuntenlijst bij,waarbij een hoekpunt 1 keer voorkomt en een lijnen lijst waarin elke lijn 1 keer is opgeslagen Iedere lijn in de lijnenlijst heeft een pointer naar de 2 hoekpunten in de hoekpuntenlijst van die lijn Een polygoon heeft een lijst met pointers die naar de lijnenlijst verwijzen Extra informatie van polygonen die een gemeenschappelijke lijn hebben kun in de lijnenlijst geplaatst worden (zie opg. 9.9)
14
IJzerdraad Modellen Expliciete lijnenlijst kan worden gebruikt om het ijzerdraad model in op te slaan. Het ijzerdraad model wordt getekend door alle lijnen te tekenen Iedere lijn wordt maar 1 keer getekend Polyhedron Een polyhedron is een gesloten polygoon net ( een gesloten volume) waarin iedere polygoon planair is De polygonen heten de wanden van de polyhedron
15
IJzerdraad Modellen Bij het modelleren worden gezien als vaste lichamen Bij draadmodellen is dit niet zo
16
IJzerdraad Modellen Voor en nadelen ijzerdraadmodellen Ze worden veel gebruikt bij engineering opdrachten Eenvoudig te construeren Evenvoudig af te breken Eenvoudige manipulatie (transformaties) Nadeel is dat het geen realistisch beeld geeft bij gekromde oppervlakten Dan moeten veel polygonen gebruikt worden om het realistische beeld te verkrijgen
17
Gekromde oppervlakten Hiermee kunenn realistische beelden gemaakt worden Verschillende benaderingen: 1. Oppervlakte segmenten (surface patch) die naast elkaar geplaatst worden 2. Oppervlakten gebruiken die vaste objecten gebruiken: polyhedra,bollen, cilinders, kegels Een model kan deze als bouwblokken gebruiken voor modelleren (solid modelling)
18
Gekromde oppervlakten 2 manieren voor modelleren: 1. Additieve modelleren: model bouwen door veel eenvoudige objecten samen te stellen 2. Subtractieve modelleren: stukken verwijderen van een bestaand object om een nieuw object te verkrijgen Bijvoorbeeld een cilindrisch gat maken in een bol of kubus Bijvoorbeeld een beeldhouwwerk
19
Ontwerp van krommen Gegeven n+1 datapunten P 0 (x 0,y 0 ),..,P n (x n,y n ) Gevraagd een kromme door deze punten 1. Exact door de punten heet interpolatie (reconstructie doel ) 2. Benadering van de punten heet approximatie ( estethisch doel ) Krommen bouwen met kleine krommen (curve segments) Ze kunnen gemaakt worden met kleine polygonen
20
Ontwerp van krommen Als we een kromme f(x) modelleren met curve segmenten gebruiken we kleine segmenten Φ i (x) (basis of blending of vermengings functies): We kiezen de blending functies met oog op berekeningen en afbeeldingen. Daarom polynomen (veeltermen) gebruiken Een polynoom van de graad n is een functie van de vorm: Q(x)= a n x n + a n-1 x n-1 +…+ a 1 x + a 0
21
Ontwerp van krommen Deze polynoom is bepaald door zijn n+1 coefficienten [a n,…,a 0 ] Een continue stuksgewijze polynoom Q(x) van de graad n is een verzameling van k polynomen q i (x),elk van de graad n en k+1 knopen (nodes) voor t 0,..,t k zodat Q(x) = q i (x) voor t i ≤ x ≤ t i+1 en i = 0,…,k-1 Deze definitie vereist dat de polynomen bijelkaar komen in de knopen Dwz q i-1 (t i )= q i (t i ) met i=1,….,k-1 Deze eis geeft niet aan hoe vloeiend de polynomen q i (x) aan elkaar zitten (zie fig 9-4)
22
Ontwerp van krommen Polynomen van een hoge graad zijn niet bruikbaar omdat ze oscilleren De meest bruikbare zijn de stukgewijze waarvan de polynomen kubisch (van de graad 3) zijn, immers: 1. Een tekenaar gebruikt een flexibel latje (spline) 2. De 3e graad is de minimale graad om vloeiend te zijn
23
Basisfuncties van polynomen P 0 (x 0,y 0 ),….,P n (x n,y n ) heeft n+1 datapunten en tevens zijn er t 0,t 1,t 2,.. enz knopen Dan zijn er de volgende keuzen voor basis of vermengingsfuncties: 1. Lagrange polynomen van de graad n Merk op dat L i (x i )=1 en L i (x j ) = 0 voor alle j≠I Π betekent term voor term vermenigvuldigen
24
Basisfuncties van polynomen 2. Hermitische Kubische Polynomen zie fig 9-5
25
Basisfuncties van polynomen De formules hiervoor zijn:
26
Basisfuncties van polynomen 2. B-splines Zie fig 9-6 als t i ≤ x ≤ t i+n+1
27
Basisfuncties van polynomen Merk op dat B i,n (x) is ongelijk aan 0 in het interval [t i,t i+n+1 ] In het bijzonder : de cubic spline (3e macht) B i,3 is ongelijk aan 0 in het interval [t i,t i+4 ] (welke de knopen t i,t i+1,t i+2,t i+3,t i+4 omvat) In aanvulling voor niet herhalende knopen is de B-spline 0 bij de eindknopen t i en t i+n+1 Volgens opg 9.3 geldt:
28
Basisfuncties van polynomen 3. Bernstein Polynomen Zie fig 9-7
29
Basisfuncties van polynomen De Cubic Bernstein polynomen zijn: B 0,3 (x)= 1-3x + 3x 2 – x 3 B 1,3 (x)= 3(x - 2x 2 + x 3 ) B 2,3 (x)= 3(x 2 – x 3 ) B 3,3 (x)= x 3
30
Problemen van polynomen Gegeven de datapunten P 0 (x 0,y 0 ),….. P n (x n,y n ),we willen door die punten een kromme vinden die door die punten gaat Oplosing Lagrange polynoom interpolatie waarbij L i (x) de Lagrange polynomen zijn en L(x) de n de graads polynoom interpolatie van de datapunten
31
Problemen van polynomen Oplossing Hermitische Kubische Interpolatie We willen een stuksgewijze polynoom H(x) van de graad 3 vinden die door alle datapunten gaat en die continue differentieerbaar is in die punten We schrijven ook de waardes voor voor de afgeleide y’ van de gegeven datapunten, dwz dat zijn de punten (x 0,y’ 0 ),….,(x n,y’ n ), dan is:
32
Problemen van polynomen Hierbij zijn H 0 (x) en H 0 (x) de hermitische kubische functies en t 0 =x 0, t 1 =x 1, t 2 =x 2,.., t n =x n zijn de keuzes voor de knopenverzameling Spline interpolatie Als vereist wordt dat de stuksgewijze polynoom zo vloeiend mogelijk moet zijn in de datapunten gebruiken we splines Een spline van de graad m heeft continue afgeleiden tot de orde m-1 in de datapunten
33
Problemen van polynomen Men kan aantonen dat elke m de graad spline die door n+1 datapunten gaat met B-splines basisfuncties zodanig dat : Om de B-spline functies B i,m (x) te definieeren om het interpolatieprobleem op te lossen moeten de knopen t 0, t 1,…, t m+n+1 gekozen worden volgens de Shoenberg-Whitney conditie t i < x i < t i+m+1 met i = 0,…,n
34
Problemen van polynomen De volgende keuzes voor de knopen voldoen: ( zie opg 9.4) Stap 1: Kies t 0 =t 1 …..=t m < x 0 t n+1 =t n+2 = …..=t m+n+1 > x n Stap 2: Kies de overgebleven knopen volgens Voor kubische splines (m=3) is een alternatief voor stap 2: t i+4 =x i+2 met i=0,…,n-4
35
Problemen van polynomen De spline S 2 (x) heet kwadratische spline met : De spline S 3 (x) heet kubische spline met : We vervolgen met kubische splines
36
Problemen van polynomen Dan zijn er n+3 coefficienten a i die n+3 vergelijkingen vereisen Het interpolatie criterium S 3 (x j ) = y j, j=0,…n voorziet in n+1 vergelijkingen De overige 2 vergelijkingen zijn grenscondities in de eindpunten x 0 en x n
37
Problemen van polynomen Sommige keuzes voor grenscondities zijn: 1. Natuurlijke spline conditie: (minst gekozen) S 3 ” (x 0 )= 0 S 3 ” (x n )= 0 2. Samengeklemde spline conditie: S 3 ’ (x 0 )= y 0 ’ S 3 ’ (x n )= y n ’ Met y 0 ’ y n ’ voorgeschreven afgeleiden 3. Cyclische spline conditie: (gesloten krommes) S 3 ’ (x 0 )= S 3 ’ (x n ) S 3 ” (x 0 )=S 3 ” (x n ) 4. Anticyclische conditie: (parallelle einden) S 3 ’ (x 0 )=- S 3 ’ (x n ) S 3 ” (x 0 )=-S 3 ” (x n )
38
Probleem van benadering Het probleem is om een vloeiende 3- dimensionale kromme te maken, welke de datapunten benadert Gegeven de controle punten P 0 (x 0,y 0,z 0 ), P 1 (x 1,y 1,z 1 ), …., P n (x n,y n,z n ) (zie fig 9-8)
39
Probleem van benadering Bézier-Bernstein benadering Hierbij gebruiken we Bernstein polynomen, we vormen de parametrische krommen
40
Probleem van benadering P(t) heet de Bézier kromme Eigenschappen van Bézier-Bernstein benadering Er zijn 4 eigenschappen 1. De kromme heeft de zelfde eindpunten als de polyline P 0 =P(0)=[x(0),y(0),z(0)] P n =P(1)=[x(1),y(1),z(1)] 2. De richting van de tangensvector in de eindpunten P 0,P n is dezelfde als die van de vector bepaald door de eerste segmenten en de laatste segmenten van de bijbehorende polyline
41
Probleem van benadering Daarvoor geldt P’(0) = n.(P 1 -P 0 ) d.w.z.: x’(0)= n.(x 1 -x 0 ), y’(0)= n.(y 1 -y 0 ), z’(0)=n.(z 1 -z 0 ) Tevens geldt: P’(1) = n.(P n -P n-1 ) Hier is n een bepaalde factor (afhankelijk van de hoek) 3. De Bézier kromme ligt geheel binnen de bolle omhulling van de bijbehorende polyline 4. Bezier krommen zijn uitstekend voor interactief ontwerp Stukken Bézier krommen kunnen aan elkaar gelinkt woren en zijn in de verbindingspunten continue differentieerbaar ( zie fig 9-9)
42
Probleem van benadering Stukken Bézier krommen kunnen aan elkaar gelinkt woren en zijn in de verbindingspunten continue differentieerbaar ( zie fig 9-9)
43
Probleem van benadering Bézier-B-Spline benadering Voor deze benadering gebruiken we B-splines (zie fig 9-10)
44
Probleem van benadering De m-de graad B-splines B i,m (t),i=0,…n zijn gedefinieerd voor t in het parameter bereik [0,n-m+1] De knopen verzameling t 0,…,t n+m+1 is gekozen met de verzameling
45
Probleem van benadering Het gebruik van herhaalde knopen zorgt ervoor dat de eindpunten van de spline samenvallen met de eindpunten van de begeleidende polylijn (zie opg. 9.6) Daar de knopenverdeling over gelijk is kunnen we ook de expliciete vorm gebruiken om B- splines uit te rekenen (zie opg. 9.10)
46
Probleem van benadering Gesloten krommen Om een gesloten B-spline kromme te construeren die een gesloten begeleidende polygoon heeft, hoeven we alleen de knopen t 0 ….t n+m+1 cyclisch te kiezen,dwz [0,1,….,n.1….] zodat t n+1 = t 0 =0 t m+2 = t 1 t m+1+i = t i In praktijk zijn kwadratische B-splines B i,2 en kubische B-splines B i,3 het eenvoudigst te gebruiken en geeft genoeg flexibiliteit bij ontwerpen
47
Probleem van benadering Eigenschappen Bézier-B-Spline benadering Er zijn 5 eigenschappen: 1. De Bézier-Bspline benadering heeft dezelfde eigenschappen als de Bézier-Bernstein benadering Het zijn dezelfde polynomen als m=n 2. Als de begeleidende polyline m+1 opeenvolgende hoekpunten (control punten) heeft welke in 1 lijn liggen dan is de resulterende Bézier-B-spline lineair
48
Probleem van benadering 3. De Bézier-B-spline benadering voorziet in lokale controle voor de vorm van de kromme Als 1 control punt wordt veranderd, worden delen ver weg op de kromme worden niet veranderd (m+1 punten veranderen) 4. Bézier-B-splines produceert een betere benadering dan de Bézier-Bernstein benadering 5. De Bézier-B-spline benadering staat het gebruik toe van control punten P i met een veelvoud van 2 of meer
49
Probleem van benadering D.w.z. P i = P i+1 =…= P i+k voor k ≥ 1 Dit geeft een benadering die dichter bij het control punt getrokken wordt Als de punten een veelvoud van m+1 hebben gaar de kromme door de control punten
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.