Visualisering Transformationer, vyer, projektioner, skymda ytor

Relevanta dokument
Transformationer i 3D. Gustav Taxén

Rotation Rotation 187

Tredimensionella metoder. 3D, transformationer, visualisering, belysning: introduktion och begrepp Föreläsning Matematiska verktyg

1 av 9. vara en icke-nollvektor på linjen L och O en punkt på linjen. Då definierar punkten O och vektorn e ett koordinataxel.

Exempelsamling :: Vektorintro V0.95

TATM79: Föreläsning 5 Trigonometri

Bestäm den sida som är markerad med x.

Parametriska kurvor: Parametriska ytor

Vektorer En vektor anger en riktning i rummet (eller planet) och en längd (belopp). Vektorer brukar ritas som pilar, Vektoraddition

Bakgrund. Bakgrund. Kursmaterial. Transformationer i 3D. Matematiska byggstenar. GrIP våren 2008, Förel.10 Yngve Sundblad

5. Linjer och plan Linjer 48 5 LINJER OCH PLAN

LEDNINGAR TILL PROBLEM I KAPITEL 2 OBS! En fullständig lösning måste innehålla en figur!

Geometriska vektorer

Tentamensskrivning i Mekanik, Del 2 Dynamik för M, Lösningsförslag

Tentamen i mekanik TFYA kl. 8-13

Geometriska transformationer

Svar och arbeta vidare med Cadetgy 2008

vara n-dimensionella vektorer. Skalärprodukten av a och b betecknas a b ) vara tvådimensionella vektorer. Skalärprodukten av a och b är

Transformationer i R 2 och R 3

Integranden blir. Flödet ges alltså av = 3

Lösningar till problemtentamen

Föreläsning 14 och 15: Diffraktion och interferens i gitter, vanliga linser, diffraktiv optik och holografi

Lösningar till utvalda uppgifter i kapitel 1

INLEDNING: Funktioner (=avbildningar). Beteckningar och grundbegrepp

SG1140, Mekanik del II, för P2 och CL3MAFY

M0043M Integralkalkyl och Linjär Algebra, H14,

Explorativ övning Vektorer

Kompletterande lösningsförslag och ledningar, Matematik 3000 kurs B, kapitel 4

2. Beräkna. (z-koordinaten för masscentrum för en homogen kropp som upptar området K) ½ u = xy 3. Använd variabelbytet v = y x.

LEDNINGAR TILL PROBLEM I KAPITEL 13. Systemets masscentrum G ligger hela tiden vid axeln. Kraftekvationen för hela systemet:

Sida 1 av 12. vara ett inkonsistent system (= olösbart system dvs. ett system som saknar lösning). b =.

vilket är intervallet (0, ).

på två sätt och därför resultat måste vara lika: ) eller ekvivalent

Tentamen i Mekanik 5C1107, baskurs S2. Problemtentamen

Transformationer. Translation. Skalning. Homogena koordinater. Rotation. 2D-grafik. x y. Inom datorgrafik är transformationer den. Många. bevaras.

Tentamen i Mekanik SG1107, baskurs S2. Problemtentamen

Analys o Linjär algebra. Lektion 7.. p.1/65

Veckoblad 1, Linjär algebra IT, VT2010

Exempel :: Spegling i godtycklig linje.

LABORATION 5 Aberrationer

TANA17 Matematiska beräkningar med Matlab

Mer om geometriska transformationer

Homogena koordinater och datorgrafik

Vektorgeometri. En vektor v kan representeras genom pilar från en fotpunkt A till en spets B.

Linjär Algebra, Föreläsning 2

3 Parameterframställningar

Exempel :: Spegling i godtycklig linje.

Tentamen i mekanik TFYA kl

Inledning. CTH/GU LABORATION 4 MVE /2017 Matematiska vetenskaper

tal. Mängden av alla trippel av reella tal betecknas med R 3 och x 1 x 2 En sekvens av n reella tal betecknas med (x 1, x 2,, x n ) eller

Föreläsning 3, Linjär algebra IT VT Skalärprodukt

Tentamen i mekanik TFYA kl

October 9, Innehållsregister

Figur 5.1. En triangel där nedre högra hörnet har en rät vinkel (90 ).

Del A. Lösningsförslag, Tentamen 1, SF1663, CFATE,

Armin Halilovic: EXTRA ÖVNINGAR. n. Om O betecknar origo och T masscentrum då gäller ===========================================================

Linjär algebra på några minuter

Matematisk statistik

6 2D signalbehandling. Diskret faltning.

3D: transformationer:

(d) Mängden av alla x som uppfyller x = s u + t v + (1, 0, 0), där s, t R. (e) Mängden av alla x som uppfyller x = s u där s är ickenegativ, s 0.

Linjär Algebra, Föreläsning 2

FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar

Tentamen i mekanik TFYA16

Uppgift 3. (1p) Beräkna volymen av pyramiden vars hörn är A=(2,2,2), B=(2,3,4), C=(3,3,3) och D=(3,4,9).

SG1140, Mekanik del II, för P2 och CL3MAFY. Omtentamen

Säkerhetsfaktor eller probabilistisk dimensionering för utmattningsskada ett förslag till kompromiss

45 o. Mekanik mk, SG1102, Lösningar till problemtentamen, KTH Mekanik

1. För en partikel som utför en harmonisk svängningsrörelse gäller att dess. acceleration a beror av dess läge x enligt diagrammet nedan.

LINJÄRA AVBILDNINGAR

Inledande kurs i matematik, avsnitt P.2. Linjens ekvation kan vi skriva som. Varje icke-lodrät linje i planet kan skrivas i formen.

5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA

Vektorgeometri för gymnasister

Operationsförstärkare (OP-förstärkare) Kapitel , 8.5 (översiktligt), 15.5 (t.o.m. "The Schmitt Trigger )

10 Relativitetsteori och partikelfysik

Ö D W & Ö Sida 1 (5) OBS! Figuren är bara principiell och beskriver inte alla rördetaljerna.

Vektorgeometri för gymnasister

2x + y + 3z = 1 x 2y z = 2 x + y + 2z = 1

Att verifiera Biot-Savarts lag för en platt spole samt att bestämma det jordmagnetiska fältets horisontalkomposant

TSBB31. En bild är en 2D signal. Exempel på färginnehåll i bilder p. 4. För en digital bild gäller. vitt. Fig. 1.1

Detta cosinusvärde för vinklar i [0, π] motsvarar α = π 4.

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

Dagens ämnen. Linjära ekvationssystem: Successiv elimination Vektorer Definitionen Grundläggande räkneoperationer Bas och koordinater Ortsvektorer

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

Denna vattenmängd passerar också de 18 hålen med hastigheten v

Statistisk mekanik: exempel. Molekylfysik.

Övningar till kapitel 1

Vektoriella storheter är storheter med både värde och riktning. t.ex. hastighet och kraft

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Att beräkna:: Avstånd

Transformationer, Angel

Karta över Jorden - viktigt exempel. Sfär i (x, y, z) koordinater Funktionen som beskriver detta ser ut till att vara

Arbetsblad 2:1. 1 a) Figuren ska vikas till en kub. Vilken av kuberna blir det? 2 Vilka av figurerna kan du vika till en kub?

Mekanik FK2002m. Vektorer

MÄTNING AV ELEKTRISKA STORHETER

Vektorgeometri för gymnasister

Vektorer. Vektoriella storheter skiljer sig på ett fundamentalt sätt från skalära genom att de förutom storlek också har riktning.

Matematiska tillämpningar i 3Dgrafik

SF1624 Algebra och geometri

Massa, rörelsemängd och energi inom relativitetsteorin

Transkript:

Transforationer, er, projektioner, skda tor Visualisering Innehåll Mateatiska grunder (kort) Transforationer Projektioner Borttagning a skda tor preious net preious net 2 Trediensionella etoder Vi kan isualisera "realistiskt" ed teturer/aterial, belsning, reflektion, skuggor, borttagning a skda tor os trådodell Vi kan isa objekt i perspektieller parallell projektion Trediensionella etoder Kaeraetafor Man brukar anända en analogi ed en kaera so placeras, riktas och flttas i ärlden Vi kan isa sprängskisser Material/tetur Varierad färgton kan ge ledtråd o astånd Stereobilder kan också anändas os preious net 3 preious net 4 Grundläggande tper a objekt I datorgrafik jobbar i ed do grundläggande ateatiska objekten (och datatperna) punkt skalär ektor Mateatiska erktg Skalärprodukt cosinus för inkeln ellan tå ektorer Krssprodukt ger ektor ortogonal ot do ingående ektorerna Planets ekation A +B +C+D Koplanära ektorer Noral Tre ektorer a, b och c är koplanära o a (b c) tans riktning preious net 5 preious net 6

Matriser i anänder atriser för att beskria transforationer Koordinatsste objekt definieras i förhållande till koordinatsste Vektorer Fsikalisk definition: en ektor är en kantitiet ed tå attribut Riktning Storlek Eepel Kraft Hastighet Riktade linjesegent Viktigast för datorgrafik preious net 7 preious net 8 Vektoroperationer En ektor har iners Saa storlek en pekar i otsatt riktning En ektor kan ultipliceras ed en skalär Finns nollektor Storlek noll, odefinierad riktning Suan a tå ektorer är en ektor Vektorer saknar position Identiska ektorer Saa längd och riktning - α u w Vektorru otillräckliga för geoetri Vi behöer punkter också preious net 9 preious net Punkter Plats i rden Operationer på punkter och ektorer tillåtna Punkt-punkt-subtraktion ger ektor Ekialent ed en punkt-ektor-addition Linjer Betrakta alla punkter på foren P(α)P + α d Mängden a alla punkter so passerar geno P i ektorn d:s riktning P-Q P+Q preious net preious net 2

Paraetrisk for Foren på föregående sida kallas paraetrisk for Mer robust och generell än andra forer Utidgbar till kuror och tor Kone Ett objekt är konet o alla punkter på linjesegentet ellan alla par a punkter i objektet också befinner sig innuti objektet Tådiensionella forer Eplicit: +h Iplicit: a + b +c Paraetrisk: Q P P Q (α) α + (-α) (α) α + (-α) Konet Ej konet preious net 3 preious net 4 Oslutande oler Bla för att reducera arbetsängden id test a skärning Tå objekt och deras projektion på -planet forts o oslutande rektanglarna öerlappar finns tå öjligheter objekten skär arandra objekten skär inte arandra Konea höljet I bilden öerlappar ej rektanglarna så inga idare tester för skda tor behöer göras så finkornigare test åste göras preious net 5 preious net 6 Plan Ett plan kan bestäas a en punkt och tå ektorer eller ia tre punkter Noraler Varje plan har en ektor n noral (inkelrät) ot det Från en punkt och tå ektorer kan i bilda P(α,β)R+αu+β Vi kan anända krssprodukten n u och den ekialenta foren (P(α)-P) n P(α,β)R+αu+β P(α,β)R+α(Q-R)+β(P-Q) P u preious net 7 preious net 8

Koordinatsste Vilket är korrekt? Raar (eng Fraes) Koordinatsste otillräckliga för att representera punkter Vi kan lägga till en punkt, origio, till basektorerna och bilda en ra 2 P Båda efterso ektorer inte har någon position 3 preious net 9 preious net 2 Raen gien a (P,, 2, 3 ) Dock sns inte skillnaden ellan Punkter och Vektorer Punkt Ino raen kan arje ektor skrias so P P + β + β 2 2 +.+β n n Vektor α + α 2 2 +.+α n n Och arje punkt so P P + β + β 2 2 +.+β n n α + α 2 2 +.+α n n Får likadana representationer p[β β 2 β 3 ] [α α 2 α 3 ] Vilket gör att an kan blanda ihop de En ektor har ju ingen position p Kan placeras arsohelst fierad preious net 2 preious net 22 Presentation där i kan skilja på de Definiera P och P P, ilket gör att i kan skria Vektor α + α 2 2 +α 3 3 [α α 2 α 3 ][ 2 3 P ] T Punkt P P + β + β 2 2 +β 3 3 [β β 2 β 3 ][ 2 3 P ] T Vi har konstrueat en 4-diensionell sätt att skria ektorer och punkter i hoogena koordinater [α α 2 α 3 ] T p [β β 2 β 3 ] T Hoogena koordinater Generell for för 4-diensionella hoogena koordinater p[ w] T Vi får en 3-diensionell punkt (för w ) geno /w /w /w O w är det en ektor Alltså hoogena koordinater ersätter punkter i tre diensioner ed linjer geno origo i fra diensioner Mer o hoogena koordinater o en liten stund preious net 23 preious net 24

Transforationer En transforation abildar en punkt eller ektor till en annan punkt eller ektor Grundläggande transforationer Translation P P + d T(u) Rotation P R * P QT(P) Skalning P S * P preious net 25 preious net 26 Translation P P + d Rotation kring origo P P P R P preious net 27 preious net 28 rotation på atrisfor cos sin sin + cos r cos (φ + ) r sin (φ + ) cos sin r cos φ r sin φ sin cos preious net 29 ρe i ρ(cos + i sin ) ρ cosφ, ρ cos( φ + ) ρ sinφ, ρ sin( φ + ) i e ( φ+ ) ρ ρ Kan enkelt härledas ed hjälp a Eulers forel: iφ i e e ρ(cos( φ + ) + i sin( φ + )) ρ(cosφ cos sinφ sin + i(cosφ sin + sinφ cos )) cos sin sin + cos preious net 3

Skalning Reflektion s - s original s - s - s s - preious net 3 preious net 32 Transforationer i i hoogena koordinater För att behandla transforationer på ett unifort sätt, ds translation, skalning, rotation, anänder i hoogena koordinater En (2D-) punkt representeras a en trippel P (, h) h h, Vilket h so helst kan äljas, fast i grafik-saanhang brukar an älja h Rotation i 2D ed hoogena koordinater cos sin sin cos Alla transforationer kan representeras a atrisultiplikationer preious net 33 preious net 34 Translation i hoogena koordinater α α Fler grundläggande operationer Skjuning (Skening) preious net 35 preious net 36

preious net 37 Saanslagning a transforationer O hoogena koordinater anänds kan alla transforationer utföras so atrisultiplikationer Detta gör att i kan slå saan flera transforationer till en n atris innan i applicerar denna tranforationsatris på alla punkter i objektet (/objekten) detta kan ge stora prestandainster speciellt o i skall utföra saa transforationer på tusentals punkter Kostnaden att bilda MABCD är liten i förhållande till att beräkna Mp Idag finns det dessuto chips so kan utföra 4*4- atrisoperationer, ds an kan göra detta direkt i hårdaran preious net 38 Rotation kring fi punkt ) ( ) ( ) ( f f p T R p T M p f Metod:. fltta rotationspunkten till origo 2. rotera 3. fltta tillbaks rotationspunkten Alternatit sätt att tänka:. Bt koordinatsste till ett ed origo i rotationspunkten 2. Rotera 3. Bt tillbaks till gala koordinatssteet Mer naturligt då i senare kodar i OpenGL preious net 39 Do trediensionella priitierna I tre diensioner har i flera olika priitia objekt so: kuror och linjer tor a olika slag olika tper a trediensionella objekt sfär, rätblock, praid, etc preious net 4 I tre diensioner anänder i precis so i 2D hoogena koordinater Däred kan i behandla transforationer på ett unifort sätt Matrisen och representationen a punkterna i 3D blir i stil ed 33 32 3 23 22 2 3 2 t t t transforation.ee preious net 4 Translation t t t So i 2D, fast en diension till So i 2D, fast en diension till preious net 42 Rotation cos sin sin cos kring -aeln kring -aeln cos sin sin cos kring -aeln kring -aeln cos sin sin cos kring -aeln kring -aeln

Rotation kring fipunkt Skalning ed aseende på fipunkt På saa sätt so i 2D. Translatera fipunkten till origo 2. Skala objektet 3. Inertera translationen från. Fltta fipunkt till origo 2. Rotera 3. Fltta tillbaks fipunkt M T ( p f ) R ( ) T ( p f ) Alternatit (so i tidigare sett i 2D):. Bt koordinatsste till ett ed origo i rotationspunkten 2. Rotera 3. Bt tillbaks till gala koordinatssteet preious net 43 Alternatit (so i tidigare sett):. Bt koordinatsste till ett ed origo i fipunkten 2. Skala 3. Bt tillbaks till gala koordinatssteet preious net 44 Projektioner Perspektiprojektion Parallellprojektion Direction of projection projektionscentru preious net 45 preious net 46 Parallella projektioner Perspektiprojektioner projektionsplan projektionscentru preious net 47 preious net 48

Klassiska isualiseringssätt Ortografisk projektion Projektorerna inkelräta ot projektionsplanet preious net 49 preious net 5 Ett tepel och tre ortografiska projektioner a det Aonoetrisk projektion Projektorerna (fortfarande) ortogonala ot projektionsplanet, en projektionsplanet kan ha godtcklig orientering i förhållande till objektet preious net 5 preious net 52 Setriska projektioner O den inkel projektionsplanets noral bildar ed koordinatalarna uppfller issa illkor har projektionen eget nan Dietrisk setrisk ed ed aseende på på tå tå alar alar Trietrisk generella fallet fallet Isoetrisk setrisk ed ed aseende på på alla alla tre tre alarna Oblique projektion Projektorerna parallella en ej ortogonala ot projektionsplanet Specialfall Cabinet (ed djupet hala bredden) preious net 53 preious net 54

Perspekti Utritningsoler och generella projektionstransforationer trepunkts tåpunkts enpunkts I OpenGL anger i isualiseringsol Objekt utanför denna ol klipps bort Man talar o att kaeran har en inkel för isualiseringsplanet (angle of iew) preious net 55 preious net 56 i anger klipplan Den resulterande trunkerade praiden brukar kallas för frustu Alternatia sätt att ange olen Vi kan istället ange oluen geno att ange en inkel och ett förhållande ellan bredd och höjd projection.ee preious net 57 preious net 58 Borttagning a skda tor Proble Agöra ad i scenen so sns från en gien punkt Tper a algoriter Algoriterna är a tå olika huudtper so beror a o do baseras direkt på objektens definition eller deras projektioner. Alternati forulering Agöra ilka delar a scenen so inte sns (, ) Näligen o agörandet sker i: Objektruet Jäför objekt och delar a de för att agöra ad so sns Bildrden Vad so sns agörs piel för piel på projektionsplanet preious net 59 preious net 6

Algoriter i objektruet Också kända so objektprecisionsalgoriter Algorit (principskiss) for (arje objekt i ärlden){ hitta delar a objektet so inte är skda a andra delar eller andra objekt; rita dessa delar} Kopleitet jäföra arje (n) objekt ed arje annat Ds i storleksorningen n 2 jäförelser preious net 6 Algoriter i bildrden Också kända so bildprecisionsalgoriter Algorit (principskiss) for (arje piel i bilden){ hitta det objekt so är närast betraktaren på en projektionslinje geno pieln; rita pieln} Kopleitet (brutal etod) kräer att i för arje piel undersöker alla n objekt för att agöra ilket so är närast, ds för p pilar kräs np jäförelser preious net 62 Vilken tp a algorit är bäst? Man kan tro att objektalgoriter är bättre än bildalgoriter då n < p. Men i objektalgoriter är ofta arje steg betdligt er koplet och tidskräande än i bildalgoriter. Ofta är objektalgoriter också sårare att ipleentera. Objektalgoriter är bättre då i te ill ändra upplösning Bildalgoriter är föruto att do oftast enklare att ipleentera också snabbare. Det finns också algoriter so kobinerar de tå strategierna. Saanfattning: principer för att rita objekt objektorienterade också kända so sortera först För arje objekt rita objektet abildningsorienterade också kända so sortera sist för arje piel tildela en färg preious net 63 preious net 64 Olika fall Ett objekt sker helt ett annat Objekten sker inte arandra Det ena objektet sker delis det andra eller ice ersa Det sista fallet är est koplicerat Borttagning a tor ed noralen riktad bort från betraktaren O projektionscentru i (,, ) är arje plan so uppfller B A + B + C + D < bortriktat Noralen för ett bortriktat plan bildar en icke negati skalärprodukt ed ektorn från projektionscentru till någon punkt på planet A H G C D E F preious net 65 preious net 66

forts O projektionsriktningen är längs -aeln kan i göra ett enklare test geno att enbart betrakta planets noralektorer (A, B, C) O C < så är noralen riktad bort från betraktaren och däred är planet en baksida Snon: djupbuffertalgoriten Idé testa en punkt (, ) i taget tan ed största -koordinat är snlig Z-buffer-algoriten, en bildprecisionsalgorit O ärlden endast består a en enda kone poleder så är testet tillräckligt annars kan frasidor so C och E i figuren ändå ara skda och i åste testa idare i edeltal eliineras i alla fall hälften a torna (, ) preious net 67 preious net 68 -buffer forts Algorit /* Initiera */ sätt alla pilar till bakgrundsfärgen, ds WritePiel(,, bakgrundsfärg); WriteZ(,, ) för arje punkt; /* gå igeno alla polgoner */ for (arje polgon){ for (arje piel i polgonens projektion){ p polgonens -ärde i (, ); if (p > ReadZ(, )){ WriteZ(,, p); WritePiel(,, färg(pol,, )) } } } Vi kan lösa ur A+ B+ C+ D Vi kan utnttja djupkoherens, ds utnttja att en polgon är planär Vi kan konstruera en inkreentell algorit so däred är beräkningsässigt er effekti O polgonen inte är planär kan -ärdet interpoleras fra från olika kantpar preious net 69 preious net 7 -ärdet för en position (, ) fås ur nästa -ärde (ed seplinje i -led) kan sen beräknas ur nästa ärde i -led kan fås på saa sätt, ds D A B C D A B A D A B ( + ) C C eller A C D A B( ) C eller -buffer forts Fördelar enkel att ipleentera snabbheten oberoende a antal polgoner (antal pilar so täcks a iss polgon inskar då antalet polgoner ökar) kan enkelt hantera laers (so inte lagras i -bufferten) kan sparas Proble inneskräande kan klaras a geno att ett band i taget a bilden beaktas objekt långt bort kan arundas (transforeras) till saa -ärde äen o do inte hade gjort det o do ar närare punkten aliasing, arundningar kan ge uppho till att delade kanter kan få olika -ärden. Kan lösas geno att na erte införs. + B C preious net 7 preious net 72