Biografier Kjennetegn Analyse

Transformasjoner på flyet og i rommet. Affine transformasjoner

Bildedannelse og ulike handlinger med den krever en viss matematisk kompetanse fra brukeren. Geometriske konsepter, formler og fakta knyttet til flat og 3D-saker, spille i datagrafikkoppgaver spesiell rolle. Prinsippene for analytisk geometri, kombinert med de stadig voksende mulighetene for datateknologi, er uuttømmelig kilde betydelige fremskritt i utviklingen av datagrafikk, dens effektive bruk i CAD.

Raster- og vektorbilder

Det er to typer bilder: raster og vektor.
Et rasterbilde består av et sett med prikker - piksler (fra den engelske pikselen - PIcture ELement), hver piksel har bestemt farge. Jo tettere pikslene er, desto mindre størrelser, og stor kvantitet farger, jo bedre bildekvalitet. Eksempler på rasterbilder: offset (avis)trykk, bilde på dataskjerm, skannet tegning. Med en god oppløsning på grafiske utdataenheter, veldig høy kvalitet rasterbilder, men dessverre er det ekstremt upraktisk å jobbe med dem, og ved skalering går kvaliteten tapt.
Vektorbildet består i det enkleste tilfellet ikke av punkter, men av et sett med linjestykker, gitte koordinater deres ender. Et slikt bilde skaleres enkelt uten tap av kvalitet og kan enkelt behandles. I nesten alle grafikkpakker som brukes i CAD, presenteres informasjon i vektorform.

Affine transformasjoner på flyet

Anta at et rettlinjet koordinatsystem er introdusert på planet. Deretter er hvert punkt M assosiert med et ordnet tallpar (x, y) dens koordinater (fig. 1). Ved å introdusere et annet rettlinjet koordinatsystem på planet, setter vi i samsvar med det samme punktet M et annet tallpar - (x*, y*).

Overgangen fra et rettlinjet koordinatsystem i planet til et annet er beskrevet av følgende relasjoner:

(*)

hvor er vilkårlige tall relatert til ulikheten:

I fremtiden vil vi som regel vurdere formler (*), i henhold til hvilke punkter på planet blir transformert i et gitt koordinatsystem.

I affine transformasjoner spilles en spesiell rolle av flere viktige spesialtilfeller som har godt sporede geometriske egenskaper.

A. Rotasjon rundt startpunktet med en vinkel j (fig. 2a) er beskrevet av formlene

B. Stretching (kompresjon) langs koordinatakser(Fig. 2b) kan stilles inn som følger:

C. Refleksjon rundt abscisseaksen (fig. 2c) settes ved hjelp av formlene

D. Overføring (fig. 2d) er gitt av forholdene

Som det er bevist i løpet av analytisk geometri, kan enhver transformasjon av formen (*) alltid representeres som en suksessiv utførelse (superposisjon) av de enkleste transformasjonene av formen A, B, C og D.
For effektiv bruk av disse kjente formler i datagrafikkproblemer er matrisenotasjonen mer praktisk. Matrisene for tilfellene A, B og C er enkle å konstruere og har henholdsvis følgende form:

For å løse problemer er det svært ønskelig å dekke alle de fire enkleste transformasjonene (inkludert overføring) ved matrisetilnærmingen, og dermed den generelle affine transformasjonen. Dette kan oppnås ved å beskrive et vilkårlig punkt i flyet, ikke med to koordinater, slik det ble gjort ovenfor, men med en ordnet trippel av tall.

Ensartede punktkoordinater

La M- vilkårlig punkt på flyet med koordinater x Og y beregnet med hensyn til et gitt rettlinjet koordinatsystem. De homogene koordinatene til dette punktet er en hvilken som helst trippel av samtidige tall som ikke er null x1, x2, x3, knyttet til gitte tall x Og y følgende forhold:


Når du løser datagrafikkproblemer, introduseres vanligvis homogene koordinater som følger: et vilkårlig punkt M(x, y) flyet er tildelt et punkt M*(x, y, 1) i rommet (fig. 3).

Ved hjelp av trippel av homogene koordinater og matriser av tredje orden kan enhver affin transformasjon på planet beskrives. Sammenligning av ligning (*) og følgende matrise:

,

det er lett å se at etter å ha multiplisert uttrykkene på høyre side av den siste relasjonen, får man både formler (*) og identiteten 1=1. Dermed er de sammenlignede postene likeverdige.

Affine transformasjoner i rommet

For å utføre romlige konstruksjoner, på samme måte som et todimensjonalt problem, trepunktskoordinater (x, y, z) erstattes med fire tall (x, y, z, 1). Dette gjør det mulig å bruke matrisenotasjon i mer komplekse tredimensjonale problemer.

Enhver affin transformasjon i tredimensjonalt rom kan representeres som en superposisjon av rotasjoner, strekk, refleksjoner og translasjoner. Matematisk reduseres alle transformasjoner til multiplikasjonen av matriser av fjerde orden. For eksempel har rotasjonsmatrisen rundt abscisseaksen ved vinkel j formen:

.

Projeksjonstyper

Bildet av tredimensjonale objekter på bildeplanet er assosiert med et annet geometrisk operasjon- projeksjon ved hjelp av en bunt med rette linjer.

I datagrafikk er det flere forskjellige typer projeksjon. Den mest brukte parallell- og sentralprojeksjonen.

For å få projeksjoner av et objekt på bildeplanet, er det nødvendig å tegne en rett linje fra en gitt projisert stråle gjennom hvert av punktene og deretter finne koordinatene til skjæringspunktet mellom denne rette linjen med bildeplanet. Ved sentral projeksjon kommer alle linjer fra ett punkt - midten av strålen. På parallell projeksjon det antas at bjelkens senter er plassert ved uendelig (fig. 4). Matematisk reduseres projeksjonsoperasjonen også til å multiplisere de tilsvarende matrisene.

La oss ta en vektor på planet (eller i rommet) (fig. 142). Med en affin transformasjon blir punktene henholdsvis overført til punkter som har samme koordinater i forhold til den nye rammen som punktene hadde i forhold til den gamle. Siden koordinatene til en vektor oppnås ved å subtrahere koordinatene til dets startpunkt fra koordinatene til dens ende, er koordinatene til vektoren i forhold til den nye rammen de samme som koordinatene til vektoren i forhold til den gamle rammen. Så:

Med en affin transformasjon er en vektor assosiert med en vektor som har de samme koordinatene i forhold til den nye rammen som vektoren hadde i forhold til den gamle.

Det følger umiddelbart av dette at under den affine transformasjonen like vektorer match er lik, så:

2° En affin transformasjon av et plan (rom) genererer en en-til-en kartlegging på seg selv (transformasjon) av manifold V av alle frie vektorer i planet (henholdsvis av rommet).

Denne transformasjonen har neste eiendom linearitet: hvis, under en gitt transformasjon, vektorene og, v tilsvarer vektorene u, v, vil vektoren tilsvare vektoren, og vektoren vil tilsvare Lie-vektoren (det bevises umiddelbart ved å gå til koordinatene ). Fra egenskapen til linearitet følger, videre:

Hvis for en gitt affin transformasjon vektorer tilsvarer vektorer, da en hvilken som helst lineær kombinasjon

av vektorer tilsvarer en lineær kombinasjon

vektorer (med samme koeffisienter ).

Siden nullvektoren under en affin transformasjon åpenbart tilsvarer null-en, følger det av det som er bevist:

4° Med affin transformasjon lineær avhengighet vektorer er bevart, så alle to kollineære vektorer blir kolineære, alle tre koplanare vektorer blir koplanære).

5° Den inverse transformasjonen til en affin transformasjon er en affin transformasjon.

Faktisk, hvis en gitt affin transformasjon A av planet er gitt av en overgang fra en ramme til en ramme, så er den affine transformasjonen gitt av en overgang fra en ramme til en ramme, som det er lett å se, en transformasjon invers til transformasjon A.

Det samme gjelder plass.

Vi har sett at under en affin transformasjon er den lineære avhengigheten til vektorer bevart. Lagret og lineær uavhengighet vektorer:

6° Under en affin transformasjon A, hvilken som helst lineær Ikke avhengig system deres vektorer, . gått over i et lineært uavhengig - ellers, med en affin transformasjon invers til A, et lineært avhengig system u, . ville bli lineært uavhengig, noe som, som vi vet, er umulig.

Siden rammen er et system av lineært uavhengige vektorer (to i planet, tre i rommet) festet til et gitt punkt O, vil enhver ramme under en affin transformasjon gå over i en ramme. Dessuten er det et forslag

7° Med en affin mapping (gitt av overgangen fra rammen I til rammen ), går en hvilken som helst ramme II til rammen [ og ethvert punkt M (en hvilken som helst vektor i) går til punktet M (til vektoren ) med det samme koordinater i forhold til rammen , som er punktet M og vektoren og hadde i forhold til rammen II.

Beviset i tilfelle av et fly og i tilfelle av plass er det samme. Vi begrenser oss til tilfellet med et fly. La II være rammen (fig. 143), og la rammen først være et utsagn om vektorer. Hvis vektoren og har koordinater i forhold til rammen, så . Men da er bildet av vektoren, ved egenskap 3°, vektoren

ha koordinater i forhold til benchmark. La punktet M ha koordinater i forhold til rammen.

Så, så, i henhold til forrige, med hensyn til rammen, har sektoren OM, og dermed punktet M, koordinater. Påstanden er bevist.

Det beviste utsagnet er essensielt: det følger av det at, etter å ha spesifisert en affin transformasjon ved å gå fra en ramme til rammen, kan vi spesifisere den ved å ta en hvilken som helst ramme som den første og spesifisere rammen den må passere til.

Som en anvendelse av bemerkningen som nettopp ble gjort, beviser vi at produktet av to affine transformasjoner er en affin transformasjon.

Faktisk, la en affin transformasjon gis ved å gå fra en ramme I til en ramme II. Vi kan, i henhold til det som nettopp er bevist, definere en affin transformasjon ved å gå fra ramme II til en eller annen ramme III. Da er den affine transformasjonen gitt av overgangen fra rammen I til rammen III, åpenbart produktet av transformasjonen og transformasjonen.

Merknad 1. De nettopp påviste egenskapene til 1° - 7° affine transformasjoner gjelder åpenbart for affine kartlegginger av ett plan til et annet (av ett tilfelle tredimensjonalt rom en annen).

Den identiske transformasjonen av et plan, henholdsvis rom, er åpenbart en affin transformasjon. Husk at en transformasjon invers til en affin en er en affin en. Til slutt, som vi nettopp har bevist, er produktet av to affine transformasjoner en affin transformasjon. Av dette følger umiddelbart - på grunnlag av vilkåret gitt i § 6 6. ledd vedlegg - følgende hoved

Teorem 1. I gruppen av alle plane (rom) transformasjoner danner affine transformasjoner en undergruppe.

Blant affine transformasjoner kjennetegnes bevegelser ved at de kan spesifiseres ved å gå fra en rektangulært system koordinater til en annen, også rektangulære og har samme skala. Den inverse transformasjonen til bevegelse er bevegelse, og produktet av to bevegelser er bevegelse. Fordi identitetstransformasjon Det er spesielt tilfelle bevegelse, da (i fullstendig analogi med setning 1) har vi også

Teorem 1. I gruppen av alle affine transformasjoner danner bevegelsene en undergruppe.

Vi fortsetter å liste opp de enkleste egenskapene til affine transformasjoner og tilordninger.

Tre punkter er kollineære (det vil si at de ligger på samme linje) hvis og bare hvis vektorene er kollineære. Og siden kollineariteten til vektorer er bevart under en affin transformasjon, blir kollinariteten til punktene også bevart. Det følger av dette:

Under en affin kartlegging (av et plan eller rom) blir en rett linje en rett linje.

Vi vil nå gi et nytt bevis på dette faktum.

La en affin kartlegging gis. Den består i at hvert punkt M med koordinater (i koordinatsystemet ) går til punktet M, som har de samme koordinatene i det andre systemet . Dette innebærer:

9° Med en gitt affin kartlegging (definert av overgangen fra rammen , til rammen ), går settet av alle punkter hvis koordinater (i koordinatsystemet ) tilfredsstiller en viss ligning, inn i settet med punkter hvis koordinater i systemet tilfredsstiller samme ligning.

Spesielt den rette linjen med ligningen

(i systemet ) vil gå inn i en rett linje som har samme ligning, men bare i koordinatsystemet .

På samme måte, med en affin transformasjon av rom (definert av overgangen fra ramme til ramme), et plan som har ligningen i systemet

går inn i et plan med samme ligning (2), men bare i koordinatsystemet .

En rett linje gitt i rommet av dens "generelle ligning"

eller en eller annen av dens spesielle varianter, for eksempel den kanoniske ligningen

under en gitt affin transformasjon vil den gå inn i en rett linje som har de samme ligningene, men bare i koordinatsystemet . Så bevist

Teorem 2. Under en affin transformasjon av henholdsvis et plan av rommet, går rette linjer over i rette linjer, fly går over i plan.

Dette opprettholder parallelliteten.

Faktisk, hvis to linjer (eller to plan, eller en linje og et plan) er parallelle, så tilfredsstiller deres likninger med hensyn til rammen de kjente vilkårene for parallellitet; men bildene av disse rette linjene (planene) har de samme ligningene for rammen, og tilfredsstiller derfor de samme parallellitetsbetingelsene.

Merknad 2. Bevaring av parallellitet under en affin transformasjon kan også utledes ved å bruke det faktum at en affin transformasjon er en-til-en.

Faktisk, for enhver en-til-en-kartlegging (for eksempel av et mellomrom på seg selv), er bildet av skjæringspunktet mellom to (hvilken som helst) sett skjæringspunktet mellom bildene til disse settene.

Derfor blir to kryssende sett under en en-til-en-kartlegging til kryssende sett.

Det følger at under en affin transformasjon av et plan er det to parallelle linjer, og under en affin kartlegging av rommet er det to parallelle plan gå til parallell egenskapen parallellitet mellom linjen og planet er også bevart.

La to parallelle linjer gis i rommet; de ligger i samme plan og krysser ikke hverandre. Under en affin transformasjon av rommet blir disse to linjene to linjer som også ligger i samme plan og ikke krysser hverandre, dvs. to parallelle linjer.

Teorem 3. Med en affin transformasjon av planet (mellomrommet), som transformerer linjen d til en linje, går linjestykket d inn i et linjestykke og punktet M til linjen d, deler segmentet inn i denne respekten K, går til poenget

M rett linje d, deler segmentet i samme forhold (fig. 144).

Bevis. Siden vi for positiv A. får poeng som ligger innenfor segmentet (henholdsvis, og for negativ A. - utenfor dette segmentet), innebærer den andre påstanden i setning 3 den første. Vi beviser den andre påstanden i setning 3, og begrenser oss til tilfellet av et fly La (i koordinatsystemet ) vi har

Siden punktet M deler segmentet i forhold til , da

i verdensrommet vil disse likhetene få selskap av likheten. Med denne affine transformasjonen vil punktene gå til punkter med samme koordinater som punktene , men bare i koordinatsystemet . Disse koordinatene er fortsatt forbundet med relasjoner (3), hvorfra det følger at segmentet MM deler seg i forhold til . Dette beviser teorem 3.

La, under en affin transformasjon A av rommet, flyet kartlegges på planet . La oss ta en ramme i planet, dvs. et par ikke-kolliderte vektorer påført til et punkt o (fig. 145). Under transformasjonen A vil punktet om planet gå til punktet om planet, ikke-kollineære vektorer vil gå inn i ikke-kollineære vektorer, det vil si at rammen fra planet vil gå til rammen av planet.

I dette tilfellet vil enhver vektor som ligger i planet gå over i en vektor som ligger i planet med de samme koordinatene i forhold til rammen som vektoren hadde i forhold til rammen. Det følger av dette at et hvilket som helst punkt M i planet vil gå til et punkt M i planet, som har samme koordinater i forhold til rammen som punktet M hadde i planet i forhold til rammen. Teorem 4. La, under en affin transformasjon av rommet, planet i passerer inn i planet . Deretter kartlegger transformasjonen A en vilkårlig ramme av planet til en ramme av oaplanet og tildeler hvert punkt M av planet et punkt M av planet som har, med hensyn til rammen, de samme koordinatene som punktet M hadde med respekt for rammen. Med andre ord: transformasjonen A genererer en affin kartlegging av et plan på et plan.

Transformasjoner på flyet og i rommet

I datagrafikk, alt relatert til flat sak Det er vanlig å betegne 2D (2-dimensjonal) todimensjonal, og alt relatert til romlig - 3D.

Affine transformasjoner på flyet

Affinis - relatert (lat). Fordi figurene er bevart under affine transformasjoner.

Anta at det er et rettlinjet koordinatsystem (OXY). Deretter kan hvert punkt M assosieres med et par koordinater (x, y). Ved å introdusere et annet koordinatsystem O * X * Y * , kan du sette et annet koordinatpar (x * ,y *) på samme punkt M. Overgang fra ett system til et annet:

x * =ax+by+c, med betingelsen |a b|¹0

y *=dx+ey+f |d e|

Disse formlene kan vurderes på to måter, enten lagres punktet og koordinatsystemet endres, eller koordinatsystemet lagres og punktet endres. I fremtiden vil disse formlene betraktes nettopp som en transformasjon av punkter i et gitt koordinatsystem. Dessuten vil alle systemene som vurderes være rektangulære (formlene tillater også arbeid med ikke-rektangulære).


Det skal bemerkes at koordinatene til punktet M kan representeres som en vektor fra origo med koordinatene Mx,My.

Deretter kan transformasjonen skrives i vektorform (dette gjelder bare for et rektangulært koordinatsystem).

M*=((M-O*)X*,(M-O*)Y*)

Hvor O*-koordinater for opprinnelsen til det andre systemet i koordinatene til det første. X*,Y* - orts (direktører for vektoren) til det andre koordinatsystemet i koordinatene til det første.

a=(Xx*), b=(Xy*),c=-O*X*

d=(Yx*), e=(Yy*),f=-O*Y*

Denne transformasjonen kan også skrives inn matriseform

, eller , hvor vektorene betraktes som matriser av formen 1´2.

Elementet Cij i matrisen C=AB er summen av produktene av elementene i den i-te raden i matrisen A og elementene i den j-te kolonnen i matrisen B.

Invers transformasjon - løsning av et system med lineære ligninger, eller bruk den inverse matrisen , men for tilfellet når systemet er representert ved orts, kan det være enklere. Med denne saken invers matrise er lik det transponerte.

Affin transformasjon - geometrisk transformasjon plan eller rom ĸᴏᴛᴏᴩᴏᴇ kan oppnås ved å kombinere rotasjon, translasjon, speilrefleksjoner og skalering i retningene til koordinataksene.

Rotasjon (R - rotasjon). Rundt origo i vinkel a.

x*=x*cosa-y*sina

y*=x*sina+y*cosa

Spenning, kompresjon langs koordinataksene (D - dilatasjon).

Refleksjon (M - speil). I forhold til abscisseaksen.

Overføring (T - oversettelse).

Overføringen kan ikke representeres som produkter av en vektor med en matrise, men den kan representeres som en sum av vektorer.

I løpet av analytisk geometri er det bevist at enhver transformasjon kan representeres som en suksessiv utførelse (superposisjon) av disse enkleste transformasjonene.

Noen ganger er det praktisk å representere alle transformasjoner i en enkelt matriseform; for dette brukes homogene koordinater.

Homogene koordinater

For punkt M med x,y koordinater på planet er de homogene koordinatene tripletten av tallene x1,x2,x3, samtidig ulik null og relatert til relasjonene x1/x3=x, x2/x3=y. Et punkt med koordinatene x,y på planet tilsvarer et punkt xh,y,h,h i et homogent rom, vanligvis h=1 (x,y,1).

Den generelle transformasjonen av punkter i homogene koordinater kan skrives som

Og de grunnleggende transformasjonsmatrisene vil se slik ut:

kombinasjon av transformasjoner.

Anta at vi må rotere et punkt med en vinkel rundt et punkt A.

Begynn å flytte punkt A til origo (-Axe, -Ay). Neste sving. Overfør deretter tilbake til punkt A. (Ax,Ay). Du kan få en enkelt transformasjon

Affine transformasjoner i rommet

I 3D-rom er et punkt (vektor) representert av tre koordinater (x,y,z), eller fire homogene koordinater (x,y,z,1).

Begrepene venstre og høyre trippel av vektorer bør introduseres. Tre vektorene a,b,c danne en rett trippel hvis, etter å ha kombinert begynnelsen av vektorene, den korteste svingen fra a til b ser ut for en observatør som ser fra enden av vektoren c som går mot klokken. regel høyre hånd– vektor a er på linje med albuen, vektor b er inkludert i håndflaten, vektor c er på linje med tommel. Det er vanlig å kalle et koordinatsystem rett hvis retningsvektorene danner en rett trippel.

Kryssproduktet c=a´b, c er en vektor vinkelrett på begge vektorene, danner en rett trippel med dem.

Cx=Ay*Bz-Az*By, Cy=Az*Bx-Ax*Bz, C z=Ax*By-Ay*Bx

Transformasjonene forblir de samme: rotasjon (bare nå rundt tre akser), strekking, refleksjon (med hensyn til tre plan), translasjon.

Rotasjon mot klokken, hvis sett fra origo for venstre koordinatsystem (for høyre - omvendt).

, ,

,

, ,

For eksempel må du bygge en rotasjonsmatrise om en rett linje med direkte vektor L som går gjennom punkt A.

1. Overfør A til origo

2. Justering av linjen med X-aksen.

Roter først rundt x-aksen

vinkel a , cosa=Lz/d, sina=Lx/d, hvor d=

Hvis d=0, så faller linjen allerede sammen med X-aksen.

Deretter roteres rundt Y-aksen med vinkel b.

Den roterte vektoren er (Lx,Ly,Lz,1)=(Lx,0,d,1).

cosb=Lx, sinb=d

3. Roter rundt X-aksen med ønsket vinkel

4. Gå tilbake til L-aksen,

5. Overfør til punkt A

Den generelle matrisen vil vise seg

Transformasjon til et koordinatsystem gitt av orts

Hvis systemet er gitt av en trippel av gjensidig perpendikulære vektorer X*,Y*,Z*.

, invers transformasjon er den transponerte matrisen [R] T

Design

Design er kritisk i utgangspunktet for å vise 3D-objekter på en flatskjerm, men det finnes andre bruksområder, for eksempel skygger.

Det er to mest brukte typer design parallelt og sentralt (perspektiv).

Når du projiserer et objekt på et plan, er det nødvendig å tegne en rett linje fra en gitt strålestråle gjennom hvert punkt på objektet og finne skjæringspunktet mellom denne linjen og planet.

I parallell projeksjon består strålen av parallelle linjer; i sentral projeksjon passerer den gjennom et bestemt punkt.

Parallelle projeksjoner kan deles inn i to typer, når strålelinjene er vinkelrette på projeksjonsplanet - projeksjonene kalles aksonometriske, og når ikke, skrå (vi vil ikke vurdere slike projeksjoner).

For å få en aksonometrisk parallellprojeksjon av et objekt på skjermen, må du matche stråleretningen med en av aksene (vanligvis Z). X- og Y-aksene vil falle sammen med aksene X,Y på skjermen, og Z-aksen vil bli rettet dypt inn i skjermen.

For å få en perspektivprojeksjon av et punkt, er det ekstremt viktig å plassere stråleforsvinningspunktet ved origo for koordinatene, for å justere retningen til skjermen (vinkelrett fra forsvinningspunktet til projeksjonsplanet) med Z-aksen, deretter Xp =X*d/Z, Yp=Y*d/Z, hvor d er avstanden fra origo til koordinatene til designplanet.

Denne transformasjonen kan skrives som en matrise. ,

Det eneste er at dybden (z) går tapt i en slik transformasjon, men den kan beregnes fra den siste koordinaten til vektoren.

I tillegg til disse designtransformasjonene er det viktig å lage noen flere for at bildet skal se rett ut på skjermen. Først av alt må det strekkes til størrelsen på vinduet, for det andre må det speiles rundt X-aksen (fordi Y-aksen vanligvis er rettet ned), og for det tredje må den flyttes til midten av vinduet.

Den generelle transformasjonsmatrisen ser slik ut.

Cx,Cy - koordinatene til skjermsenteret.

ratio - forholdet mellom Y-størrelsen og X-størrelsen, forskjellig for forskjellige skjermoppløsninger. Oppløsning - antall poeng per overflateenhet, in denne saken enhet - hele skjermen på skjermen. LCD-skjermen har et forhold mellom horisontal og vertikal størrelse på 4/3, i denne forbindelse, for oppløsninger med antall horisontale og vertikale prikker som er et multiplum av dette tallet, ratio=1 (for eksempel 640/480). Ellers forhold=(4*størrelse)/(3*størrelse) (320x200 =0,83).

S - skalafaktor, for parallellprojeksjon velges manuelt, for perspektivprojeksjon S er lik én, men d (avstand til projeksjonsplanet) beregnes fra synsfeltet FOV (synsfelt). FOV- maksimal vinkel, som danner rette linjer i strålen, synsvinkelen.

FOV varierer vanligvis fra 50° til 100°, FOV for det menneskelige øyet er 90°.

Verdens-, modell- og skjermkoordinatsystemer

Verden - hovedkoordinatsystemet der alle objekter i scenen er satt.

Modell er et koordinatsystem der den interne strukturen til objekter er spesifisert.

Skjerm - koordinatsystemet til observatøren, det kalles også kamerakoordinatsystemet.

Modellen er vanligvis plassert i modellsystemet på en slik måte at sentrum av systemet faller sammen med enten det geometriske eller massesenteret til modellen, X-aksen faller sammen med retningen fremover, Y-aksen er til høyre, og Z-aksen er opp.

Modellen er spesifisert i verdenskoordinatsystemet av koordinatene til modellsenteret M (vektor) og orientering (enten med tre enhetsvektorer eller med tre vinkler rull (X), stigning (Y), overskrift (Z), matrisen er dannet som en sekvens av rotasjoner). For å transformere fra modellkoordinater må du først rotere i henhold til orienteringsmatrisen og deretter oversette til .

Overskriften Roll Pitch

Posisjonen og orienteringen til kameraet kan stilles inn på nøyaktig samme måte som posisjonen til modellen. Men ofte er bare retningen på kameraets visning tilstrekkelig. Vanligvis (i det virkelige liv) kameraet ruller ikke, ᴛ.ᴇ. x-aksen (høyre) er alltid horisontal, og yz-planet er derfor alltid vertikalt.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, hvis vi antar at Z-aksen til kameraet (visningsretningen) ikke er vertikal, så kan vi finne X=Norm(Z´Up)-aksen, der Up(0,0,1) er vertikalen vektor (X vil være vinkelrett vertikal vektor opp, som betyr horisontal). Til slutt Y=X´Z-aksen (opp). Sørg for at systemet forblir til venstre.

For å konvertere punkter fra verdenssystemet til skjermpunkter, er det viktig å først bruke translasjon og deretter rotere med den transponerte kameraorienteringsmatrisen T .

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, for å konvertere et punkt fra modellkoordinater til skjermkoordinater, er det ekstremt viktig å utføre følgende transformasjon T . Etter slike transformasjoner vil Z-aksen bli rettet langs synsretningen, og du kan gjøre projeksjonen.

Forelesning 6-7-8

Transformasjoner på planet og i rommet - konseptet og typene. Klassifisering og funksjoner i kategorien "Transformasjoner på flyet og i rommet" 2017, 2018.

Når du arbeider med tredimensjonale objekter, er det ofte nødvendig å utføre ulike transformasjoner i forhold til dem: flytte, rotere, komprimere, strekke, skrå, etc. Men i de fleste tilfeller kreves det at visse egenskaper er bevart etter påføring av disse transformasjonene.

Definisjon. Plantransformasjonen kalles affine(fra engelsk . affinitet - slektskap), Hvis

  • det er en-til-en;
  • bildet av en linje er en linje.

Transformasjonen kalles en-til-en, Hvis

  • forskjellige punkter går over i forskjellige;
  • et poeng går til hvert punkt.

Egenskaper til en affin transformasjon i tredimensjonalt rom:

  • kartlegger et n-dimensjonalt objekt til et n-dimensjonalt: punkt til punkt, linje til linje, overflate til overflate;
  • opprettholder parallelliteten til linjer og fly;
  • bevarer proporsjonene til parallelle objekter - lengden av segmenter på parallelle linjer og områder på parallelle plan.

Enhver affin transformasjon er gitt av en 3x3 matrise med ikke-null determinant og en translasjonsvektor:

La oss se på dette i form av matematikk. R er en matrise av en lineær operator over et rom med tredimensjonale vektorer. Vektoren T er nødvendig for å implementere parallell translasjon: hvis vi multipliserer (000) med en hvilken som helst 3x3 matrise, får vi igjen (000) - opprinnelsen til koordinatsystemet, i forhold til transformasjonen R , er et fast punkt. Kravet om at determinanten ikke skal være null er diktert av definisjonen. Faktisk, hvis determinanten til matrisen R er lik null, går hele rommet inn i et plan, en linje eller et punkt. Dermed samsvarer den ikke gjensidig unikhet.

I praksis er det praktisk å spesifisere en affin transformasjon med en enkelt matrise. Dette bruker de homogene koordinatene introdusert i forrige artikkel. Den affine transformasjonen vil bli gitt av følgende 4x4 matrise:

Merk at de tre første verdiene i den siste raden er 0. Dette er nødvendig betingelse at transformasjonen er affin. Generelt sett definerer en vilkårlig 4x4-matrise en projektiv transformasjon. Slike transformasjoner, som du kanskje gjetter ut fra navnet, brukes til å projisere en tredimensjonal scene. Dette vil bli dekket mer detaljert i en senere artikkel.

Vurder spesielle tilfeller av affine transformasjoner.

Merk. Her og i det følgende vil vi bruke koordinatsystemet som er introdusert som følger:

  • koordinatsystem høyre;
  • z-aksen er rettet mot observatøren, vinkelrett på skjermens plan;
  • y-aksen er i skjermens plan og er rettet oppover;
  • x-aksen er i skjermens plan og er rettet mot høyre.

Vi vil dvele på dette mer detaljert når vi vurderer den geometriske rørledningen.

Transformasjonsmatrisen ser slik ut:

I dette tilfellet er matrisen R = E , identitetsmatrisen.

Transformasjonene diskutert nedenfor påvirker bare matrisen R, så bare den vil bli indikert.

Snu (roter)



Hvis rotasjonene på et plan ble gjort rundt et bestemt punkt, blir rotasjonene foretatt rundt en bestemt vektor i tredimensjonalt rom. Før du går videre til konstruksjonen av rotasjonsmatrisen rundt vilkårlig vektor, la oss vurdere spesielle tilfeller av rotasjoner rundt koordinataksene.

Merk. Roter rundt en vilkårlig vektor ikke lik rotasjon rundt en vilkårlig rettet linje.



Merk at når du roterer rundt y-aksen, endres ikke ordinatene til punktene (y-koordinatene). Det er også verdt å merke seg at x- og z-koordinatene til et punkt konverteres uavhengig av y-koordinaten. Dette betyr at et hvilket som helst punkt p (x , y , z ) vil gå til punkt p ’(x ’(x , z ), y , z ’(x , y )) . Nå gjenstår det å forstå hvordan x- og z-koordinatene transformeres: i Oxz-planet vil dette være en rotasjon med klokken rundt opprinnelsen til koordinatene (fordi x z y er venstre trippel), dvs. i negativ retning. Matrisen til en slik transformasjon er kjent (se Rotasjon av planet):



Transformasjonsmatrise R y (φ y ):

Roter rundt x- og z-aksene



Ved analogt resonnement kan man få matrisene til rotasjonene R x (φ x ) og R z (φ z ) rundt henholdsvis x- og z-aksene.

Her er de endelige resultatene:

Det er lett å se at determinantene til matrisene R x , R y , R z er lik 1 . Dessuten har rotasjonsmatrisene R rot egenskapen ortogonalitet: R T R = RR T = E . Av dette følger i sin tur nyttig eiendom at inversjonen av rotasjonsmatrisen kan erstattes med en transposisjon: R -1 (φ ) = R T (φ ) .

Skalering (klem/strekk, refleksjon)



Kompresjons-/ekspansjonskoeffisientene, analogt med todimensjonalt rom, bestemmes av de diagonale leddene til matrisen R:

Resultat:



Kombinasjonen av koeffisientene s x = -1, s y = 1, s z = 1 vil sette refleksjonen fra planet Oyz (x = 0) . For s x = s y = s z = -1 får vi sentral symmetri om origo.

Tolkning av matrisen R

Tenk på hva matrisen R er fra lineær algebras synspunkt. Det viser seg at matrisen R inneholder en basis nytt system koordinater.

Faktisk matrisen

(R 11 R 12 R 13 )

(R 21 R 22 R 33 )

(R 31 R 32 R 33 )

oversetter vektorene til det kartesiske grunnlaget:

(100) → (R 11 R 21 R 31 )

(010) → (R 12 R 22 R 32 )

(001) → (R 13 R 23 R 33 )



Nå er det enkelt å få fastransformasjonen. For eksempel:

Merk. Hvis vi holder oss til den allment aksepterte terminologien, kalles transformasjonen ovenfor et skifte. skift (klippe) det vil være enhver transformasjon hvis hoveddiagonal av matrisen R er enhet. Hvis determinanten til matrisen R er lik null, er transformasjonen ikke affin.

Komplekse affine transformasjoner

Komplekse affine transformasjoner kan oppnås som en kombinasjon av enkle (elementære) transformasjoner. I dette tilfellet kan enkle affine transformasjoner velges på forskjellige måter. For eksempel kan rotasjon betraktes som en kombinasjon av skalering og skjæring. Men for enkelhets skyld vurderes også rotasjon elementær transformasjon. En rotasjon rundt en vilkårlig vektor er representert som en kombinasjon av rotasjoner rundt koordinataksene. Dette vil bli diskutert i detalj i neste artikkel.

5. GEOMETRISKE TRANSFORMASJONER

Å vise et bilde på skjermen og ulike handlinger med det, inkludert visuell analyse, krever en viss geometrisk kompetanse fra brukeren. Geometriske konsepter, formler og fakta, primært relatert til flyet og tredimensjonale tilfeller, spiller en spesiell rolle i datagrafikkproblemer. Geometriske betraktninger, tilnærminger og ideer, kombinert med datateknologiens stadig voksende kapasitet, er en uuttømmelig kilde til betydelige fremskritt i utviklingen av datagrafikk, dens effektive bruk i vitenskapelig og annen forskning. Noen ganger gir selv de enkleste geometriske teknikkene merkbar fremgang på individuelle stadier av å løse et stort grafisk problem.

5.1. Transformasjoner på flyet og i rommet

For å løse slike problemer som bevegelse av objekter og deres deler, brukes kamerakontroller affine transformasjoner(AP), vurder hovedegenskapene deres:

1) punkter som ligger på samme linje, etter transformasjonen, ligger på samme linje;

2) Kryssende linjer forblir kryssende, og parallelle linjer forblir parallelle;

3) under AP-rom forblir kryssende plan kryssende, parallelle - parallelle og kryssende - kryssende;

4) AP bevarer forholdet mellom arealene til to kvadrater i planet og forholdet mellom volumene til to terninger i rommet.

Affine transformasjoner på flyet

Anta at det er gitt et rettlinjet koordinatsystem på planet. Da tilsvarer hvert punkt M et ordnet tallpar (x, y) av dets koordinater (fig. 5.1). Ved å introdusere et annet rettlinjet koordinatsystem på planet, forbinder vi det samme punktet M med et annet tallpar - (x *, y *).

Overgangen fra et rettlinjet koordinatsystem i planet til et annet er beskrevet av følgende relasjoner:

x* = α x+ β y+ λ ,

y* = γ x+ δ y+ µ ,

hvor α , β , λ , γ , µ , δ er vilkårlige tall relatert til ulikheten

α β ≠ 0.

γ δ

Formler (1) kan vurderes på to måter: enten lagres punktet og koordinatsystemet endres (Figur 5.2) (i dette tilfellet forblir et vilkårlig punkt M det samme, bare koordinatene endres), eller punktet endres og koordinatsystemet lagres (Figur 5.3) (i dette tilfellet definerer formler (1) en tilordning som transformerer et vilkårlig punkt M (x, y) til et punkt M * (x *, y *), hvis koordinater er definert i samme koordinatsystem).

Ris. 5.1. Første

Ris. 5.2. Forvandlet

Ris. 5.3. Forvandlet

koordinatsystem

punkt

I I det følgende vil vi som regel vurdere formler (1), i henhold til hvilke punkter i planet er transformert i et gitt system av rettlinjede koordinater.

I I affine transformasjoner av planet spilles en spesiell rolle av flere viktige spesialtilfeller som har veldefinerte geometriske egenskaper. Når du forsker geometrisk sans koeffisienter i formler (1) for disse tilfellene er det praktisk å anta at gitt system koordinatene er rektangulære kartesiske.

1. Roter rundt startpunktet med en vinkelϕ er beskrevet av formlene

x * = x cosϕ − y sinϕ ,

y * = x sinϕ + y cosϕ .

2. Strekk (kompresjon) langs koordinataksene kan stilles inn som følger:

x * = α x , y * = δ y , α > 0, δ > 0.

Strekk langs abscisse-aksen er gitt under forutsetning av at α > 1, og kompresjon - ved 0<α < 1.

3. Refleksjon (i forhold til x-aksen) settes vha

x *= x ,y *= − y .

4. Parallell overføring er gitt av forholdstallene

x* = x+ λ, y* = y+ µ.

Valget av disse fire spesielle tilfellene avgjøres av to forhold.

1. Hver av de ovennevnte transformasjonene har en enkel og klar geometrisk betydning (de konstante tallene inkludert i formlene ovenfor er også utstyrt med en geometrisk betydning).

2. Som det er bevist i løpet av analytisk geometri, kan enhver transformasjon av formen (1) alltid representeres som

påfølgende utførelse av de enkleste transformasjonene. For effektiv bruk av disse velkjente formlene i

Dachas av datagrafikk mer praktisk er deres matrisenotasjon. Matrisene som tilsvarer tilfellene A, B og C er enkle å konstruere og har henholdsvis følgende form:

cosϕ

sinϕ

− sinϕ

cosϕ

−1

For å løse problemene som vurderes nedenfor, er det imidlertid svært ønskelig å dekke med matrisetilnærmingen alle de fire enkleste transformasjonene (inkludert overføring), og derav den generelle affine transformasjonen. Dette kan for eksempel oppnås på følgende måte: gå til beskrivelsen av et vilkårlig punkt i flyet, ikke ved et ordnet tallpar, som ble gjort ovenfor, men ved en ordnet trippel av tall.

Ensartede punktkoordinater

La М være et vilkårlig punkt i planet med koordinater uy beregnet i forhold til et gitt rettlinjet koordinatsystem. De homogene koordinatene til dette punktet er en hvilken som helst trippel av samtidig ikke-null tall x 1 , x 2 , x 3 assosiert med de gitte tallene x og y ved følgende relasjoner:

x 1/ x 3= x , x 2/ x 3= y .

Ved løsning av datagrafikkproblemer introduseres vanligvis homogene koordinater som følger: et vilkårlig punkt M (x, y) i planet er assosiert med et punkt M * (x, y, 1) i rommet (fig. 5.4).

Legg merke til at et vilkårlig punkt på linjen som forbinder origo, punktet O (0, 0, 0) med punktet M * (x, y, 1), kan gis av en trippel av tall på formen (hx, hy , h).

Ris. 5.4. Homogene koordinater

Vi vil anta at h ≠ 0. Vektoren med koordinatene hx, hy, h er retningsvektoren til den rette linjen som forbinder punktene 0(0, 0, 0) og M *(x, y, 1). Denne linjen skjærer planet z \u003d 1 i punktet (x, y, 1), som unikt bestemmer punktet (x, y) til koordinatplanet xy.

Således, mellom et vilkårlig punkt med koordinater (x, y) og et sett med tripler av tall på formen (hx, hy, h) ved h ≠ 0, etableres en (en-til-en) korrespondanse, som lar oss å betrakte tallene hx, hy, h som nye koordinater for dette punktet.

I projektiv geometri er følgende notasjon akseptert for homogene koordinater: x : y : 1 eller x 1 : x 2 : x 3 (tallene x 1 , x 2 , x 3 forsvant ikke samtidig).

Bruken av homogene koordinater viser seg å være praktisk selv når du løser de enkleste problemene, for eksempel skalering:

1) et punkt med homogene koordinater (0,5; 0,1; 2,5) h=1 kan ikke representeres med heltallskoordinater, men for eksempel ved valg av h= 10 får vi (5; 1; 25);

2) slik at resultatene av transformasjonen ikke fører til aritmetisk overløp, for et punkt med koordinater

(80000;40000;1000) kan du ta for eksempel h= 0,001. I re-

Resultatet er (80;40;1).

Eksemplene som er gitt viser nytten av å bruke homogene koordinater i beregninger. Hovedformålet med å introdusere homogene koordinater i datagrafikk er imidlertid deres utvilsomt praktiske bruk ved geometriske transformasjoner.

Ved hjelp av trippel av homogene koordinater og matriser av tredje orden kan enhver affin transformasjon av planet beskrives.

Faktisk, forutsatt at h = 1, sammenligner vi to oppføringer: merket med * og følgende, matrise:

(x * y * 1)= (x y 1)

Det er lett å se at etter å ha multiplisert uttrykkene på høyre side av den siste relasjonen, får vi både formler (1) og riktig numerisk likhet 1 ≡ 1. Dermed kan de sammenlignede oppføringene betraktes som ekvivalente.

Elementene i en vilkårlig matrise av en affin transformasjon har ikke en eksplisitt geometrisk betydning. Derfor, for å implementere en bestemt kartlegging, det vil si å finne elementene i den tilsvarende matrisen i henhold til en gitt geometrisk beskrivelse, er det nødvendig med spesielle teknikker. Vanligvis er konstruksjonen av denne matrisen, i samsvar med kompleksiteten til problemet under vurdering, delt inn i flere stadier.

På hvert trinn er det funnet en matrise som tilsvarer en eller annen av de ovennevnte tilfellene A, B, C eller D, som har veldefinerte geometriske egenskaper.

La oss skrive ut de tilsvarende matrisene av tredje orden.

A. Rotasjonsmatrise

B. Strekkmatrise

cosϕ

sinϕ

(kompresjon) (dilatasjon)

cosϕ

= − sinϕ

D. Overføringsmatrise (oversettelse)

B. Refleksjonsmatrise (re-

− 1 0 .

Tenk på eksempler på affine transformasjoner av planet.

Eksempel 1. Bygg en rotasjonsmatrise

rundt punktet A(a, b) i en vinkel ϕ (fig. 5.5).

A (-a,

innrettingssenter

snu

koordinater.

2. trinn. Roter med en vinkel ϕ.

A(a,

Ris. 5.5. Sving

retur av rotasjonssenteret til sin forrige posisjon; matrisen til den tilsvarende transformasjonen.

cosϕ

sinϕ

= − sinϕ

cosϕ

−A

-en

−b

Vi multipliserer matrisene i samme rekkefølge som de er skrevet ut: . Som et resultat får vi at den ønskede transformasjonen (i matrisenotasjon) vil se slik ut:

sinϕ

sinϕ

(x * y * 1)= (x y 1) ×

− sinϕ

cosϕ

− a cosϕ + b sinϕ + a

− a sinϕ − b cosϕ + b

Elementene i den resulterende matrisen (spesielt i den siste raden) er ikke lett å huske. Samtidig kan hver av de tre multipliserte matrisene enkelt konstrueres fra den geometriske beskrivelsen av den tilsvarende kartleggingen.

Eksempel 2. Konstruer en strekkmatrise med strekkfaktorer α langs abscissen og β langs ordinaten og sentrert i punktet A(a, b).

1. trinn. Overfør til vektor A (-a, -b) for å justere strekningssenteret med origo.

2. trinn. Strekk langs koordinataksene med koeffisientene α og β, henholdsvis.

3. trinn. Overfør til vektor A (a, b) for å returnere strekksenteret til sin forrige posisjon; matrisen til den tilsvarende transformasjonen.