Centrinė perspektyvinė projekcija. Grafikos API perspektyvinės matricos arba velnias slypi detalėse

Centrinėse projekcijose rodomo objekto kraštai, lygiagrečiai paveikslo plokštumai, vaizduojami be formos iškraipymo, bet su dydžio iškraipymu.

24 pav. Centrinės kubo projekcijos: a) vienataškė, b) dvitaškė, c) tritaškė.

Bet kurio lygiagrečių linijų, kurios nėra lygiagrečios paveikslėlio plokštumai, rinkinio centrinės projekcijos suartės išnykimo taškas. Vadinamas vienai iš koordinačių ašių lygiagrečių tiesių išnykimo taškas pagrindinis išnykimo taškas. Nes Yra trys koordinačių ašys, tada negali būti daugiau nei trys pagrindiniai išnykimo taškai.

Atsižvelgiant į koordinačių ašių vietą ir paveikslo plokštumą, skiriamos vieno, dviejų ir trijų taškų centrinės projekcijos.

Vienintelis taškas projekcija gaunama, kai vaizdo plokštuma sutampa (arba yra lygiagreti) vienai iš koordinačių plokštumų. Tai reiškia, kad tik viena koordinačių ašis nėra lygiagreti vaizdo plokštumai ir turi pagrindinį išnykimo tašką.

Nuo taško iki taško projekcija gaunama, kai tik viena iš koordinačių ašių yra lygiagreti vaizdo plokštumai. Kitos dvi koordinačių ašys nėra lygiagrečios vaizdo plokštumai ir turi du pagrindinius išnykimo taškus. Vaizduojant objektus, esančius žemės paviršiuje, dažniausiai naudojama dviejų taškų projekcija, kurioje vaizdo plokštuma lygiagreti vertikalioji ašis koordinates Abu pagrindiniai išnykimo taškai yra vienoje vietoje horizontali linija– horizonto linijos (6.5 pav.). At tritaškis visos trys projekcijos koordinačių ašys nėra lygiagrečios vaizdo plokštumai, todėl yra trys pagrindiniai nykimo taškai.

Išsamiau panagrinėkime taško vieno taško projekcijos atvejį Rį lėktuvą z= 0 su projekcijos centru SU, guli ant ašies z(25 pav.).

Taškas A projektuojamas į ekraną kaip A. Atstumas nuo stebėtojo iki projekcijos plokštumos yra k. Būtina nustatyti taško koordinates Aekrane. Pažymėkime juos x e ir y e. Iš trikampių panašumo A y A z N Ir y ai ĮJUNGTA mes tai randame

(x.9)

panašiai ir x:

.

(x.10)

Ryžiai. 25. Centrinių projekcijų formulių išvedimas.

Ryžiai. 26. Kitas būdas apskaičiuoti taškų koordinates centrinėje perspektyvinėje projekcijoje. N= (0,0,-Prisiminkite, kad k yra atstumas, o stebėtojas yra taške). Jei stebėjimo taškas yra koordinačių pradžioje, o projekcijos plokštuma - per atstumą a, kaip parodyta 26 paveiksle, tada formulės x ai ir y bus tokia forma:

,
(x.11)

Formulės (x.10) yra patogesnės, kai reikia tiesiog priartinti stebėtoją ar toliau nuo projekcijos plokštumos. Formulėms (x.11) reikia mažiau laiko skaičiavimams, nes nėra pridėjimo operacijos.

Apsvarstykite tašką trimatėje erdvėje ( a, b, c). Jei įsivaizduosime šį tašką kaip homogenišką taško atvaizdą dvimatėje erdvėje, tada jo koordinatės bus ( a/ c, b/ c). Palyginus šias koordinates su antrojo tipo formulėmis, gautomis centrinei perspektyvinei projekcijai, nesunku pastebėti, kad dvimatis taško vaizdavimas koordinatėmis ( a, b, c) atrodo kaip jo projekcija į plokštumą z= 1, kaip parodyta Fig. 27.

Ryžiai. 27. Taško projekcija ( a, b, c) į plokštumą z = 1.

Panašiai, atsižvelgiant į vienalyčių koordinačių panaudojimą vektoriams trimatėje erdvėje, trimatę erdvę galima pavaizduoti kaip projekciją. keturmatė erdvėį hiperplokštumą w= 1 jei ( x, y, z)(wx, wy, wz, w) = (x, y, z, 1). .

Vienalytėse koordinatėse centrinės perspektyvos transformaciją galima nustatyti matricos operacija. Ši matrica parašyta taip:

Parodykime, kad ši matrica lemia objekto taško, nurodyto vienarūšėmis koordinatėmis, transformaciją į perspektyvinės projekcijos tašką (taip pat vienarūšės koordinatės). Leiskite p= (x, y, z) – taškas ties trimatė erdvė. Jo vienalytis pateikimas v= (wx, wy, wz, w). Padauginkite v iš P:

tai tiksliai pakartoja centrinei perspektyvai išvestas formules (x.10).

Dėl žmogaus regėjimo ypatumų nuo stebėtojo nutolusiems objektams geriau taikyti perspektyvinę projekciją, gana artimiems (ištiestos rankos atstumu) – ortografinę ar aksonometrinę, o dar arčiau – atvirkštinę perspektyvinę projekciją.

Kurti stereo vaizdai naudojamos dvi centrinės projekcijos, kurių centrai sutampa su hipotetinio stebėtojo akių vieta, t.y. jie yra tam tikru atstumu vienas nuo kito tiesia linija, lygiagrečia vaizdo plokštumai. Užbaigus projekciją, gaunami du objekto vaizdai - kairiajai ir dešinei akims. Išvesties įrenginys turi pateikti šiuos vaizdus kiekvienai vartotojo akiai atskirai. Šiuo tikslu galima naudoti spalvų arba poliarizuojančių filtrų sistemą. Sudėtingesni išvesties įrenginiai (pvz., šalmai) pateikia kiekvieną vaizdą į atskirus ekranus kiekvienai akiai.

Visos aukščiau aptartos projekcijos priklauso butų klasei geometrinės projekcijos, nes projekcija atliekama plokštumoje (o ne lenktame paviršiuje) ir naudojant daugybę tiesių linijų (o ne kreivių). Ši projekcijų klasė dažniausiai naudojama kompiuterinė grafika. Priešingai, kartografijoje dažnai naudojamos neplokštumos arba negeometrinės projekcijos.

Ankstesniame skyriuje pasiūlyti perspektyvinės projekcijos tipai buvo neinformatyvūs, nes visais atvejais iš kiekvieno projekcijos centro buvo matomas tik vienas kubo paviršius. Kad stebėtojas, remdamasis tik vienu vaizdu, suvoktų objekto trimatę formą, turi būti matomi keli to objekto veidai. Paprastiems objektams, tokiems kaip kubas, turi būti matomi bent trys veidai. Vaizdą su keliais veidais galima gauti iš vieno taško perspektyvinės projekcijos su fiksuotu centru ir projekcijos plokštuma, statmenai krypčiaižvilgsnis, jei objektas anksčiau buvo perkeltas ir (arba) pasuktas. Tada gaunamas tikroviškas vaizdas, nebent projekcijos centras yra per arti objekto.

Ryžiai. 3-31 Trijų taškų perspektyva, a) Originalus kubas; b) perspektyvinė projekcijaį lėktuvą; c) iškreiptas kubas.

Pirmiausia panagrinėkime paprastą objekto perkėlimą, po kurio atliekama vieno taško projekcija į plokštumą, o projekcijos centras yra taške . Formoje parašyta reikalinga transformacija

, (3-59)

Ryžiai. 3-32 Vieno taško perspektyvinė projekcija su vertimu į , kryptis.

Lygtis (3-59) kartu su Fig. 3-32 parodyta, kad vertimas kryptimis ir atveria papildomus objekto paviršius. Norint atskleisti tris paprasto kubo formos objekto veidus, reikia išversti abiem šiomis kryptimis. Fig. 3-32 paveiksle pavaizduoti kubo, nukreipto nuo pradžios taško, perkėlimo tiesia linija ir vieno taško projekcija į plokštumą rezultatai. Atkreipkite dėmesį, kad priekiniam veidui tikras dydis ir forma.

Iš (3-59) lygties taip pat matyti, kad perkėlimas išilgai ašies, t.y. link projekcijos centro arba toliau nuo jo, akivaizdžiai pasikeičia mastelis (dėl elemento ). Šis efektas atitinka fizinę tikrovę, nes toliau nuo stebėtojo esantys objektai atrodo mažesni. Atkreipkite dėmesį, kad projekcijos centrui artėjant prie begalybės mastelio reiškinys išnyksta. Šis efektas schematiškai parodytas fig. 3-33. Kaip parodyta šiame paveikslėlyje, objektas gali būti bet kurioje projekcijos centro pusėje. Jei objektas ir projekcijos plokštuma yra toje pačioje centro pusėje, tada, kaip parodyta Fig. 3-33, gaunamas tiesioginis vaizdas. Jei objektas ir projekcijos plokštuma guli kartu skirtingos pusės nuo centro gaunamas apverstas vaizdas.

Ryžiai. 3-33 Mastelio efektas judant išilgai ašies vieno taško perspektyvinei projekcijai.

Fig. 3-34 paveiksle parodyti objekto judinimo visomis trimis kryptimis rezultatai. Čia kubas juda trimate linija nuo iki. Pastebimas akivaizdus dydžio padidėjimas, o visų tipų išsaugojimas pastebimas tikroji forma, bet ne priekinio veido dydis.

Šios idėjos išsamiau aprašytos pavyzdyje.

3-22 pavyzdys Vieno taško perspektyvinė projekcija su vertimu

Apsvarstykite vienetinį kubą, kurio centras yra taško atžvilgiu su šiais koordinačių vektoriais

.

Perkelkime kubą 5 vienetais kryptimis ir pastatykime perspektyvinę projekciją į plokštumą, kurios projekcijos centras yra .

Iš (3-59) lygties gauname bendrąją transformacijos matricą

.

Ryžiai. 3-34 Vieno taško perspektyvinė projekcija kartu su vertimais , , kryptimis.

Konvertuotos koordinatės

.

Viršutinis dešinysis objektas pav. 3-32 paveiksle pavaizduotas šis rezultatas.

Jei pradinis objektas buvo perkeltas 5 vienetais kryptimis , o vieno taško perspektyvinė projekcija į plokštumą buvo sudaryta su projekcijos centru , tada iš (3-59) išplaukia, kad bendra transformacijos matrica yra parašyta kaip

.

Atkreipkite dėmesį į bendrą mastelį, pateiktą 0,75 vertės transformacijos matricos apatiniame dešiniajame elemente.

Konvertuotos koordinatės yra

.

Rezultatas parodytas kaip viršutinis dešinysis objektas pav. 3-34.

Jei naudosite objekto pasukimą, taip pat bus matomi keli kraštai. Vienas pasukimas atskleis bent du objekto veidus, o du ar daugiau pasukimų aplink skirtingas ašis atskleis mažiausiai tris veidus.

Transformacijos matrica, skirta sukimui apie ašį kampu ir po to vieno taško perspektyvinė projekcija į plokštumą, kurios projekcijos centras yra:

. (3-60)

Panašiai transformacijos matrica, skirta sukimuisi aplink ašį kampu ir po to vieno taško perspektyvinė projekcija į plokštumą, kurios projekcijos centras yra taške, turi tokią formą:

. (3-61)

Abiejose (3-60) ir (3-61) lygtyse du elementai, atsakingi už perspektyvinę transformaciją (perspektyvą) ketvirtajame transformacijos matricos stulpelyje, nėra lygūs nuliui. Taigi vienas apsisukimas pagrindinė ašis, statmenai tam ašis, ant kurios yra projekcijos centras, yra lygiavertė dviejų taškų perspektyvos transformacijai. Sukant aplink ašį, ant kurios yra projekcijos centras, tokio poveikio nėra. Atkreipkite dėmesį, kad vieno pasukimo metu sukimosi ašies perspektyvinis elementas išlieka nepakitęs, pavyzdžiui, (3-60) ir (3-61) lygtyse elementai ir yra atitinkamai lygūs nuliui.

IN bendras atvejis sukimasis aplink pagrindinę ašį neatskleidžia veidų skaičiaus, reikalingo tinkamam trimačiui vaizdui – bent trys. Norėdami tai padaryti, jis turi būti derinamas su judėjimu išilgai ašies. Kitas pavyzdys iliustruoja tai.

3-23 pavyzdys Dviejų taškų perspektyvinė projekcija, naudojant sukimąsi apie vieną pagrindinę ašį

Panagrinėkime projekciją į plokštumą, kurios centras yra kubo taške Fig. 3-35a, pasuktas aplink ašį kampu taip, kad atsidarytų kairysis paviršius, ir perkeltas vienetais išilgai taip, kad atsidarytų viršutinė pusė.

Naudodami lygtį (3-38) su , lygtį (3-47) su ir lygtį (3-14) su , gauname

.

Konvertuotos koordinatės yra

.

Rezultatas parodytas fig. 3-35b. Iškraipymas atsiranda dėl to, kad projekcijos centras yra per arti kubo.

Pastebėkime lygiagrečių ašių ir tiesių konvergenciją su nykstančiais taškais, esančiais ant ašies.

Šie nykimo taškai apibrėžti 3-25 pavyzdžiuose iš Sect. 3-17.

.

Ryžiai. 3-35 Dviejų taškų perspektyvinė projekcija su sukimu aplink vieną ašį.

Panašiai trijų taškų perspektyvos transformacija atliekama sukant apie dvi ar daugiau pagrindinių ašių, o po to – vieno taško perspektyvos transformacija. Pavyzdžiui, sukimas aplink ašį, tada sukimas aplink ašį ir perspektyvinė projekcija į plokštumą, kurios projekcijos centras yra taške, turi tokią transformacijos matricą

Iš šių rezultatų aišku, kad vieno, dviejų ar trijų taškų perspektyvinė transformacija gali būti sudaryta naudojant sukimus ir vertimus aplink pagrindines ašis ir išilgai jų, o po to vieno taško perspektyvinė transformacija su projekcijos centru viena iš pagrindinių ašių. Šie rezultatai taip pat galioja sukimuisi aplink savavališką ašį erdvėje. Todėl, kai naudojamas grafikos sistema paradigmos su fiksuotu projekcijos centru ir manipuliuojamu objektu, būtina užtikrinti tik vieno taško perspektyvinės projekcijos konstravimą plokštumoje su projekcijos centru ant ašies.

Centrinėse projekcijose rodomo objekto kraštai, lygiagrečiai paveikslo plokštumai, vaizduojami be formos iškraipymo, bet su dydžio iškraipymu.

24 pav. Centrinės kubo projekcijos: a) vienataškė, b) dvitaškė, c) tritaškė.

Bet kurio lygiagrečių linijų, kurios nėra lygiagrečios paveikslėlio plokštumai, rinkinio centrinės projekcijos suartės išnykimo taškas. Vadinamas vienai iš koordinačių ašių lygiagrečių tiesių išnykimo taškas pagrindinis išnykimo taškas. Nes Yra trys koordinačių ašys, tada negali būti daugiau nei trys pagrindiniai išnykimo taškai.

Atsižvelgiant į koordinačių ašių vietą ir paveikslo plokštumą, skiriamos vieno, dviejų ir trijų taškų centrinės projekcijos.

Vienintelis taškas projekcija gaunama, kai vaizdo plokštuma sutampa su viena iš koordinačių plokštumos(arba lygiagrečiai su juo). Tai reiškia, kad tik viena koordinačių ašis nėra lygiagreti vaizdo plokštumai ir turi pagrindinį išnykimo tašką.

Nuo taško iki taško projekcija gaunama, kai tik viena iš koordinačių ašių yra lygiagreti vaizdo plokštumai. Kitos dvi koordinačių ašys nėra lygiagrečios vaizdo plokštumai ir turi du pagrindinius išnykimo taškus. Vaizduojant objektus, esančius žemės paviršiuje, dažniausiai naudojama dviejų taškų projekcija, kurioje vertikalios koordinačių ašis lygiagreti paveikslo plokštumai. Abu pagrindiniai nykimo taškai yra toje pačioje horizontalioje linijoje – horizonto linijoje (6.5 pav.). At tritaškis projekcija, visos trys koordinačių ašys nėra lygiagrečios vaizdo plokštumai, todėl yra trys pagrindiniai nykimo taškai.

Išsamiau panagrinėkime taško vieno taško projekcijos atvejį Rį lėktuvą z= 0 su projekcijos centru SU, guli ant ašies z(25 pav.).

Taškas A projektuojamas į ekraną kaip A¢. Atstumas nuo stebėtojo iki projekcijos plokštumos yra k. Būtina nustatyti taško koordinates A¢ ekrane. Pažymėkime juos x e ir y e. Iš trikampių panašumo A y A z N Ir y e ON mes tai randame

(x.9)

panašiai ir x:

Ryžiai. 25. Centrinių projekcijų formulių išvedimas.

Ryžiai. 26. Kitas būdas apskaičiuoti taškų koordinates centrinėje perspektyvinėje projekcijoje.

Prisiminkite, kad k yra atstumas, o stebėtojas yra taške N = (0,0,-Prisiminkite, kad k yra atstumas, o stebėtojas yra taške). Jei stebėjimo taškas yra koordinačių pradžioje, o projekcijos plokštuma - per atstumą a, kaip parodyta 26 paveiksle, tada formulės x e ir y bus tokia forma:

Formulės (x.10) yra patogesnės, kai reikia tiesiog priartinti stebėtoją ar toliau nuo projekcijos plokštumos. Formulėms (x.11) reikia mažiau laiko skaičiavimams, nes nėra pridėjimo operacijos.

Apsvarstykite tašką trimatėje erdvėje ( a,b,c). Jei įsivaizduosime šį tašką kaip homogenišką taško atvaizdą dvimatėje erdvėje, tada jo koordinatės bus ( a/c,b/c). Palyginus šias koordinates su antrojo tipo formulėmis, gautomis centrinei perspektyvinei projekcijai, nesunku pastebėti, kad dvimatis taško vaizdavimas koordinatėmis ( a,b,c) atrodo kaip jo projekcija į plokštumą z= 1, kaip parodyta Fig. 27.



Ryžiai. 27. Taško projekcija ( a,b,c) į plokštumą z = 1.

Panašiai, atsižvelgiant į vienalyčių koordinačių panaudojimą trimatės erdvės vektoriams, trimatę erdvę galima pavaizduoti kaip keturmatės erdvės projekciją į hiperplokštumą. w= 1 jei ( x, y, z)®( wx, wy, wz, w) = (x,y,z, 1). .

Vienalytėse koordinatėse galima apibrėžti centrinę perspektyvos transformaciją matricos operacija. Ši matrica parašyta taip:

Parodykime, kad ši matrica lemia vienarūšėse koordinatėse nurodyto objekto taško transformaciją į perspektyvinės projekcijos tašką (taip pat ir homogeninėse koordinatėse). Leiskite p = (x, y, z) – taškas trimatėje erdvėje. Jo vienalytis pateikimas v = (wx, wy, wz, w). Padauginkite v iš P:

tai tiksliai pakartoja centrinei perspektyvai išvestas formules (x.10).

Dėl žmogaus regėjimo ypatumų nuo stebėtojo nutolusiems objektams geriau taikyti perspektyvinę projekciją, gana artimiems (ištiestos rankos atstumu) – ortografinę ar aksonometrinę, o dar arčiau – atvirkštinę perspektyvinę projekciją.

Kurti stereo vaizdai naudojamos dvi centrinės projekcijos, kurių centrai sutampa su hipotetinio stebėtojo akių vieta, t.y. jie yra tam tikru atstumu vienas nuo kito tiesia linija, lygiagrečia vaizdo plokštumai. Užbaigus projekciją, gaunami du objekto vaizdai - kairiajai ir dešinei akims. Išvesties įrenginys turi pateikti šiuos vaizdus kiekvienai vartotojo akiai atskirai. Šiuo tikslu galima naudoti spalvų arba poliarizuojančių filtrų sistemą. Sudėtingesni išvesties įrenginiai (pvz., šalmai) pateikia kiekvieną vaizdą į atskirus ekranus kiekvienai akiai.

Visos aukščiau aptartos projekcijos priklauso plokščiųjų geometrinių projekcijų klasei, nes projekcija atliekama plokštumoje (o ne lenktame paviršiuje) ir naudojant daugybę tiesių linijų (o ne kreivių). Ši projekcijų klasė dažniausiai naudojama kompiuterinėje grafikoje. Priešingai, kartografijoje dažnai naudojamos neplokštumos arba negeometrinės projekcijos.

Paskutinėje paskaitoje kalbėjome apie svarbiausias projekcijas, naudojamas afininėje geometrijoje. Dabar pereikime prie perspektyvinės geometrijos ir kelių naujų projekcijų tipų.

Nuotraukose, paveiksluose, ekranuose vaizdai mums atrodo natūralūs ir teisingi. Šie vaizdai vadinami perspektyva. Jų savybės tokios, kad tolimesni objektai vaizduojami mažesniu masteliu, lygiagrečios linijos dažniausiai nėra lygiagrečios. Dėl to vaizdo geometrija pasirodo gana sudėtinga, o iš baigto vaizdo sunku nustatyti tam tikrų objekto dalių dydį.

Įprasta perspektyvinė projekcija yra centrinė projekcijaį plokštumą tiesioginiais spinduliais, einančiomis per taško projekcijos centrą. Vienas iš projektuojančių spindulių yra statmenas projekcijos plokštumai ir vadinamas pagrindiniu. Šio spindulio ir projekcijos plokštumos susikirtimo taškas yra pagrindinis paveikslo taškas.

Yra trys koordinačių sistemos. Paprastai programuotojas dirba ir saugo duomenis apie geometrinius objektus pasaulio koordinatėse. Siekiant padidinti tikroviškumą, ruošiantis rodyti vaizdą ekrane, duomenys apie objektus iš pasaulio koordinačių konvertuojami į peržiūros koordinates. Ir tik tuo metu, kai vaizdas rodomas tiesiai ekrano ekrane, jie pereina į ekrano koordinates, kurios yra ekrano pikselių skaičiai.

Pirmosios dvi sistemos gali būti naudojamos daugiamatėse koordinačių sistemose, tačiau pastarosios tik dvimatėse. Operacijos yra negrįžtamos, tai yra, neįmanoma atkurti trimačio vaizdo iš dvimačio projekcijos vaizdo.

Bendrosios perspektyvos transformacijos matrica

Šioje matricoje elementai a, d, e yra atsakingi už mastelio keitimą, m, n, L dėl poslinkio, p, q, r projekcijai, s visapusiškam mastelio keitimui, X sukimuisi.



Ar jums patiko straipsnis? Pasidalinkite su draugais!