Biografije Karakteristike Analiza

Transformacije na ravni i u prostoru. Afine transformacije

Formiranje slike i razne radnje s njom zahtijevaju određenu matematičku pismenost od korisnika. Geometrijski koncepti, formule i činjenice vezane za ravan i trodimenzionalne slučajeve igraju posebnu ulogu u problemima kompjuterske grafike. Principi analitičke geometrije, u kombinaciji sa sve širim mogućnostima kompjuterske tehnologije, nepresušni su izvor značajnog napretka u razvoju kompjuterske grafike, njene efektivne upotrebe u CAD-u.

Rasterske i vektorske slike

Postoje dvije vrste slika: rasterske i vektorske.
Rasterska slika se sastoji od skupa tačaka - piksela (od engleskog pixel - PIcture ELEment), svaki piksel ima određenu boju. Što su pikseli gušći, što je njihova veličina manja i što je veći broj boja, to je kvalitet slike veći. Primeri rasterskih slika: ofset (novinska) štampa, slika na ekranu računara, skenirani crtež. Uz dobru rezoluciju grafičkih izlaznih uređaja postiže se vrlo visok kvalitet rasterskih slika, ali je, nažalost, rad s njima izuzetno nezgodan, a kvalitet se gubi prilikom skaliranja.
U najjednostavnijem slučaju, vektorska slika se ne sastoji od tačaka, već od skupa linijskih segmenata određenih koordinatama njihovih krajeva. Takva slika se lako skalira bez gubitka kvaliteta i može se lako obraditi. U gotovo svim grafičkim paketima koji se koriste u CAD-u, informacije su predstavljene u vektorskom obliku.

Afine transformacije na ravni

Pretpostavimo da je u ravni uveden pravolinijski koordinatni sistem. Tada je svakoj tački M pridružen uređeni par brojeva (x, y) njegove koordinate (slika 1). Uvodeći drugi pravolinijski koordinatni sistem na ravan, stavljamo u korespondenciju sa istom tačkom M još jedan par brojeva - (x*, y*).

Prelazak iz jednog pravolinijskog koordinatnog sistema u ravni u drugi opisuje se sljedećim relacijama:

(*)

gdje su proizvoljni brojevi povezani nejednakošću:

U budućnosti ćemo po pravilu razmatrati formule (*) prema kojima se tačke ravni transformišu u datom koordinatnom sistemu.

U afinim transformacijama posebnu ulogu igra nekoliko važnih specijalnih slučajeva koji imaju dobro praćene geometrijske karakteristike.

A. Rotacija oko početne tačke za ugao j (slika 2a) opisana je formulama

B. Zatezanje (kompresija) duž koordinatnih osa (slika 2b) može se postaviti na sljedeći način:

C. Refleksija oko ose apscise (sl. 2c) postavlja se pomoću formula

D. Transfer (slika 2d) je obezbeđen omjerima

Kao što se dokazuje u toku analitičke geometrije, svaka transformacija oblika (*) uvijek se može predstaviti kao sukcesivno izvršenje (superpozicija) najjednostavnijih transformacija oblika A, B, C i D.
Za efikasnu upotrebu ovih dobro poznatih formula u problemima kompjuterske grafike, zgodnije ih je napisati u matričnom obliku. Matrice za slučajeve A, B i C lako se konstruišu i imaju sledeći oblik:

Za rješavanje problema vrlo je poželjno sve četiri najjednostavnije transformacije (uključujući prijenos) pokriti matričnim pristupom, a time i općom afinom transformacijom. Ovo se može postići opisom proizvoljne tačke ravni ne sa dve koordinate, kao što je gore urađeno, već uređenom trojkom brojeva.

Uniformne koordinate tačaka

Neka M- proizvoljna tačka ravni sa koordinatama x i y izračunato u odnosu na dati pravolinijski koordinatni sistem. Homogene koordinate ove tačke su bilo koja trojka brojeva koji su istovremeno različiti od nule x1, x2, x3, povezane sa datim brojevima x i y slijedeći omjeri:


Kod rješavanja problema kompjuterske grafike homogene koordinate se obično uvode na sljedeći način: proizvoljna tačka M(x, y) ravni je dodeljena tačka M*(x, y, 1) u prostoru (sl. 3).

Uz pomoć trojki homogenih koordinata i matrica trećeg reda može se opisati svaka afina transformacija na ravni. Uspoređujući jednačinu (*) i sljedeće, matrica:

,

lako je vidjeti da se nakon množenja izraza na desnoj strani posljednje relacije dobijaju obje formule (*) i identitet 1=1. Dakle, upoređeni zapisi su ekvivalentni.

Afine transformacije u prostoru

Za izvođenje prostornih konstrukcija, slično kao kod dvodimenzionalnog problema, koordinate tri tačke (x, y, z) zamjenjuju se sa četiri broja (x, y, z, 1). Ovo omogućava korištenje matrične notacije u složenijim trodimenzionalnim problemima.

Svaka afina transformacija u trodimenzionalnom prostoru može se predstaviti kao superpozicija rotacija, rastezanja, refleksija i translacija. Matematički se sve transformacije svode na množenje matrica četvrtog reda. Na primjer, matrica rotacije oko ose apscise za ugao j ima oblik:

.

Vrste projekcija

Slika trodimenzionalnih objekata na ravni slike povezana je s još jednom geometrijskom operacijom - projekcijom pomoću snopa linija.

Postoji nekoliko različitih vrsta projekcija koje se koriste u kompjuterskoj grafici. Najčešće korištena paralelna i centralna projekcija.

Da bi se dobile projekcije objekta na ravan slike, potrebno je povući pravu liniju iz date projektovane grede kroz svaku njenu tačku, a zatim pronaći koordinate tačke preseka ove prave sa ravninom slike. U slučaju centralne projekcije, sve linije izlaze iz jedne tačke - centra snopa. U paralelnoj projekciji, pretpostavlja se da je centar snopa lociran u beskonačnosti (slika 4). Matematički, operacija projekcije se također svodi na množenje odgovarajućih matrica.

Uzmimo neki vektor na ravni (ili u prostoru) (slika 142). Sa afinom transformacijom, tačke se respektivno prenose na tačke koje imaju iste koordinate u odnosu na novi okvir kao što su tačke imale u odnosu na stari. Kako se koordinate vektora dobijaju oduzimanjem koordinata njegove početne tačke od koordinata njegovog kraja, koordinate vektora u odnosu na novi okvir su iste kao i koordinate vektora u odnosu na stari okvir. dakle:

Sa afinom transformacijom, vektor je pridružen vektoru koji ima iste koordinate u odnosu na novi okvir koje je vektor imao u odnosu na stari.

Iz ovoga odmah slijedi da pod afinom transformacijom jednaki vektori odgovaraju jednakim, tako da:

2° Afina transformacija ravni (prostora) generiše jedno-prema-jedan preslikavanje na sebe (transformacija) mnogostrukosti V svih slobodnih vektora ravni (odnosno, prostora).

Ova transformacija ima sljedeće svojstvo linearnosti: ako, pod datom transformacijom, vektori u, v odgovaraju vektorima u, v, tada će vektor odgovarati vektoru , a vektor će odgovarati Lievom vektoru (to je dokazano odmah prelaskom na koordinate). Iz svojstva linearnosti slijedi dalje:

Ako za danu afinu transformaciju vektori odgovaraju vektorima , tada bilo koja linearna kombinacija

vektora odgovara linearnoj kombinaciji

vektori (sa istim koeficijentima).

Kako, pod afinom transformacijom, nulti vektor očigledno odgovara nulti jedan, iz onoga što je dokazano slijedi:

4° Sa afinom transformacijom, linearna zavisnost vektora je očuvana, što znači da bilo koja dva kolinearna vektora postaju kolinearna, a svaka tri koplanarna vektora postaju koplanarna).

5° Inverzna transformacija u afinu transformaciju je afina transformacija.

Doista, ako je data afina transformacija A ravni dana prijelazom iz okvira u okvir, tada je afina transformacija data prijelazom iz okvira u okvir, kao što je lako vidjeti, transformacija inverzna prema transformacija A.

Isto važi i za prostor.

Vidjeli smo da je pod afinom transformacijom zadržana linearna ovisnost vektora. Očuvana je i linearna nezavisnost vektora:

6° Pod afinom transformacijom A, bilo koji linearno nezavisni sistem vektora ux, . prešao u linearno nezavisan - inače, sa afinom transformacijom inverznom A, linearno ovisan sistem u, . postao bi linearno nezavisan, što je, kao što znamo, nemoguće.

Pošto je okvir sistem linearno nezavisnih vektora (dva u ravni, tri u prostoru) vezanih za datu tačku O, onda pod afinom transformacijom svaki okvir prelazi u okvir. Štaviše, postoji prijedlog

7° Sa afinim preslikavanjem (datim prijelazom iz okvira I u okvir), bilo koji okvir II ide u okvir [ i bilo koja tačka M (bilo koji vektor i) ide u tačku M (u vektor) sa istim koordinate u odnosu na okvir , koje su tačka M i vektor i imaju u odnosu na okvir II.

Dokaz u slučaju ravnine iu slučaju prostora je isti. Ograničavamo se na slučaj aviona. Neka je II okvir (slika 143), a okvir neka je prvo iskaz koji se odnosi na vektore. Ako vektor i ima koordinate u odnosu na okvir, onda . Ali tada je slika vektora, po svojstvu 3°, vektor

imaju koordinate u odnosu na referentnu vrijednost. Neka tačka M ima koordinate u odnosu na okvir .

Tada , dakle, prema prethodnom, u odnosu na okvir, sektor OM, a time i tačka M, imaju koordinate . Tvrdnja je dokazana.

Dokazana izjava je bitna: iz nje proizlazi da, nakon što smo specificirali afinu transformaciju prelaskom iz nekog okvira u okvir, možemo je specificirati uzimajući bilo koji okvir kao početni i specificirajući okvir u koji mora proći.

Kao primjena upravo date primjedbe, dokazujemo da je proizvod dvije afine transformacije afina transformacija.

Zaista, neka je afina transformacija data prelaskom iz okvira I u okvir II. Možemo, prema onome što je upravo dokazano, definirati afinu transformaciju prelaskom iz okvira II u neki okvir III. Tada je afina transformacija data prijelazom iz okvira I u okvir III, očito, proizvod transformacije i transformacije .

Napomena 1. Upravo dokazana svojstva 1° - 7° afine transformacije očito vrijede i za afina preslikavanja jedne ravni u drugu (jedan primjer trodimenzionalnog prostora u drugi).

Identična transformacija ravni, odnosno prostora, očigledno je afina transformacija. Podsjetimo da je transformacija inverzna afini afina. Konačno, kao što smo upravo dokazali, proizvod dvije afine transformacije je afina transformacija. Iz ovoga - na osnovu uslova datog u § 6, stav 6, Dodatak - odmah slijedi sljedeći glavni

Teorema 1. U grupi svih ravninskih (prostornih) transformacija, afine transformacije čine podgrupu.

Među afinskim transformacijama, kretanja se razlikuju po tome što se mogu specificirati prelaskom iz jednog pravokutnog koordinatnog sistema u drugi, također pravougaoni i koji imaju istu skalu. Inverzna transformacija kretanju je kretanje, a proizvod dvaju kretanja je kretanje. Budući da je identična transformacija poseban slučaj kretanja, onda (u potpunoj analogiji s teoremom 1) također imamo

Teorema 1. U grupi svih afinih transformacija, kretanja čine podgrupu.

Nastavljamo s popisom najjednostavnijih svojstava afinih transformacija i preslikavanja.

Tri tačke su kolinearne (tj. leže na istoj pravoj) ako i samo ako su vektori kolinearni. A pošto je kolinearnost vektora očuvana pod afinom transformacijom, očuvana je i kolinarnost tačaka. Iz ovoga proizilazi:

Pod afinim preslikavanjem (ravnine ili prostora), prava linija postaje prava.

Sada ćemo dati drugi dokaz ove činjenice.

Neka je dato afino preslikavanje. Sastoji se u tome da svaka tačka M sa koordinatama (u koordinatnom sistemu) ide u tačku M, koja ima iste koordinate u drugom sistemu. Ovo podrazumijeva:

9° Uz dato afino preslikavanje (definirano prijelazom iz okvira u okvir), skup svih tačaka čije koordinate (u koordinatnom sistemu) zadovoljavaju određenu jednačinu ulazi u skup tačaka čije koordinate u sistemu zadovoljavaju ista jednačina.

Konkretno, prava linija sa jednadžbom

(u sistemu ) će ići u pravu liniju koja ima istu jednačinu, ali samo u koordinatnom sistemu .

Na isti način, sa afinom transformacijom prostora (definiranom prijelazom iz okvira u okvir), ravan koja ima jednačinu u sistemu

ide u ravan koja ima istu jednačinu (2), ali samo u koordinatnom sistemu .

Prava linija data u prostoru svojom "općom jednačinom"

ili jedan ili drugi od njegovih specijalnih varijeteta, na primjer, kanonska jednadžba

pod datom afinom transformacijom, ona će ići u pravu liniju koja ima iste jednačine, ali samo u koordinatnom sistemu. Tako dokazano

Teorema 2. Pod afinom transformacijom ravni, odnosno prostora, prave prelaze u prave, ravni prelaze u ravni.

Ovo održava paralelizam.

Zaista, ako su dvije prave (ili dvije ravni, ili prava i ravan) paralelne, tada njihove jednačine u odnosu na okvir zadovoljavaju poznate uslove paralelizma; ali slike ovih pravih linija (ravnina) imaju iste jednadžbe za okvir i, prema tome, zadovoljavaju iste uslove paralelizma.

Napomena 2. Očuvanje paralelizma pod afinom transformacijom se također može izvesti korištenjem činjenice da je afina transformacija jedan prema jedan.

Zaista, za bilo koje mapiranje jedan-na-jedan (na primjer, prostora na sebe), slika presjeka dva (bilo kojeg) skupa je presjek slika ovih skupova.

Dakle, dva skupa koji se seku pod bilo kojim preslikavanjem jedan-na-jedan pretvaraju se u skupa koji se seku.

Iz toga slijedi da pod afinom transformacijom ravni, dvije paralelne prave i pod afinim preslikavanjem prostora, dvije paralelne ravni postaju paralelne; sačuvano je i svojstvo paralelizma između prave i ravni.

Neka su u prostoru date dvije paralelne prave; leže u istoj ravni i ne seku se. Pod afinom transformacijom prostora ove dvije prave postaju dvije prave koje također leže u istoj ravni i ne seku se, odnosno dvije paralelne prave.

Teorema 3. Pod afinom transformacijom ravni (prostora) koja pretvara pravu d u pravu , segment d prelazi u segment prave, a tačka M prave d, koja dijeli segment u ovoj relaciji K, prelazi u poenta

M prava linija d, koja dijeli segment u istom omjeru (Sl. 144).

Dokaz. Kako za pozitivno A. dobijamo tačke koje leže unutar segmenta (respektivno, a za negativno A. - izvan ovog segmenta), druga tvrdnja teoreme 3 implicira prvu. Dokazujemo drugu tvrdnju teoreme 3, ograničavajući se na slučaj Neka (u koordinatnom sistemu ) imamo

Budući da točka M dijeli segment u odnosu na , Tada

u prostoru ove jednakosti će biti spojene jednakošću . Sa ovom afinom transformacijom, tačke će ići u tačke sa istim koordinatama kao i tačke, ali samo u koordinatnom sistemu. Ove koordinate su još uvijek povezane relacijama (3), iz čega slijedi da se segment MM dijeli u odnosu na . Ovo dokazuje teoremu 3.

Neka se pod afinom transformacijom A prostora ravan preslikava u ravan . Uzmimo neki okvir u ravni, tj. par vektora koji se ne sudaraju primijenjen na neku tačku o (slika 145). Pod transformacijom A, tačka oko ravni će ići do tačke oko ravnine, nekolinearni vektori će ići u nekolinearne vektore, odnosno okvir iz ravni će ići u okvir ravni.

U ovom slučaju, bilo koji vektor koji leži u ravni će preći u vektor koji leži u ravni sa istim koordinatama u odnosu na okvir koji je vektor imao u odnosu na okvir. Iz ovoga sledi da će bilo koja tačka M ravni ići u tačku M ravni, koja ima iste koordinate u odnosu na okvir kao što je tačka M imala u ravni u odnosu na okvir. Teorema 4. Neka, pod afinom transformacijom prostora, ravan i prelazi u ravan . Tada transformacija A preslikava proizvoljni okvir ravnine u neki okvir ravnine i svakoj tački M ravnine dodjeljuje tačku M ravni koja ima, u odnosu na okvir, iste koordinate koje je imala tačka M sa postovanje okvira. Drugim riječima: transformacija A generiše afino preslikavanje ravni u ravan.

Transformacije na ravni i u prostoru

U kompjuterskoj grafici, sve što je u vezi sa ravnim kućištem obično se označava kao 2D (2-dimenzionalno) dvodimenzionalno, a sve što se odnosi na prostorno - 3D.

Afine transformacije na ravni

Affinis - srodan (lat). Zato što su figure sačuvane tokom afine transformacije.

Pretpostavimo da postoji neki pravolinijski koordinatni sistem (OXY). Tada se svakoj tački M može pridružiti par koordinata (x, y). Uvođenjem drugog koordinatnog sistema O * X * Y *, možete staviti još jedan par koordinata (x * ,y *) na istu tačku M. Prelazak sa jednog sistema na drugi:

x * =ax+by+c, uz uslov |a b|¹0

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

Ove formule se mogu posmatrati na dva načina, ili se tačka čuva i menja koordinatni sistem, ili se čuva koordinatni sistem i menja tačka. U budućnosti će se ove formule posmatrati upravo kao transformacija tačaka u datom koordinatnom sistemu. Štaviše, svi sistemi koji se razmatraju biće pravougaoni (formule omogućavaju rad i sa nepravougaonim).


Treba napomenuti da se koordinate tačke M mogu predstaviti kao vektor iz početka sa koordinatama Mx,My.

Tada se transformacija može napisati u vektorskom obliku (ovo važi samo za pravougaoni koordinatni sistem).

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

Gdje je O*-koordinate početka drugog sistema u koordinatama prvog. X*,Y* - orte (direktori vektora) drugog koordinatnog sistema u koordinatama prvog.

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

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

Ova transformacija se također može napisati u matričnom obliku

, ili , gdje se vektori smatraju matricama oblika 1´2.

Element Cij matrice C=AB je zbir proizvoda elemenata i-tog reda matrice A i elemenata j-te kolone matrice B.

Inverzna transformacija - rješenje sistema linearnih jednačina, ili korištenje inverzne matrice , ali za slučaj kada je sistem predstavljen ortovima, može biti jednostavnije. U ovom slučaju, inverzna matrica je jednaka transponiranoj.

Afina transformacija - geometrijska transformacija ravni ili prostora ĸᴏᴛᴏᴩᴏᴇ se može dobiti kombinacijom rotacije, translacije, zrcaljenja i skaliranja u smjerovima koordinatnih osa.

Rotacija (R - rotacija). Oko ishodišta pod uglom a.

x*=x*cosa-y*sina

y*=x*sina+y*cosa

Napon, kompresija duž koordinatnih osa (D - dilatacija).

Refleksija (M - ogledalo). U odnosu na osu apscise.

Transfer (T - prijevod).

Prijenos se ne može predstaviti kao produkt vektora matricom, ali se može predstaviti kao zbir vektora.

U toku analitičke geometrije dokazuje se da se svaka transformacija može predstaviti kao sukcesivno izvođenje (superpozicija) ovih najjednostavnijih transformacija.

Ponekad je zgodno sve transformacije predstaviti u jednom obliku matrice; za to se koriste homogene koordinate.

Homogene koordinate

Za tačku M sa koordinatama x,y na ravni, homogene koordinate su trojka brojeva x1,x2,x3, koja nije jednaka nuli u isto vrijeme i povezana je relacijama x1/x3=x, x2/ x3=y. Tačka sa koordinatama x,y na ravni odgovara tački xh,y,h,h u homogenom prostoru, obično h=1 (x,y,1).

Opšta transformacija tačaka u homogenim koordinatama može se zapisati kao

A osnovne transformacijske matrice će izgledati ovako:

kombinacija transformacija.

Pretpostavimo da trebamo rotirati tačku za ugao oko neke tačke A.

Počnite pomicati tačku A do ishodišta (-Ax, -Ay). Sljedeće skretanje. Zatim se vratite do tačke A. (Ax,Ay). Možete dobiti jednu transformaciju

Afine transformacije u prostoru

U 3D prostoru, tačka (vektor) je predstavljena sa tri koordinate (x,y,z) ili četiri homogene koordinate (x,y,z,1).

Trebalo bi uvesti koncepte lijeve i desne trojke vektora. Tri vektora a,b,c formiraju desnu trojku ako se, nakon kombinovanja početaka vektora, čini da se najkraći zaokret od a do b čini posmatraču koji gleda s kraja vektora c u smjeru suprotnom od kazaljke na satu. Pravilo desne ruke - vektor a se kombinuje sa laktom, vektor b ulazi u dlan, vektor c se poklapa sa palcem. Uobičajeno je da se koordinatni sistem naziva desnim ako njegovi vektori pravca formiraju desnu trojku.

Unakrsni proizvod c=a´b, c je vektor okomit na oba vektora, sa njima tvori pravu trojku.

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

Transformacije ostaju iste: rotacija (samo sada oko tri ose), istezanje, refleksija (u odnosu na tri ravni), translacija.

Rotacija u smeru suprotnom od kazaljke na satu, ako se posmatra od početka za levi koordinatni sistem (za desni - obrnuto).

, ,

,

, ,

Na primjer, trebate izgraditi matricu rotacije oko prave linije sa direktnim vektorom L koji prolazi kroz tačku A.

1. Prenesite A u ishodište

2. Poravnanje linije sa X osom.

Prvo rotirajte oko x-ose

ugao a , cosa=Lz/d, sina=Lx/d, gdje je d=

Ako je d=0, tada se linija već poklapa sa X osom.

Zatim rotacija oko Y ose za ugao b.

Rotirani vektor je (Lx,Ly,Lz,1)=(Lx,0,d,1).

cosb=Lx, sinb=d

3. Rotirajte oko X ose do željenog ugla

4. Vratite se na L os,

5. Transfer do tačke A

Ispostavit će se opšta matrica

Transformacija u koordinatni sistem dat orts

Ako je sistem zadan trostrukom međusobno okomitih vektora X*,Y*,Z*.

, inverzna transformacija je transponovana matrica [R] T

Dizajn

Dizajn je prije svega ključan za prikazivanje 3D objekata na ravnom ekranu, ali postoje i druge upotrebe, kao što su sjene.

Postoje dvije najčešće korištene vrste dizajna: paralelni i centralni (perspektivni).

Prilikom projektovanja objekta na ravan, potrebno je povući pravu liniju iz date projektovane grede kroz svaku tačku objekta i pronaći presek te linije sa ravninom.

U paralelnoj projekciji, snop se sastoji od paralelnih linija, u centralnoj projekciji prolazi kroz određenu tačku.

Paralelne projekcije se mogu podijeliti na dva tipa, kada su linije snopa okomite na ravan projekcije - projekcije se nazivaju aksonometrijskim, a kada nisu, kosim (takve projekcije nećemo razmatrati).

Da biste dobili aksonometrijsku paralelnu projekciju objekta na ekranu, trebate uskladiti smjer zraka s jednom od osi (obično Z). Osa X i Y će se poklopiti sa X,Y osama na ekranu, a Z osa će biti usmerena duboko u ekran.

Da biste dobili perspektivnu projekciju tačke, izuzetno je važno postaviti tačku nestajanja snopa na ishodište koordinata, poravnati pravac prema ekranu (okomito od tačke nestajanja na ravninu projekcije) sa Z osom, zatim Xp =X*d/Z, Yp=Y*d/Z, gdje je d udaljenost od početka koordinata do projektne ravni.

Ova transformacija se može napisati kao matrica. ,

Jedino što se u takvoj transformaciji gubi dubina (z), ali se može izračunati iz posljednje koordinate vektora.

Pored ovih dizajnerskih transformacija, bitno je napraviti još nekoliko kako bi slika izgledala pravo na ekranu. Prije svega, treba ga rastegnuti na veličinu prozora, kao drugo, treba ga preslikati oko X ose (jer je Y osa obično usmjerena prema dolje), i treće, treba ga pomaknuti u centar prozor.

Ukupna matrica transformacije izgleda ovako.

Cx,Cy - koordinate centra ekrana.

omjer - omjer veličine Y prema veličini X, različit za različite rezolucije ekrana. Rezolucija - broj tačaka po jedinici površine, u ovom slučaju jedinica je cijeli ekran monitora. Ekran monitora ima odnos horizontalne i vertikalne veličine 4/3, s tim u vezi, za rezolucije sa brojem horizontalnih i vertikalnih tačaka koje su višestruke od ovog broja, odnos=1 (na primer, 640/480). Inače omjer=(4*sizey)/(3*sizex) (320x200 =0,83).

S je faktor skale, za paralelnu projekciju se bira ručno, za perspektivnu projekciju S je jednak jedan, ali se d (udaljenost do ravni projekcije) izračunava na osnovu vidnog polja FOV (vidno polje). FOV - maksimalni ugao koji linije formiraju u zraku, ugao gledanja.

FOV se obično kreće od 50° do 100°, FOV ljudskog oka je 90°.

Svijet, model i koordinatni sistemi ekrana

Svijet - glavni koordinatni sistem u kojem su postavljeni svi objekti scene.

Model je koordinatni sistem u kojem je specificirana unutrašnja struktura objekata.

Ekran - koordinatni sistem posmatrača, naziva se i koordinatni sistem kamere.

Model se obično postavlja u modelski sistem na način da se centar sistema poklapa ili sa geometrijskim ili sa centrom mase modela, os X se poklapa sa smjerom naprijed, osa Y desno, a Z osa je gore.

Model je specificiran u svjetskom koordinatnom sistemu koordinatama centra modela M (vektor) i orijentacijom (bilo sa tri jedinična vektora ili sa tri ugla kotrljanja (X), korak (Y), smjer (Z), matrica je formiran kao niz rotacija). Za transformaciju iz koordinata modela, prvo morate rotirati prema matrici orijentacije, a zatim prevesti u .

Heading Roll Pitch

Položaj i orijentacija kamere mogu se postaviti na potpuno isti način kao i položaj modela. Ali često je dovoljan samo smjer pogleda kamere. Obično (u stvarnom životu) kamera se ne okreće, ᴛ.ᴇ. x-osa (desno) je uvijek horizontalna, a ravan yz je stoga uvijek vertikalna.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, ako pretpostavimo da Z os kamere (smjer gledanja) nije vertikalna, tada možemo pronaći X=Norm(Z´Up) os, gdje je Up(0,0,1) vertikalni vektor (X će biti okomito na vertikalni vektor Up, što znači da je horizontalno). Konačno Y=X´Z osa (gore). Pobrinite se da sistem ostane na lijevoj strani.

Za konvertovanje tačaka iz svetskog sistema u tačke ekrana, neophodno je prvo primeniti translaciju, a zatim rotirati transponovanom matricom orijentacije kamere T .

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, da biste konvertovali tačku iz koordinata modela u koordinate ekrana, izuzetno je važno izvršiti sljedeću transformaciju T . Nakon ovakvih transformacija, os Z će biti usmjerena duž smjera gledanja i možete napraviti projekciju.

Predavanje 6-7-8

Transformacije na ravni i u prostoru - pojam i vrste. Klasifikacija i karakteristike kategorije "Transformacije na ravni i u svemiru" 2017, 2018.

Prilikom rada s trodimenzionalnim objektima često je potrebno izvršiti različite transformacije u odnosu na njih: pomicati, rotirati, komprimirati, rastezati, kositi itd. Međutim, u većini slučajeva potrebno je da se nakon primjene ovih transformacija sačuvaju određena svojstva.

Definicija. Transformacija ravni se zove afine(sa engleskog . afinitet - srodstvo), ako

  • to je jedan na jedan;
  • slika bilo koje linije je linija.

Transformacija se zove jedan na jedan, ako

  • različite tačke prelaze u različite;
  • po bod ide svakoj tački.

Svojstva afine transformacije u trodimenzionalnom prostoru:

  • preslikava n-dimenzionalni objekat u n-dimenzionalni: tačka na tačku, liniju na liniju, površinu na površinu;
  • održava paralelnost pravih i ravni;
  • čuva proporcije paralelnih objekata - dužine segmenata na paralelnim linijama i površine na paralelnim ravnima.

Bilo koja afina transformacija je data matricom 3x3 s determinantom različitom od nule i translacijskim vektorom:

Pogledajmo ovo u smislu matematike. R je matrica linearnog operatora nad prostorom trodimenzionalnih vektora. Vektor T je neophodan za implementaciju paralelnog prevođenja: ako pomnožimo (000) sa bilo kojom matricom 3x3, opet dobijamo (000) - početak koordinatnog sistema, u odnosu na transformaciju R, je fiksna tačka. Zahtjev da determinanta bude različita od nule diktira definicija. U stvari, ako je determinanta matrice R jednaka nuli, tada cijeli prostor ulazi u ravan, pravu ili tačku. Dakle, nije u skladu međusobnu jedinstvenost.

U praksi je zgodno specificirati afinu transformaciju jednom matricom. Ovo koristi homogene koordinate uvedene u prethodnom članku. Afina transformacija će biti data sljedećom matricom 4x4:

Imajte na umu da su prve tri vrijednosti posljednjeg reda 0. Ovo je neophodno stanje da je transformacija afina. Općenito, proizvoljna 4x4 matrica definira projektivnu transformaciju. Takve transformacije, kao što možete pretpostaviti iz imena, koriste se za projektovanje trodimenzionalne scene. Ovo će biti detaljnije obrađeno u kasnijem članku.

Razmotrimo posebne slučajeve afine transformacije.

Bilješka. Ovdje iu daljem tekstu koristit ćemo koordinatni sistem predstavljen na sljedeći način:

  • desno koordinatni sistem;
  • z osa je usmerena ka posmatraču, okomita na ravan ekrana;
  • y-osa je u ravni ekrana i usmjerena je prema gore;
  • x-osa je u ravni ekrana i usmjerena je udesno.

O tome ćemo se detaljnije zadržati kada razmatramo geometrijski cjevovod.

Matrica transformacije izgleda ovako:

U ovom slučaju, matrica R = E, matrica identiteta.

Transformacije o kojima se govori u nastavku utiču samo na matricu R, tako da će samo ona biti naznačena.

Okreni (rotiraj)



Ako se na ravni rotacije vrše oko određene tačke, onda se u trodimenzionalnom prostoru rotacije vrše oko određenog vektora. Prije nego pređemo na konstruiranje matrice rotacije oko proizvoljnog vektora, razmotrimo posebne slučajeve rotacija oko koordinatnih osa.

Bilješka. Rotirajte oko proizvoljnog vektora nije jednako rotacija oko proizvoljne usmjerene linije.



Imajte na umu da se prilikom rotacije oko y-ose ordinate tačaka (y-koordinate) ne mijenjaju. Također je vrijedno napomenuti da se x i z koordinate tačke pretvaraju bez obzira na y koordinatu. To znači da će bilo koja tačka p (x, y, z) ići u tačku p’(x’(x, z), y, z’(x, y)) . Sada ostaje razumjeti kako se x i z koordinate transformiraju: u ravni Oxz, to će biti rotacija u smjeru kazaljke na satu oko početka koordinata (jer je x z y lijeva trojka), tj. u negativnom pravcu. Matrica takve transformacije je poznata (vidi Rotacija ravni):



Transformacijska matrica R y (φ y ):

Rotirajte oko x i z osi



Analognim rezoniranjem mogu se dobiti matrice rotacija R x (φ x ) i R z (φ z ) oko x i z osi, respektivno.

Evo konačnih rezultata:

Lako je vidjeti da su determinante matrica Rx, Ry, Rz jednake 1. Također, rotacijske matrice R rot imaju svojstvo ortogonalnosti: R T R = RR T = E . Iz ovoga, pak, slijedi korisna osobina da se inverzija matrice rotacije može zamijeniti transpozicijom: R -1 (φ ) = R T (φ ) .

Skaliranje (stiskanje/rastezanje, odraz)



Koeficijenti kompresije/ekspanzije, po analogiji sa dvodimenzionalnim prostorom, određeni su dijagonalnim članovima matrice R:

rezultat:



Kombinacija koeficijenata s x = -1, s y = 1, s z = 1 će postaviti refleksiju od ravni Oyz (x = 0). Za s x = s y = s z = -1 dobijamo centralnu simetriju oko ishodišta.

Interpretacija matrice R

Razmotrimo šta je matrica R sa stanovišta linearne algebre. Ispostavilo se da matrica R sadrži osnovu novog koordinatnog sistema.

Zaista, matrica

(R 11 R 12 R 13 )

(R 21 R 22 R 33 )

(R 31 R 32 R 33 )

prevodi vektore kartezijanske osnove:

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

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

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



Sada je lako dobiti transformaciju kosine. Na primjer:

Bilješka. Ako se držimo općeprihvaćene terminologije, onda se gornja transformacija naziva pomakom. pomak (smicanje) doći će do bilo koje transformacije čija je glavna dijagonala matrice R jedinica. Ako je determinanta matrice R jednaka nuli, onda transformacija nije afina.

Kompleksne afine transformacije

Složene afine transformacije mogu se dobiti kao kombinacija jednostavnih (elementarnih) transformacija. U ovom slučaju, jednostavne afine transformacije mogu se birati na različite načine. Na primjer, rotacija se može smatrati kombinacijom skaliranja i smicanja. Međutim, radi praktičnosti, rotacija se također smatra elementarnom transformacijom. Rotacija oko proizvoljnog vektora je predstavljena kao kombinacija rotacija oko koordinatnih osa. O tome će se detaljno raspravljati u sljedećem članku.

5. GEOMETRIJSKE TRANSFORMACIJE

Prikazivanje slike na ekranu i razne radnje s njom, uključujući vizualnu analizu, zahtijevaju od korisnika određenu geometrijsku pismenost. Geometrijski koncepti, formule i činjenice, prvenstveno vezane za ravan i trodimenzionalne slučajeve, igraju posebnu ulogu u problemima kompjuterske grafike. Geometrijska razmatranja, pristupi i ideje, u kombinaciji sa sve širim mogućnostima kompjuterske tehnologije, nepresušni su izvor značajnog napretka u razvoju kompjuterske grafike, njene efektivne upotrebe u naučnim i drugim istraživanjima. Ponekad čak i najjednostavnije geometrijske tehnike daju primjetan napredak u pojedinim fazama rješavanja velikog grafičkog problema.

5.1. Transformacije na ravni i u prostoru

Za rješavanje problema poput kretanja objekata i njihovih dijelova koriste se kontrole kamere afine transformacije(AP), razmotrite njihova glavna svojstva:

1) tačke koje leže na istoj pravoj, nakon transformacije, leže na istoj pravoj;

2) linije koje se seku ostaju u seku, a paralelne prave ostaju paralelne;

3) u AP prostorima, ravni koje se seku ostaju sekuće, paralelne - paralelne, a koje se seku - seku;

4) AP čuva omjer površina dva kvadrata u ravni i omjer volumena dvije kocke u prostoru.

Afine transformacije na ravni

Pretpostavimo da je na ravni dat pravolinijski koordinatni sistem. Tada svaka tačka M odgovara uređenom paru brojeva (x, y) svojih koordinata (slika 5.1). Uvodeći drugi pravolinijski koordinatni sistem na ravan, istu tačku M povezujemo sa drugim parom brojeva - (x *, y *).

Prelazak iz jednog pravolinijskog koordinatnog sistema u ravni u drugi opisuje se sljedećim relacijama:

x* = α x+ β y+ λ ,

y* = γ x+ δ y+ µ ,

gdje su α , β , λ , γ , µ , δ proizvoljni brojevi povezani nejednakošću

α β ≠ 0.

γ δ

Formule (1) se mogu posmatrati na dva načina: ili se tačka čuva i menja koordinatni sistem (slika 5.2) (u ovom slučaju proizvoljna tačka M ostaje ista, menjaju se samo njene koordinate), ili se menja tačka i koordinatni sistem je sačuvan (slika 5.3) (u ovom slučaju formule (1) definiraju preslikavanje koje transformira proizvoljnu tačku M (x, y) u tačku M * (x *, y *), čije su koordinate definirane u istom koordinatnom sistemu).

Rice. 5.1. Inicijal

Rice. 5.2. Transformisano

Rice. 5.3. Transformisano

koordinatni sistem

tačka

AT U nastavku ćemo po pravilu razmatrati formule (1) prema kojima se tačke ravni transformišu u datom sistemu pravolinijskih koordinata.

AT U afinim transformacijama ravni posebnu ulogu ima nekoliko važnih specijalnih slučajeva koji imaju dobro definirane geometrijske karakteristike. Prilikom proučavanja geometrijskog značenja numeričkih koeficijenata u formulama (1) za ove slučajeve, zgodno je pretpostaviti da je dati koordinatni sistem pravougaoni kartezijanski.

1. Rotirajte oko početne tačke za ugaoϕ je opisan formulama

x * = x cosϕ − y sinϕ ,

y * = x sinϕ + y cosϕ .

2. Istezanje (kompresija) duž koordinatnih osa može se postaviti na sljedeći način:

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

Napon duž ose apscise je obezbeđen pod uslovom da je α > 1, a kompresija - na 0<α < 1.

3. Refleksija (u odnosu na x-osu) se postavlja pomoću

x *= x ,y *= − y .

4. Paralelni prijenos je omogućen omjerima

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

Izbor ova četiri posebna slučaja određen je dvijema okolnostima.

1. Svaka od navedenih transformacija ima jednostavno i jasno geometrijsko značenje (konstantni brojevi uključeni u gornje formule također su obdareni geometrijskim značenjem).

2. Kao što je dokazano u toku analitičke geometrije, svaka transformacija oblika (1) uvijek se može predstaviti kao

posljedično izvođenje najjednostavnijih transformacija. Za efikasnu upotrebu ovih dobro poznatih formula u

dače kompjuterske grafike pogodnije je njihova matrična notacija. Matrice koje odgovaraju slučajevima A, B i C lako se konstruišu i imaju sledeći oblik:

cosϕ

sinϕ

− sinϕ

cosϕ

−1

Međutim, da bi se riješili problemi razmatrani u nastavku, vrlo je poželjno matričnim pristupom pokriti sve četiri najjednostavnije transformacije (uključujući prijenos), a time i opću afinu transformaciju. To se može postići, na primjer, na sljedeći način: prijeđite na opis proizvoljne tačke ravni, ne uređenim parom brojeva, kao što je gore urađeno, već uređenom trojkom brojeva.

Uniformne koordinate tačaka

Neka je M proizvoljna tačka ravni sa koordinatama uy izračunatim u odnosu na dati pravolinijski koordinatni sistem. Homogene koordinate ove tačke su bilo koja trojka istovremenih brojeva koji nisu nula x 1 ,x 2 ,x 3 pridruženih datim brojevima x i y sljedećim relacijama:

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

Prilikom rješavanja problema kompjuterske grafike, homogene koordinate se obično uvode na sljedeći način: proizvoljna tačka M (x, y) ravni je povezana sa tačkom M * (x, y, 1) u prostoru (slika 5.4).

Imajte na umu da proizvoljna tačka na pravoj koja povezuje ishodište, tačka O (0, 0, 0) sa tačkom M * (x, y, 1), može biti data trostrukom brojeva oblika (hx, hy , h).

Rice. 5.4. Homogene koordinate

Pretpostavićemo da je h ≠ 0. Vektor sa koordinatama hx, hy, h je usmjeravajući vektor prave linije koja povezuje tačke 0(0, 0, 0) i M *(x, y, 1). Ova linija siječe ravan z = 1 u tački (x, y, 1), koja na jedinstven način određuje tačku (x, y) koordinatne ravnine xy.

Dakle, između proizvoljne tačke sa koordinatama (x, y) i skupa trojki brojeva oblika (hx, hy, h) na h ≠ 0, uspostavlja se (jedan prema jedan) korespondencija, što nam omogućava da se brojevi hx, hy, h smatraju novim koordinatama ove tačke.

U projektivnoj geometriji za homogene koordinate prihvaćena je sljedeća notacija: x : y : 1 ili x 1 : x 2 : x 3 (brojevi x 1 , x 2 , x 3 nisu nestali u isto vrijeme).

Upotreba homogenih koordinata pokazuje se prikladnom čak i pri rješavanju najjednostavnijih problema, na primjer, skaliranje:

1) tačka sa homogenim koordinatama (0.5; 0.1; 2.5) h=1 se ne može predstaviti celobrojnim koordinatama, ali npr. pri izboru h= 10 dobijamo (5; 1; 25);

2) tako da rezultati transformacije ne dovedu do aritmetičkog prelivanja, za tačku sa koordinatama

(80000;40000;1000) možete uzeti, na primjer, h= 0,001. U ponovnom

Rezultat je (80;40;1).

Navedeni primjeri pokazuju korisnost korištenja homogenih koordinata u proračunima. Međutim, glavna svrha uvođenja homogenih koordinata u kompjutersku grafiku je njihova nesumnjiva pogodnost u primjeni na geometrijske transformacije.

Uz pomoć trojki homogenih koordinata i matrica trećeg reda može se opisati svaka afina transformacija ravnine.

Zaista, uz pretpostavku da je h = 1, upoređujemo dva unosa: označena sa * i sljedeću matricu:

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

Lako je vidjeti da nakon množenja izraza na desnoj strani posljednje relacije dobijamo obje formule (1) i tačnu numeričku jednakost 1 ≡ 1. Dakle, upoređeni unosi se mogu smatrati ekvivalentnim.

Elementi proizvoljne matrice afine transformacije nemaju eksplicitno geometrijsko značenje. Stoga su za implementaciju određenog mapiranja, odnosno pronalaženje elemenata odgovarajuće matrice prema datom geometrijskom opisu, potrebne posebne tehnike. Obično se izgradnja ove matrice, u skladu sa složenošću problema koji se razmatra, dijeli u nekoliko faza.

U svakoj fazi nalazi se matrica koja odgovara jednom ili drugom od gore navedenih slučajeva A, B, C ili D, koji imaju dobro definirana geometrijska svojstva.

Napišimo odgovarajuće matrice trećeg reda.

A. Matrica rotacije

B. Rastezljiva matrica

cosϕ

sinϕ

(kompresija) (dilatacija)

cosϕ

= − sinϕ

D. Transfer Matrix (prijevod)

B. Matrica refleksije (re-

− 1 0 .

Razmotrimo primjere afine transformacije ravnine.

Primjer 1. Napravite matricu rotacije

oko tačke A(a, b) pod uglom ϕ (slika 5.5).

Aa,

centar za poravnanje

okreni se

koordinate.

2. korak. Rotirajte za ugao ϕ.

Aa,

Rice. 5.5. Okreni se

vraćanje centra rotacije u prethodni položaj; matrica odgovarajuće transformacije.

cosϕ

sinϕ

= − sinϕ

cosϕ

−A

-a

−b

Množimo matrice istim redoslijedom kako su ispisane: . Kao rezultat, dobijamo da će željena transformacija (u matričnom zapisu) izgledati ovako:

sinϕ

sinϕ

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

− sinϕ

cosϕ

− a cosϕ + b sinϕ + a

− a sinϕ − b cosϕ + b

Elemente rezultirajuće matrice (posebno u posljednjem redu) nije lako zapamtiti. Istovremeno, svaka od tri pomnožene matrice može se lako konstruisati iz geometrijskog opisa odgovarajućeg preslikavanja.

Primjer 2. Konstruirajte matricu rastezanja sa faktorima rastezanja α duž apscise i β duž ordinate sa centrom u tački A(a, b).

1. korak. Prebacite na vektor A (-a, -b) da poravnate centar rastezanja sa ishodištem.

2. korak. Rastezanje duž koordinatnih osa sa koeficijentima α i β, respektivno.

3rd step. Prebacite na vektor A (a, b) da vratite centar istezanja u prethodni položaj; matrica odgovarajuće transformacije.