of 310/310
Felicia Ionescu PROGRAMAREA APLICAŢIILOR GRAFICE

Felicia Ionescu - Programarea aplicatiilor grafice

  • View
    3.906

  • Download
    12

Embed Size (px)

Text of Felicia Ionescu - Programarea aplicatiilor grafice

Felicia IonescuPROGRAMAREAAPLICAIILOR GRAFICEEditura PRINTECHBucuretiDescrierea CIP a Bibliotecii NaionaleIONESCU, FELICIA Programarea aplicaiilor grafice.Felicia Ionescu, Bucureti: PRINTECH, 1999 203 p. :il. ; cm.ISBN 973-9475-93-01.Programare004.42 Refereni tiinifici:Prof. Dr. Ing. R. Strungaru.l. Dr. Ing. O. GrigoreEditura PRINTECHSplaiul Independenei 313, Bucureti, Sector 6Tel: 092 355 664Director Editur:Ecaterina MilicConsilier Editorial:Mihaela TomaToate drepturile asupra acestei ediii aparin autorului. Reproducerea parial sau total a textului sau a ilustraiilor din aceast carte este posibil numai cu acordul scris al autorului. Cuprins1 Introducere n grafica pe calculator 11.1 Aplicaii ale graficii pe calculator 11.2 Sisteme grafice 31.3 Sisteme de referin tridimensionale 42 Modelarea obiectelor 72.1Modelarea poligonal a obiectelor 82.1.1 Reprezentarea poligoanelor 82.1.2 Reprezentarea poliedrelor 112.1.3 Implementarea modelului poligonal 132.1.4 Generarea modelului din descrierea matematic 162.1.5 Generarea modelului prin baleiere spaial 172.1.6 Generarea modelului pornind de la o mulime de puncte care aparin suprafeei de frontier a obiectului182.1.7 Redarea imaginii obiectelor poligonale 192.2 Modelarea obiectelor prin reele de petice 82.3 Modelarea prin compunerea obiectelor 212.4 Modelarea prin divizare spaial 223 Transformri geometrice 253.1Transformri geometrice n spaiu 253.1.1 Transformri geometrice primitive 253.1.2 Sistemul de coordonate omogene 283.1.3 Compunerea transformrilor geometrice 313.1.4 Transformri inverse 353.1.5 Transformarea sistemelor de referin 373.1.5.1 Rotaia fa de o ax paralel cu una din axele sistemului de referin403.1.5.2 Scalarea fa de un punct oarecare n spaiu 423.1.5.3 Rotaia fa de o dreapt oarecare n spaiu 423.1.5.4 Transformarea de modelare 443.1.6 Alte transformri geometrice n spaiu 463.2Transformri geometrice n plan 474 Sisteme de vizualizare 494.1 Transformarea de observare 514.2 Transformarea de proiecie 564.2.1 Proiecia paralel 574.2.2 Proiecia perspectiv 574.2.3 Sistemul de referin normalizat 594.3 Sistemul de vizualizare standard 664.3.1 Definirea sistemului de referin de observare 674.3.2 Definirea transformrii de normalizare 674.4 Sistemul de referin ecran 3D 724.5 Decuparea obiectelor 744.5.1 Decuparea n plan 744.5.2 Decuparea suprafeelor relativ la volumul de vizualizare 794.5.3 Eliminarea obiectelor aflate n exteriorul volumului de vizualizare824.5.4 Volumul de delimitare 834.5.5 Detecia coliziunii 845 Transformarea de rastru 855.1 Reprezentarea culorilor n sistemele grafice 865.1.1 Modelul RGB 865.1.2 Modelul HSV 885.2 Generarea segmentelor de dreapt 895.3 Generarea poligoanelor 915.4 Eliminarea suprafeelor ascunse 935.4.1 Compararea adncimilor 945.4.2 Eliminarea suprafeelor ascunse n spaiul obiect 955.4.3 Eliminarea suprafeelor ascunse n spaiul imagine: algoritmul Z-buffer965.4.4 Eliminarea suprafeelor orientate invers 995.5 Anti-aliasing 1025.6 Texturarea 1035.6.1 Aplicaia texturilor 1045.6.2 Filtrarea texturilor 1066 Biblioteca grafic OpenGL 1096.1 Dezvoltarea programelor grafice folosind utilitarul GLUT 1116.1.1 Funcii de control ale ferestrei de afiare 1116.1.2 Funcii callback 1126.1.3 Funcii de execuie 1136.1.4 Generarea obiectelor tridimensionale 1136.2 Caracteristicile biobliotecii OpenGL1146.2.1 Poarta de afiare OpenGL 1146.2.2 Bufferul de cadru 1156.2.3 Operaiile de baz OpenGL 1176.2.4 Primitive geometrice 1206.2.5 Reprezentarea culorilor n OpenGL 1236.3 Sistemul de vizualizare OpenGL1256.3.1 Sistemele de referin 1256.3.2 Transformri geometrice 1276.4 Decuparea suprafeelor i eliminarea obiectelor aflate n exteriorul volumului de vizualizare1416.4.1 Eliminarea suprafeelor ascunse 1426.4.2 Selecia suprafeelor n funcie de orientare 1426.5 Liste de display OpenGL 1436.6 Texturarea n OpenGL 1456.6.1 Definirea texturilor 1456.6.2 Filtrarea texturilor 1527 Modele de reflexie i iluminare1577.1 Consideraii teoretice asupra reflexiei luminii 1577.2 Modelul Phong de reflexie a luminii 1607.3 Modele de umbrire 1627.3.1 Modelul de umbrire constant 1627.3.2 Modelul de umbrire Gouraud 1627.3.3 Modelul de umbrire Phong 1667.4 Funciile OpenGL de calcul a iluminrii 1677.4.1 Definirea surselor de lumin 1677.4.2 Definirea proprietilor materialelor 1697.4.3 Normalele n vrfurile primitivelor geometrice 1747.4.4 Controlul poziiei i al direciei surselor de lumin 1767.4.5 Combinarea culorilor 1807.4.5.1 Transparena 1817.4.5.2 Anti-aliasing 1848 Crearea i vizualizarea scenelor virtuale 1878.1 Reprezentarea scenelor virtuale 1898.2 Limbajul VRML 1928.2.1 Construirea formelor geometrice 1958.2.2 Noduri de grupare 1968.2.3 Animaia n VRML 201Bibliografie 203PrefaDomeniile de aplicaie ale graficii pe calculator s-au extins o dat cu creterea puterii decalcul acalculatoarelori cuieftinireaadaptoarelori aacceleratoarelor grafice: realizarea interfeelor utilizator dezvoltate n numeroase programe utilitare i medii deprogramare, proiectareaasistat decalculator (CADComputer Aided Design), prezentrile grafice interactive, vizualizarea datelor tiinifice, tehnologia multimedia, realitatea virtual. n acelai timp, apariia a numeroase biblioteci, limbaje i programe utilitare (toolkits) care propun diferite modaliti de abordare a aplicaiilor graficefacei mai dificilsarcinaprogramatorului deaselectaceamai adecvat tehnic de soluionare a problemei dorite. n aceast lucrare se pune accentul pe conexiunea dintre aspectele teoretice ale graficii i implementareaprogramelordegenerareaimaginii obiectelori scenelor virtuale tridimensionale. Lucrarea se bazeaz pe materialul de cursGrafica pe Calculator, predat laanul IV, specializareaIngineriaInformaiei, seciaElectronic Aplicati IngineriaInformaiei aFacultii deElectronici Telecomunicaii. n primele capitole sunt prezentate operaiile de baz n grafica pe calculator: modelarea obiectelor tridimensionale, transformri geometrice n spaiu, sisteme de vizualizare, transformarea de rastru. n cea de-a doua parte a lucrrii se reiau toate aceste aspecte ale generrii imaginilor din perspectiva programrii, folosind biblioteca grafic OpenGL, sistemul de dezvoltare GLUT i limbajul de modelare n realitatea virtual VRML. Deasemenea, sunt prezentate aspectele avansate ale generrii imaginilor tridimensionale (anti-aliasing, umbrire, texturare), att din punct de vedere teoretic, ct i al abordrii n programare.Unul din scopuri principale ale crii este de a oferi soluii de implementare a aplicaiilor graficeprinprezentareametodelor actualei accesibilederezolvarea fiecrei etapeaprocesului degenerareaimaginilor.nacest sens, aproape toate imaginile ilustrative ale diferitelor tehnici au fost produse de autoare prin programe grafice descrise n text. Octombrie, 1999 Autoarea1Introducere n grafica pe calculator n standardul ISO (International Standardization Office) se definete grafica pe calculator (computer graphics) ca metode i tehnici de conversie a datelor ctre i delaun dispozitivgrafic(display)prin intermediulcalculatorului. nplus,se mai menioneaz c aceste metode reprezint modul cel mai puternic de comunicare ntre om i calculator. Informaia prezentat vizual este perceput de om n modul cel mai natural. Structuri complexe i relaiile ntre ele pot fi percepute ntr-un timp mai scurt, ntr-un numr mai mare i cu mai puine erori n prezentarea vizual dect n oricare alt mod de prezentare. Noiunea degrafic pe calculatoreste asimilat n cele mai multe referine din domeniu cu aceea de grafic generativ (sau sintez de imagine), avnd ca direcie de conversie i transformare a datelor aceea de a crea pe display imaginea unor obiecte a cror descriere este stocat n memoria calculatorului. 1.1Aplicaii ale graficii pe calculatorDomeniile de aplicaie ale graficii pe calculator s-au extins o dat cu creterea puterii decalcul acalculatoarelori cuieftinireaadaptoarelori aacceleratoarelor grafice. ncontinuaresunt prezentatectevadincelemai importantedomenii de aplicaie ale graficii pe calculator. Una din cele mai extinse utilizri ale graficii este n realizarea interfeelor utilizator dezvoltate n numeroase programe utilitare, medii de dezvoltare i programare, sistemedeoperare, bazededate. Intefeelegraficesunt mult mai prietenoasedect interfeeleprincomenzi datenliniade comandi permit instruirearapidautilizatorilor neexeperimentai n folosirea unor astfel de aplicaii. O alt ramur important de aplicare a graficii pe calculator o constitue proiectarea asistat de calculator (CADComputer Aided Design), folosit n electronic,mecanic,aeronautic, arhitectur, etc.Domeniul de proiectare asistat CAD a reprezentat mult vreme cea mai important aplicaieagraficii pecalculator i aprilejuit dezvoltareaanumeroase tehnici de generare i vizualizare a modelelor tridimensionale. Prezentrile grafice interactive (n administraie, tehnologie, statistic, management, planificare, comandaiconducereaproceselorindustriale) genereaz o gam variat de reprezentri sugestive ale datelor numerice. Astfel deprezentri permit analizasistemelormult mai sugestivdect datele prezentate n tabele. n tehnologiamultimedia prezentarea de imagini grafice sintetizate, texte, imagini video i sunet sunt integrate ntr-o singur aplicaie (de instruire interactiv, teleconferine, etc). Conexiuneadintregenerareadeimagini tridimensionale i prezentarea de imagini video animate reprezint cel mai important aspect al soluiei multimedia. Realitatea virtualeste tehnica prin care se obine imersiunea (total sau parial) a observatorului ntr-un mediu tridimensional generat interactiv de calculator. Realitatea Virtual a cunoscut n ultimii ani o imens dezvoltare i publicitate. n reviste, magazine, la televiziune, s-a prezentat aceast nou i fantastic tehnologie din cele mai variate puncte de vedere. Cuvntul virtual este folosit n mod obinuit n domeniul calculatoarelor pentru a desemna o entitate care simuleaz o alt entitate. De exemplu, termenul memorie virtual se refer la simularea memoriei principale prinmemoria hard-discului. Cuvntul realitateserefer la mediul perceput de omprin intermediul simurilor. Deoarece realitatea este perceput prin intermediul simurilor, este posibil alterarea acesteia prin modificareadatelorperceputedeunul saumai multesimuri. Deaceea,Realitatea Virtualsereferlamodalitateaprincarecalculatorul modificmodul ncareo persoanperceperealitatea, prinsimulareaunei alterealiti.Aceastrealitate, sau mediu, simulat de calculator este numit Realitate Virtual. Dintre cele cinci simuri care sunt folosite pentru percepia realitii, nu toate sunt la fel de importante n crearea unui mediu virtual. Simul gustului i al mirosului auaciuni limitate nperceperea realitii (cu excepia servirii mesei!) i puine cercetri au fost efectuate pentru folosirea lor n medii virtuale. Simul tactil este mult mai util, mai alesatunci cndsemanipuleazobiectenmediul virtual. Greutatea, temperatura, duritatea, rezistena la effort, toate aceste informaii se obin prin simul tactil. Din acest motiv, cercetri importante au fost fcute pentru a simula atingerea obiectelor virtualei, nmomentul defa, experimentelenmediul virtual permit generarea informaiilor tactile. Cele mai importante simuri folosite n realitatea virtual sunt vzul i auzul, deoarece cele mai multe informaii despre mediul nconjurtor se obin prin intermediul ochilor i al urechilor. Din acest motiv, cele mai multecercetri ndomeniul realitii virtualeaufost fcutendomeniul generrii imaginii i a sunetelor.Dintre aplicaiile cele mai importante ale realitii virtuale se pot enumera: Simulatoare de antrenament, n special simulatoare de zbor, n care se pot exersa manevre dificile, fr a pune n pericol viaa pilotului sau securitatea aparatului de zbor. Proiectare n diferite domenii de activitate (construcii, arhitectur). Proiectantul are posibilitatea s vad rezultatele proiectului sub forma imaginii acestuia n timp real, s observe detaliile mpreun cu alte persoaneinteresate,i s ia deciziide modificarenainte deconstruirea prototipului. Vizualizarea tiinific, prin care se obine imaginea diferitelor modele sau fenomene inaccesibile de fi observate altfel (structuri atomice, fluxuri de informaie, etc). n domeniul medical, n special chirurgie, se pot efectua experimente la rece denvare a diferitelor proceduri fr riscul vieii pacientului. Jocurile distractive i filmele de animaie sunt unele din cele mai cunoscute aplicaii de realitate virtual.n aplicaiile de realitate virtual pot fi nglobate un numr diferit de componente care asigur un anumit grad de imersiune, adic de senzaie a prezenei participantului nmediul virtual: sistemdevizualizare, sistemdesunet, sistemde urmrire a poziiei capului i a minii, sistem generare a senzaiei tactile i a forei de reacie. n diferite aplicaii de realitate virtual, unele dintre aceste sisteme, cu excepia sistemului de vizualizare, pot s lipseasc. Sistemul de vizualizare este componenta cea mai important a aplicaiilor de realitate virtual i exist unele categorii de aplicaii de realitate virtual (aplicaii de realitate virtual desktop) dezvoltate numai pe baza generrii imaginii mediului virtual. n aplicaiile de realitate virtual desktop, imaginea vizual a mediului virtual tridimensional este afiat pe monitorul unui calculator (n general PC). Participantul intercioneaz cu mediul virtual prin dispozitive de intrare standard (tastatur, mouse, joystick). Aceste sisteme permit observarea mediului virtual printr-o fereastr (ecranul monitorului) i deaceeasemai numesc sistemeWoW(Windowonthe World). Sunt cele mai simple i mai ieftine sisteme de realitate virtual, dar este de ateptat caastfel desistemescunoascnviitordezvoltri spectaculoase, datorit apariiei unui mare numr de acceleratoare grafice care permit redarea n timp real a unor imagini realiste.Crearea unui mediu virtual, n care se pot efectua diferite experimente, este un proces care necesit dou componente importante, i anume crearea modelului scenei virtualei vizualizareascenei virtuale. Creareamodelului scenei virtuale(mai pe scurt, creareascenei virtuale) esteunprocesoff-linei, decelemai multeori, de durat considerabil, prin care se creeaz colecia de modele ale obiectelor tridimensionale care constitue cea mai adecvat reprezentare a mediului virtual. Vizualizareascenelorvirtualeesteunproceson-line, caresedesfoarn timp real, cu participarea uneia sau mai multor persoane, n care scena virtual este explorat n mod interactiv, i, n fiecare moment, imaginea scenei redat pe display depinde de condiiile de explorare (poziie de observare, aciuni interactive, etc). 1.2Sisteme graficeO aplicaie grafic, indiferent de domeniul creia i este destinat, se dezvolt ntr-un sistem care prezint anumite faciliti grafice, sistem numit la modul general sistem grafic. Un sistem grafic este un calculator care dispune de componente hardware i softwarepentrucreareasauprelucrareaimaginilor. Componentahardwareceamai important a unui sistemgrafic este adaptorul (sau acceleratorul) grafic, prin intermediul cruia este comandat un dispozitiv de afiare (display) color. La aceasta se mai adaug diferite dispozitive de intrare (tastatur, mouse, joystick, trackball, interfee specializate) care asigur interaciunea utilizatorului cu programul de aplicaie.n programarea aplicaiilor grafice intervin mai multe componente software, care asigur crearea imaginilor pe display (Fig. 1.1). Programul de aplicaie grafic se dezvolt pe baza unor sisteme de dezvoltare de aplicaii (toolkit-uri) sau direct, prin utilizarea unor biblioteci grafice care asigur interfaa cu echipamentul hardware prin intermediul driverelor sistemului de operare. Sistemele de dezvoltare sunt de cele mai multe ori orientate ctre aplicaie i prevd un setde funciidenivelnalt care permit creareaunuianumit tip de aplicaie.De exemplu, exist toolkit-uri pentru generarea obiectelor i a scenelor virtuale (3d Studio, Autocad, AC3d, Sense8, Designer Workbench, etc), toolkit-uri pentru redarea imaginii scenelor virtuale (Performer, browser Cosmo Player, etc).Bibliotecile grafice sunt pachete de funcii care asigur interfaa programului deaplicaie(creat direct sauprinintermediul unui toolkit careapeleazfunciile bibliotecii) cuechipamentele hardware ale sistemului grafic. Bibliotecile grafice reprezint nivelul de programare n care se ncearc introducerea portabilitii programelor grafice, prin asigurarea unei interfee Echipament hardwareSistem de operare Biblioteci graficeSistem de dezvoltare de aplicaii (toolkit)Programul de aplicaieUtilizatorFig. 1.1 Componentele necesare pentru crearea aplicaiilor grafice.independente de echipamentele hardware care s respecte anumite convenii de reprezentare a entitilor grafice descrise n standarde.Primul standardgrafic a fost standardul GKS(Graphical Kernel System) elaborat de ISO n 1985, care coninea un set de funcii grafice 2D independente de echipament. Acest standard a fost extins n anul 1988 la GKS 3D, care conine funcii 3D independente de echipament.Un alt standard, PHIGS (Programmers Hierarchical Graphical System) este un standard 3D care permite n plus organizarea ierarhic a modelelor obiectelor i a scenelor virtuale. Bibliotecile grafice cele mai generale sunt bibliotecile grafice care implementeaz un anumitstandard ndefinireafunciilorde acceslaechipamentele hardware. Cele mai cunoscute biblioteci grafice sunt OpenGL, DirectX, QuickDraw, care sunt implementate n numeroase sisteme grafice.n momentul de fa, situaia cea mai obinuit n crearea aplicaiilor grafice esteaceeancaresepoate folosi uncalculator caredispune defaciliti grafice (adaptoare, acceleratoare, drivere, biblioteci) care permit programarea la nivel nalt, de cele mai multe ori complet independent de dispozitivele hardware. Biblioteci grafice cum sunt OpenGL sau DirectX asigur accesul la funcii grafice adaptate i optimizate pentru dispozitivele grafice disponibile ale sistemului. De aceea, n lucrare s-a acordat o mai mic ntindere descrierii unor funcii existente n biblioteci (de exemplu funciile de generare a segmentelor de linie dreapt, a cercurilor, etc.) i accentul s-a ndreptat ctre prezentarea metodelor de baz de generare a imaginilor i a modului n care acestea se pot aplica folosind limbaje i biblioteci grafice de nivel nalt. Programele grafice propuse n aceast carte se prezint sub forma de cod C, C++ i, uneori, pseudocod asemntor limbajului C. Biblioteca grafic OpenGL este folosit intens, datorit portabilitii i disponibilitii acesteia n aproape toate calculatoarele, delacalculatoarePCpnlastaii graficeputernice, subunnumr mare de sisteme de operare i apelabil din numeroase sisteme de dezvoltare (toolkit). Scopul prezentei lucrri este acela de a da o descriere unificat a principalelor metode de generare a imaginilor tridimensionale mpreun cu aspecte de implementare caresfacilitezesarcinaprogramatorului deaabordaacest domeniudeaplicaii diversificat i n permanent cretere. n acest sens, aproape toate imaginile ilustrative ale diferitelor tehnici au fost produse de autor prin programe grafice descrise n text. 1.3Sisteme de referin tridimensionalePentru crearea aplicaiilor grafice este necesar ca obiectele s fie poziionate ntr-un sistem de referin tridimensional. Exist mai multe posibiliti de a specifica poziia unei mulimi de puncte (vrfuri) prin care este reprezentat un obiect n spaiul tridimensional: coordonate cilindrice, coordonate sferice, coordonate Carteziene. Dintre aceste sisteme de referin, cel mai utilizat n aplicaiile grafice este sistemul de coordonate Cartezian. Sistemul de coordonate Cartezian n care sunt definite toate obiectele scenei virtuale se numete sistem de referin universal (world coordinate system- WCS). UnsistemdecoordonateCarteziansedefineteprinorigineaOi trei axe perpendiculare, Ox, Oyi Oz, orientatedupregulaminii dreptesaudupregula minii stngi. Diferena dintre cele dou sisteme se poate urmri n Fig. 1.2. ntr-un sistem orientat dup regula minii drepte, dac se rotete mna dreapt n jurul axei z de la axa x pozitiv spre axa y pozitiv, orientarea degetului mare este n direcia z pozitiv. ntr-un sistem orientat dup regula minii stngi, rotirea de la axa x pozitiv spre axa ypozitiv, cuorientarea degetului mare ndirecia zpozitivseobine folosind mna stng. Orientarea dup regula minii drepte a sistemelor de coordonate corespunde conveniei matematice standard. Diferitesistemedegrafictridimensionalsauderealitatevirtualfolosesc convenii diferite pentru definirea sistemelor de referin, ceea ce conduce la confuzii, dacnuseprecizeazconveniafolosit. nacest text, pentrusistemuldereferin universal se folosete convenia de sistem de coordonate drept. n grafica tridimensionalsemai folosesci altesistemedereferin, carepermit descrierea operaiilor de transformri geometrice i care vor fi precizate pe parcursul lucrrii. Unpunct Pnspaiul tridimensional sereprezintnsistemul dereferin Cartezianprintr-untripet devalori scalare, x, y, z, care reprezint componentele vectorului depoziieOPpeceletrei axedecoordonate. Dacsenotezcui,j,k versorii (vectoriiunitate)ai celortreiaxedecoordonatex, y, z, atunci vectorul de poziie al punctului P este OP = xi + yj + zk. n notaia matriceal, un punct n spaiul tridimensional se poate reprezenta printr-o matrice linie sau printr-o matrice coloan:[ ] z y x P sau ]]]]]

zyxP Ambele convenii sunt folosite n egal msur n sistemele grafice, ceea ce, dinnou, poateprovocadiferiteconfuzii, dacnuseprecizeazconveniafolosit. Convenia de reprezentare sub form de matrice linie a unui punct, folosit n unele lucrri [Watt95], [Mold96], are avantajul c exprim operaiile de concatenare a matricelor ntr-unmodnatural, delastngaladreapta. Conveniadereprezentare matematic, standardul graficPHIGS, bibliotecagraficOpenGL, cai uneledin lucrrile de referin n domeniu [Foley90] folosesc notaia de matrice coloan pentru un punct n spaiul tridimensional, care este adoptat i n lucrarea prezent. yxzOxzyOFig.1.2 (a) Sistem de coordonate orientat dup regula minii drepte i(b) dup regula minii stngi.(a)(b)2Modelarea obiectelor Modul cel mai convenabil de modelare a scenelor virtuale este acela n care fiecareobiect estemodelat ntr-unsistemdecoordonatepropriu, numit sistemde referin model (sau sistem de referin local), n care punctele (vrfurile) obiectului sunt precizaterelativlaunanumit punct dereferinlocal. Defapt, nmodelarea ierarhic, unobiect complexpoateaveaunnumroarecaredesistemedereferin locale, cteunul pentrufiecarepartecomponentasa. Instaniereaunui obiect n scena virtual nseamn amplasarea acestuia n sistemul de referin universal printr-o succesiunedescalri, rotaii i translaii, caretransformobiectul dinsistemul de referin local n sistemul de referin universal. Aceast succesiune de transformri este cunoscut sub numele de transformare de modelare. Proprietile obiectelor tridimensionale care se modeleaz n aplicaiile grafice se pot mpri n dou categorii:formaiatribute de aspect. Informaia de form a unui obiect este diferit de celelalte atribute ale obiectului, deoarece forma este aceea care determinmodul ncare obiectul apare nredarea grafic i toate celelalte atributesecoreleazcuformaobiectului (deexemplu,culoareasespecificpentru fiecare element de suprafa a obiectului). Din punct de vedere al formei, obiectele tridimensionale reprezentate n grafica pe calculator pot fi obiecte solidesau obiectedeformabile. Un solid este un obiect tridimensional a crui form i dimensiuni nu se modific n funcie de timp sau de poziia n scen (proprietatea de form volumetric invariant). Majoritatea aplicaiilor de realitate virtual se bazeaz pe scene compuse din solide, dar exist i aplicaii n care obiectele reprezentate i modific forma i dimensiunile ntr-un mod predefinit sauca urmare a unor aciuni interactive (de exemplu, nsimulri ale interveniilor chirurgicale). Chiar i reprezentarea unor astfel de obiecte (obiecte deformabile) se bazeaz pe un model al unui solid, care se modific n cursul experimentului derealitatevirtual. nlucrareadefasevorprezentamodeleale solidelor, care stau la baza prelucrrilor din grafic i realitate virtual. Modelarea solidelor este otehnic de proiectare, vizualizare i analiz a modului n care obiectele reale se reprezint n calculator. n ordinea importanei i a frecvenei de utilizare, metodele de modelare i reprezentare a obiectelor sunt urmtoarele:1. Modelareapoligonal. nacestformdereprezentare, obiectelesunt aproximate printr-o reea de fee care sunt poligoane planare.2. Modelarea prin petice parametrice bicubice (bicubic parametric patches). Obiectele sunt aproximate prin reele se elemente spaiale numite petice (patches). Acestea sunt reprezentate prinpolinoame cudouvariabile parametrice, n mod obinuit cubice. 3. Modelareaprin combinareaobiectelor(Constructive Solide Geometry- CSG). Obiectele sunt reprezentate prin colecii de obiecte elementare, cum sunt cilindri, sfere, poliedre.4. Modelareaprintehnicadivizrii spaiale. Obiectelesunt ncorporaten spaiu, prin atribuirea fiecrui element spaial a unei etichete n funcie de obiectul care ocup elementul respectiv.Aceste metode de modelare i reprezentare a solidelor se pot grupa n reprezentri prinsuprafaadefrontier(primeledoumetode) i reprezentri prin volum (ultimele dou metode). 2.1Modelarea poligonal a obiectelorModelareapoligonal, ncareunobiect constdintr-oreeadepoligoane planarecareaproximeazsuprafaadefrontier(boundaryrepresentationB-rep), esteformaclasicfolositngraficapecalculator. Motiveleutilizrii extinsea acestei formedereprezentaresunt uurinademodelarei posibilitateaderedare rapidaimaginii obiectelor. Pentruobiectelereprezentatepoligonal s-audezvoltat algoritmideredareeficieni, careasigurcalculul umbririi, eliminareasuprafeelor ascunse, texturare, antialiasing, frecvent implementai hardware n sistemele grafice. nreprezentarea poligonal, unobiect tridimensional este compus dintr-o colecie de fee, fiecare fa fiind o suprafa plan reprezentat printr-un poligon.2.1.1Reprezentarea poligoanelorUn poligon este o regiune din plan mrginit de o colecie finit de segmente de dreapt care formeaz un circuit nchis simplu. Fienpuncte nplan, notatev0,v1,,vn1insegmente de dreapt e0= v0v1,e1= v1v2, . en1 = vn1v0, careconecteazperechi depuncte succesivenordineciclic, deci inclusivconexiuneantreultimul punct i primul punct din list. Aceste segmente mrginesc un poligon dac i numai dac:(a) Intersecia fiecrei perechi de segmente adiacente n ordinea ciclic este un singur punct, coninut de ambele segemente: ei ei+1 = vi+1, pentru oricare i = 0,,n1.(b) Segmenteneadiacentenuseintersecteaz:eiej =, pentruorice j i+1.Segmentele care mrginesc un poligon (linia poligonal) formeaz un circuit nchis(ciclu)deoarecesegmentelesunt conectatecaptlacapt i ultimul segment conecteazultimul punct cuprimul punct; ciclul estesimpludeoarecesegmentele neadiacente nu se intersecteaz. Punctelevi senumescvrfurilepoligonului (vertices); segmenteleei se numescmuchii (saulaturi) alepoligonului. Deremarcat cunpoligonconinen vrfuri i n muchii i c muchiile sunt orientate, astfel nct formeaz un ciclu (circuit nchis). Oastfel de orientare a segmentelor se numete orientare consistent. n general, se folosete ordinea de parcurgere n sensul invers acelor de ceasornic: dac se parcurg muchiile n sensul lor de definiie, interiorul poligonului este vzut ntotdeauna n partea stng (Fig. 2.1).OteoremimportantnprelucrareapoligoaneloresteteoremaluiJordan, care spune c orice curb plan nchis simpl mparte planul n dou pri: o parte interioar curbei, care este o regiune limitat, i o parte exterioar curbei, care este o regiune nelimitat. Dei pare simpl din punct de vedere intuitiv, demonstraia teoremei lui Jordan este destul de dificil i poate fi gsit n referinele bibliografice [Rour93]. Aceast teorem justific definiia care se mai folosete pentru poligoane, i anume: poligonul este o regiune limitat din plan, mrginit de o colecie de segmente orientate consistent. Prin aceast definiie se consider poligonul ca o regiune nchis dinplan. Uneori, poligonul esteconsiderat cafiindformatnumai dinconturul su, deci numai de segmentele de dreapt care mrginesc regiunea, i nu de regiunea nsi. n continuare, se folosete notaia Ppentru a desemna conturul poligonuluiP(linia poligonal nchis care mrginete poligonul). Triangularizarea poligoanelor.O alt proprietate important a poligoanelor folosit n grafic este proprietatea de triangularizare. Se demonstreaz c orice poligon poate fi mprit n triunghiuri prin adugarea a zero sau mai multe diagonale. Proprietatea de triangularizare se bazeaz pe noiunile de vizibilitate i diagonal n poligoane.Fig. 2.1 Segmentele liniei poligonale sunt orientate i nu se autointerecteaz.v5v4v3v2v0Un punctxdin interiorul unui poligon poatevedeaun altpuncty,dac i numai dac segmentulxynu este n nici un punct al su exterior poligonului, adic xy P. Acest lucru nsemn c linia care unete dou puncte xiy, vizibile unul altuia, poate atinge un vrf al poligonului. Vizibilitatea ntre dou puncte xiyeste complet (clearly visible), dac linia care unete cele dou puncte nu atinge frontiera poligonal (Fig. 2.2).O diagonal a unui poligon este un segment de dreapt ntre dou vrfuri a i b, complet vizibile unul altuia. Acest lucru nseamn c intersecia dintre segmentul nchis ab i P este mulimea {a,b}, adic segmentul ab nu atinge linia poligonal Pnaltepunctedect vrfurileaib, denceput i desfrit alesegmentului. Condiiilecasegmentulabcareunetevrfurileaibaleunui poligonsfieo diagonal nacel poligonsunt deci:abPiabP ={a, b}.Orice diagonal mparte un poligon n dou poligoane mai mici (Fig. 2.2).Dou diagonale ale unui poligon sunt nencruciate (noncrossing) dac intersecia lor este o submulime a capetelor lor (punctele de nceput i de sfrit ale segmentelor). Dac se adaug attea diagonale nencruciate cte sunt posibile ntr-un poligon, atunci poligonul este mprit n triunghiuri. O astfel de partiionare a unui poligonntriunghiuri senumetetriangularizareapoligonului. Diagonalelesepot aduga n orice ordine, atta timpct sunt nencruciate. Demonstraia teoremei conformcreiaoricepoligonadmiteotriangularizare, sebazeazpeteoremalui Meister, demonstrat n [Rour93], care stabilete c orice poligon cu n 4vrfuri admite cel puin o diagonal. Teorema triangularizrii se bazeaz i pe lema numrului de diagonale: Orice triangularizare a unui poligon P cu n vrfuri utilizeaz n 3 diagonale i const din n 2triunghiuri.Acesteteoremesedemonstreazprininducie. nFig. 2.3este prezentat triangularizarea unui poligon convex cu opt laturi; se insereaz 8 3 = 5 diagonale nencruciate i rezult 8 2 = 6 triunghiuri. Teorematriangularizrii, care asigurcorice poligonpoate fi divizat n triunghiuri, reprezint suportul celei mai eficiente metode degenerare aimaginii (redarea) obiectelor tridimensionale: obiectele se reprezint prin fee poligonale, xyfbadceFig. 2.2 Vizibilitate i diagonale n poligoane.Punctele x i y sunt vizibile unul altuia. Punctele c i d sunt invizibile unul altuia deoarece ef P.Punctele a i b sunt complet vizibile unul altuia, deci ab este diagonal n P.fiecare poligon se descompune n triunghiuri i triunghiurile sunt generate prin algoritmi implementai hardware. Dinpunct devedere al reprezentrii nprograma poligoanelor, cea mai compact form este reprezentarea printr-o list liniar de vrfuri, fiecare vrf fiind specificat printr-ostructur (sauclas, nprogramarea orientat pe obiecte) care memoreaz (cel puin) coordonatele vrfului. Alte date referitoare la vrfurile poligoanelor necesare n modelarea i redarea obiectelor (normal, culoare, coordonate de texturare, etc.) vor fi descrise n seciunile care urmeaz.Esteposibilreprezentareaunui poligoni prinlistasegmentelor sale, dar acest reprezentare necesit un volummai mare de date i este folosit n implementareaanumitoralgoritmi deprelucrareapoligoanelor(reuniune, divizare, etc.) i mai puin n reprezentarea modelului unui obiect. Lista liniar de vrfuri poate fi implementat ca vector sau ca list simplu sau dublu nlnuit. 2.1.2Reprezentarea poliedrelorn modelarea i reprezentarea prin suprafaa de frontier, obiectele sunt aproximateprinpoliedrei modelul lorestereprezentat prinsuprafaapoliedrului, compus dintr-o colecie de poligoane.Un poliedru reprezint generalizarea n spaiul tridimensional a unui poligon din planul bidimensional: poliedrul este o regiune finit a spaiului a crui suprafa de frontierestecompusdintr-unnumrfinit defeepoligonaleplane. Suprafaade frontier a unui poliedru conine trei tipuri de elemente geometrice: vrfurile (punctele) care sunt zero-dimensionale, muchiile (segmentele), care sunt unidimensionale i feele (poligoane) care sunt bidimensionale (Fig. 2.4). Suprafaa de frontier a unui poliedru este o colecie finit de fee poligonale carese intersecteazcorect.Intersecia corect afeelor nseamn c pentru fiecare pereche de fee ale obiectului, feele sunt disjuncte, au n comun un singur vrf, sau au n comun dou vrfuri i muchia care le unete. 54321076Fig. 2.3 Triangularizarea unui poligon convex.Fee poligonaleMuchiiVrfuriFig. 2.4 Reprezentarea prin suprafaa de frontier a unui poliedru.Din punct de vedere matematic, nu este imediat evident c un solid poate fi reprezentat univocprinsuprafaacarel mrginete. Deaceea, estenecesar sfie stabilite condiiile n care aceast reprezentare este permis. Aceste condiii, numite condiii deconstrucie corect, se definesc pentru suprafee de frontier triangularizate. Triangularizarea unei suprafee poliedrale se obine prin triangularizareafiecrei feepoligonale, astfel nct suprafaa rezultat constdin vrfuri care sunt nconjurate de triunghiuri, fiecare pereche de triunghiuri fiind adiacente de-a lungul unei muchii. Laturile triunghiurilor adiacente unui vrf formeaz un circuit de segmente, numit link-ul vrfului (Fig. 2.5). O suprafa de frontier construit corect ndeplinete urmtoarele condiii: Linkul fiecrui vrf al suprafeei triangularizate este complet, adic formeaz un circuit nchis, nu neaprat planar. Triunghiurile suprafeei triangularizate sunt orientate consistent.nchiderea link-ului fiecrui vrf asigur proprietile suprafaei de a fi nchis i conectat. Proprietate de nchidere nseamn c suprafaa nu are un sfrit. Proprietatea de conectivitate nseamn c exist cel puin o cale de la un triunghi la altul aparinnd aceleiai suprafee de frontier, care poate fi parcurs prin traversarea muchiilor adiacente. Dacosuprafanuestenchissaunuesteconectat, prin triangularizarea suprafeei nu seobin link-uri nchise. Proprietatedeconstruciecorectasuprafeei defrontieraunui solidse poateverificafolosindcondiiadeorientareconsistentasuprafeei, formulatde legealui Moebius: Osuprafanchisesteorientatconsistent daclatraversarea triunghiurilor sale (rezultate dintr-o triangularizare arbitrar), ntr-o direcie unic (de exemplu, ndireciainversacelordeceasornic), fiecaremuchieestetraversatde dou ori, n direcii opuse (Fig. 2.6).Generalizarea n spaiul tridimensional a teoremei lui Jordan spune c orice suprafadefrontiernchis, consistent orientat, mpartespaiul ndoupri: o Fig. 2.5 Triangularizarea suprafeei de frontier.Link-ul unui vrf al suprafeei.Linkparte interioar suprafeei, care este o regiune limitat, i o parte exterioar suprafeei, care este o regiune nelimitat.Din punct de vedere geometric, orientarea consistent se verific prin direcia normalelorlafeeleobiectului: dacnormalelefeelorsunt ndreptatectreaceeai regiune a spaiului (fie toate ndreptate spre interior, fie toate ndreptate spre exterior), atunci suprafaaareoorientareconsistent.Acest moddeverificaresereferla obiectele tridimensionale fr caviti, dar se poate extinde cu uurin i la obiecte care prezint caviti. Teoretic, orientareaconsistentseverificpentrufeeletriangularizateale suprafeei defrontier, dar, prinextindere, sepoateverificaorientareaconsistent folosindnormalele la feele poligonale, deoarece toate triunghiurile obinute prin triangularizarea unui poligon care reprezint o fa a unui obiect au aceeai orientare (Fig. 2.7).Orientareaconsistentafeelorpoligonalealeobiecteloresteocondiiede verificare aconstruciei corecte asuprafeei de frontier i, nacelai timp, este folositn operaiile de eliminare asuprafeelorascunse n cursulredriiobiectelor tridimensionale. Deaceea, normalelelafeelepoligonalesememoreaznmodelul obiectelor, mpreun cu coordonatele vrfurilor. 2.1.3Implementarea modelului poligonalFig. 2.6 Legea lui Mobius verific orientarea consistent a unei suprafee triangularizate.Fig. 2.7 Orientarea consistent a feelor obiectului.Reprezentarea prin reea de poligoane a obiectelor se implementeaz printr-o list depoligoane, carepoate fi unvector sauolist nlnuit. Astfel, ntreaga informaie referitoare la forma unui obiect este compus din liste de coordonate ale vrfurilor, la care se mai adaug i alte informaii geometrice necesare n redare (de exemplu, normalele la suprafee). Fr s seinsiste acum asupraeficieneisaueleganeiimplementrii(seva reveni ulterior), se poate considera c forma unui obiect modelat prin reea de poligoanepoate fi reprezentat ca unvector defee, fiecare fafiind unvector de vrfuri, fiecare vrf fiind un vector de trei coordonate n virgul flotant. De exemplu, un cub poate fi reprezentat astfel:double CubeFaces[6][4][3] = {{{-1,-1,-1}, // fata 0 { 1,-1,-1}, { 1,-1, 1}, {-1,-1, 1}},{{-1, 1, 1},// fata 1 { 1, 1, 1}, { 1, 1,-1}, {-1, 1,-1}},{{-1,-1, 1},// fata 2 { 1,-1, 1}, { 1, 1, 1}, {-1, 1, 1}},{{ 1,-1,-1}, // fata 3 {-1,-1,-1}, {-1, 1,-1}, { 1, 1,-1}}, {{ 1,-1, 1}, // fata 4 { 1,-1,-1}, { 1, 1,-1}, { 1, 1, 1}}, {{-1,-1, 1}, // fata 5 {-1, 1, 1}, {-1, 1,-1}, {-1,-1,-1}}};Oastfel de implementare este ns ineficient deoarece fiecare vrf este prelucrat de trei ori, pentru fiecare fa adiacent acestuia. O implementare mult mai eficient a modelului poligonal definete un vector cu toate vrfurile unui obiect, iar fiecare fa se definete printr-un vector de indeci n vectorul de vrfuri. De exemplu, modelul unui cub folosind indeci pentru definirea feelor arat astfel:double CubeCoords[8][3]={ {-1,-1, 1}, { 1,-1, 1}, { 1,-1,-1}, {-1,-1,-1}, {-1, 1, 1}, { 1, 1, 1}, { 1, 1,-1}, {-1, 1,-1}};int CubeIndexFace[6][4]={{3, 2, 1, 0},{4, 5, 6, 7},{0, 1, 5, 4},{2, 3, 7, 6},{1, 2, 6, 5},{0, 4, 7, 3}};Att n cursul modelrii, ct i n cursul redrii imaginii, modelul obiectelor se reprezint mai complex, coninnd i alte informaii geometrice i atribute de aspect. Astfel, culoarea(mai general spus, materialul) esteoinformaiecareseasigneaz fiecrei fee sau fiecrui vrf al obiectului. n general, modelul poligonal cu reprezentarea prinindecia feelor poligonale esteimplementatorientatpeobiecte, folosind mai multe clase (de baz i derivate) care permit ncapsularea tuturor informaiilor necesare pentru redarea obiectelor. O reea de poligoane poate s reprezinte fie suprafaa de frontier a unui solid, fie o suprafa deschis,necesar n anumite situaii de modelare, cum este suprafaa terenului simulat ntr-oscenvirtual. Deoarecesemodeleazozongeografic limitat i nu se exploreaz scena astfel ca s fie vzut marginea pmntului,se poate folosi o suprafa poligonal deschis pentru reprezentarea terenului.Reprezentareaobinuit ngraficadinscenele virtuale este aceea ncare fiecare poligon este reprezentat ca o suprafa (poligoane pline), dar n proiectrile grafice (nmecanic, construcii, etc) se folosete i reprezentarea prin contur a poligoanelor, numit reprezentare cadru de srm (wireframe) (Fig. 2.8).Precizia de reprezentare a modelului, adic diferena dintre suprafaa obiectului i feele poligonale prin care este aproximat, este un parametru important de modelare. n general, cu ct numrul de poligoane prin care se aproximeaz suprafaa obiectului este mai mare, cu att precizia de reprezentare este mai bun. Se observ diferenadintreimagineaunuiobiect (tor)reprezentat prin64depoligoanenFig. 2.8(a) i prin 128 de poligoane n Fig. 2.8 (b). Folosirea unui numr mare de poligoane pentru reprezentarea obiectelor conducelaunvolumimens dedatenmodelareascenelor virtuale, careimplic cerinecorespunztoaredememorarei decapacitatedecalcul. Orict demult ar crete capacitatea deprelucrare n sistemele grafice, prin folosirea paralelismuluii (a) (b)Fig. 2.8 Reprezentarea plin (filled) i cadru de srm (wireframe) a obiectelor.prinimplementareahardwareaalgoritmilordeprelucrare, performanedegenerare interactivntimpreal aimaginilor sepot obinenumai dacobiectelescenei se modeleaz n mod corespunztor. Metodele de aproximare eficient a modelelor sunt cunoscute sub numele de simplificarea (sau rafinarea) datelor. Tehnica de simplificare direct, prin reducerea uniform a numrului de poligoane de reprezentare a obiectului este inacceptbil, deoarece nu se poate controla precizia de reprezentare. Pentru pstrarea unei precizii de reprezentare constant, se folosete modelarea adaptiv, n care dimensiunea feelor poligonale variaz n funcie de curbura suprafeei; nprile cucurbur pronunat sunt introduse mai multe poligoane pe unitatea de suprafa. Oaltmetodsesimplificareadatelorestemodelareacunivelededetaliu multiple a obiectelor (levels of detail- LOD). Fiecare model al unui obiect este compus dintr-osuccesiunedereprezentri, fiecarecuopreciziediferit. ncursul generrii imginilor, se selecteaz nivelul de detaliu corespunztor, n funcie de poziia obiectului fa de punctul de observare. Cu ct obiectul este mai deprtat, se selecteaz oreprezentarecuopreciziemai sczutaobiectului.Acestmetodesteposibil datorit folosirii proieciei perspectiv n generarea imaginilor i va fi neleas mai uor dup parcurgerea seciunii urmtoare privind transformrilor geometrice. Modelul poligonal al unui obiect se poate genera prin mai multe metode, n funcie de tipul obiectului i de aplicaia grafic n care este folosit modelul respectiv. Se poate folosi una din urmtoarele metode de modelare poligonal: Generarea modelului din descrierea matematic a obiectului. Generarea modelului obiectului prin baleiere spaial. Generarea modelului porninddelaomulimedepuncte careaparin suprafeei de frontier a obiectului. 2.1.4Generarea modelului din descrierea matematicSe poate genera reeaua de poligoane de aproximare a obiectelor care auo descriere matematic cunoscut.De exemplu, ecuaiile de definiie a unor suprafee quadrice: Elipsoid:0 1 c z b y a x2 2 2 2 2 2 + + (2.1)unde a, b c sunt semiaxele elipselor. Hiperboloid:0 1 c z b y a xsi 0 1 c z b y a x2 2 2 2 2 22 2 2 2 2 2 + + +(2.2) Paraboloid eliptic:z b y a x2 2 2 2 + (2.3)Surprafaa se intersecteaz mai nti cu un numr nde plane perpendiculare pe axa Oz, de ecuaii z = n z , pentru n = k, k+1,-1, 0, 1 , 2 ,k1,k. Seobinnelipse(paralele) i pefiecareelipsseeantioneazmpuncte echidistante (pe meridiane), obinndu-se (n 1) x m poligoane care aproximeaz suprafaa de frontier a obiectului respectiv. Aceste suprafee se pot obine i prin rotaia unei curbe n jurul unei axe de coordonate. De exemplu, suprafaa elipsoidului se obine prin rotaia n jurul axei z a elipsei:0 1 c z b y a x2 2 2 2 2 2 + + (2.4)0 = y. Prin rotaia unei curbe n jurul unei axe se pot obine obiecte tridimensionale mai variate, n funcie de forma curbei care se rotete. De exemplu, un tor se obine prin rotaia unui cerc n jurul unei axe paralele cu planul cercului. Suprafeele astfel obinute se numesc suprafee de rotaie.2.1.5Generarea modelului prin baleiere spaialSe pot genera obiecte tridimensionale prin deplasarea (sweeping) unei suprafee generatoare de-a lungul unei curbe oarecare. Dac se variaz formai orientarea suprafeei generatoare n cursul deplasrii, se pot obine obiecte variate, n funcie de forma curbei i de orientarea, forma i variaia formei suprafeei generatoare. Prin aceast metod se pot obine att formele regulate descrise mai sus (elipsoid, hiperboloid, paraboloid eliptic, tor) ct i alte obiecte numite solide ductibile sau extrudate (ducted solids) sau cilindri generalizai (generalized cylinders) (Fig. 2.9).Pentru definirea deplasrii unei suprafee de-a lungul unei curbe, este necesar s se defineascintervalul u al curbei pe care are loc deplasarea i modul n care se divide intervalul parcurs. mprirea intervalului n distane egale nu d rezultate bune, deoarece punctele obinute nu vor fi egal distribuite pe suprafaa obiectului. De aceea Fig. 2.9 Obiect poligonal modelat prin deplasarea unui cerc de diametru variabil de-a lungul unei linii drepte.estenecesardivizareaintervalului nfunciedecurburacurbei. Daccurburaeste pronunat, sealegsubdiviziuni mai mici aleintervalului, iar pentrucurburi mai reduse se aleg subdiviziuni mai mari ale intervalului. 2.1.6Generarea modelului pornind de la o mulime de puncte care aparin suprafeei de frontier a obiectuluiO metod mai general de modelare a obiectelor tridimensionale se bazeaz pe cunoaterea unei mulimi de puncte distribuite uniform sau neuniform pe suprafaa obiectului.Aceastmetodimplicmai nti obinereacoleciei depuncte, i apoi construirea reelei de poligoane care s aproximeze obiectul cu precizia dorit. Dac metodele prezentate mai nainte pot fi utilizate pentru o categorie restrns de obiecte, n schimb, metoda generrii modelului pornind de la o mulime de puncte ale suprafeei acestuia poate fi aplicat pentru cele mai variate obiecte: cldiri, vehicule, plante, animale, elemente anatomice, teren, etc.Mulimea de puncte de pe suprafaa obiectului se determin diferit, n funcie de modul n care este cunoscut sau reprezentat obiectul real: Pentru obiectele care se proiecteaz ntr-un sistem de proiectare bazat pe calculator CAD(Computer Aided Design), informaiile de form necesare n generearea modelului se pot obine din reprezentarea proiectului. De exemplu, cldiri, obiecte mecanice, vehicule, pot fi proiectate n AutoCad i coordonatele vrfurilor suprafeelor sunt folosite pentru reprezentarea prin reea poligonal a obiectului. Pentru obiectele real existente, sau machete ale acestora, se poate folosi un scanner 3D cu laser. Obiectul real (sau macheta acestuia) este plasat pe o mas rotativ n direcia de emisie a unei raze laser. La fiecare rotaie complet a mesei se obine o colecie de puncte pe un contur al obiectului, prinmsurareadistaneilasuprafaaobiectului. Dupfiecarerotaie, se deplaseaz masa nsus saunjos, astfel c se obine ocolecie de contururi aleobiectului. Toateacestepunctedepesuprafaaobiectului sunt apoi folosite pentru crearea modelului poligonal. Pentru modelarea terenului se folosesc hri digitale care furnizeaz altitudinileterenului ntr-ogriluniformdepuncte, saucontururi de nivel, care unesc puncte cu altitudine constant. Fiind cunoscut o mulime de puncte Vcare caracterizeaz un obiect tridimensional, volumulR3acoperit de aceste puncte se numetedomeniul mulimii V.este un poliedru, convex sau neconvex, iar punctele mulimii V pot fi dispuse regulat sauneregulat ndomeniul. Cazul cel mai frecvent ntlnit n modelare este acela n care punctele mulimii V sunt distribuite neregulat n spaiu i aproximareaobiectului serealizeazprintr-oreeatridimensionaldepoligoane, care aproximeaz linear pe poriuni obiectul dat. Reeaua trebuie s fie construit pornindde la mulimea Vde puncte nspaiui de la cerinele de precizie de aproximare a obiectului. Construirea modelului poligonal al unui obiect cunoscut printr-o mulime de puncte de pe suprafaa sa se poate realiza prin mai multe metode, dintre care cele mai folosite sunt triangularizarea (triangulation) i transformata Wavelet. 2.1.7Redarea imaginii obiectelor poligonaleAa cum s-a mai amintit, modelarea poligonal este cea mai folosit form de modelare a obiectelor n grafica pe calculator, datorit simplitii reprezentrii modelului poligonal i a faptului c, n momentul de fa,majoritatea acceleratoarelor dinsistemelegraficeconinprogrameimplementatehardwarederedareeficienta poligoanelor.Algoritmii deredareimplementai nacceleratoarelegraficetrateaz separat fiecare poligon (primitiv geometric) reprezentat prin coordonatele vrfurilor sale, ceeacefacecaprocesul deredareaimaginii sfiefoartesimplu. Redarea imaginilor scenelor virtuale compuse din obiecte a cror reprezentare nsumeaz mii de poligoane nu este ceva neobinuit. Redarea obiectelor poligonale este implementat printr-o succesiune de operaii detransformri graficeasupraobiectelor, numitpipelinegrafic.Aceast succesiune, care va fi descris pe larg n seciunea urmtoare, const din transformri geometrice aplicate vrfurilor obiectelor, prin care se transform fiecare fa a obiectului din sistemul de referin de modelare ntr-un sistem de referin de afiare, urmatde transformareade redare, prin care se obine culoare pixelilor care se afieazpedisplay. nFig. 2.10esteredatimagineaavionuluiF-16modelat prin 2366 fee poligonale i redat prin prelucrarea fiecrei fee, n modul cu fee pline i umbrire i n modul wireframe.Fig. 2.10 Redarea obiectelor modelate prin reea de fee poligonale.Pentru toate celelalte modele de reprezentare a obiectelor (reprezentarea prin reele de petice, prin compunerea obiectelor sau prin subdivizarea spaial), pe lng redarea direct a modelului respectiv, exist i posibilitatea de redare prin deducerea mai nti a reprezentrii poligonale corespunztoare, urmat de folosirea algoritmilor de redare poligonal.2.2Modelarea obiectelor prin reele de peticeUn petic (patch) este o suprafa curb definit parametric n spaiul tridimensional. Prin reprezentarea parametric, punctele de pe suprafa se pot calcula secvenial, pentru diferite valori ale parametrilor, mult mai simplu dect prin rezolvarea sistemului de ecuaii care descriu implicit suprafaa. Reprezentarea parametricacurbelori asuprafeelorestefolositnproiectareai nmodelarea obiectelor pentru obinerea unei precizii mai ridicate de aproximare. Un segment de curbn spaiul tridimensional poate fi definit printr-un sistem de ecuaii n funcie de un parametru:z z2z3zy y2y3yx x2x3xd + u c + u b + u a = ) u ( zd + u c + u b + u a = ) u ( yd + u c + u b + u a = ) u ( x(2.5)Aceastaesteocurbcubic, definitcaformimrimedecei12coeficieni, numii coeficieni algebrici ai curbei. n notaie vectorial se poate scrie forma parametric a unei curbe cubice:D C B A Q + u + u + u = ) u (2 3(2.6)unde vectorulQare componentele (x, y, z), iar vectoriiA,B,C,Dau componentele (ax, ay, az), (bx, by, bz), (cx, cy, cz), (dx, dy, dz), respectiv, iar u este cuprins n intervalul nchis [0,1]. naplicaiilegraficeseutilizeaznmodfrecvent curbelecubice, deoareceele asigur suficient flexibilitate n definirea curbelor i pot fi prelucrate eficient. Polinoame de grad mai mare pot descrie curbe mai complexe, dar necesit un numr mai maredecoeficieni i sunt mai dificil deprelucrat eficient nreprezentrile grafice. La modul general, o curb parametric cubic se poate defini prin ecuaiile:) u ( ) u (i30 iiB P Q (2.7)unde Qeste vectorul de componente (x, y, z),Pisunt punctele de control ale curbei, fiecare vectorPiavnd componentele (xi, yi, zi), iarBisunt funciile de baz (sau de amestec blending functions) ale reprezentrii parametrice. Diferite funcii de baz auproprieti diferite n determinarea formei curbei parametrice: ele pot interpola sau aproxima o curb dat, pot asigura anumite condiii de continuitate a mai multor segmente de curb. Specificarea unui segment de curb (sau a unui petic de suprafa curb)printr-un set depunctedecontrol esteometoddebaznproiectareagraficinteractiv: proiectantul definete punctele de control; curba este generat i vizualizat interactiv; dacformacurbei nuestemulumitoare, proiectantul modificunul saumai multe puncte de control, pn obine rezultatul dorit. Cele mai utilizate tipuri de curbe i suprafee parametrice n proiectarea grafic sunt curbele (i suprafeele) Bzier i B-spline. n bibliotecile grafice exist funcii de generare a curbelor i suprafeelor parametrice.2.3Modelarea prin compunerea obiectelorModelarea prin compunerea obiectelor (Constructive Solid Geometry CSG) se folosete atunci cnd un obiect poate fi obinut prin combinarea mai multor obiecte elementare, numite primitive geometrice.Primitivele geometrice utilizate sunt sfere, conuri, cilindri sau paralelipipede dreptunghice i sunt combinate folosind operatori booleni i transformri liniare. Un obiect complexestereprezentat printr-unarbore, alecrui frunzesunt primitivele geometrice iar nodurile memoreaz operatori booleeni sau transformri liniare.n Fig. 2.11 este prezentat operaia de reuniune a dou obiecte elementare. Alte operaiile posibile care se pot efectua asupra primitivelor geometrice sunt scderea i intersecia.Fig. 2.12 arat reprezentarea CSG a unui obiect prin combinarea a trei obiecte elementare: dou paralelilpipede dreptunghice i un cilindru. Arborele de reprezentare arecafrunzeprimitivelegeometrice, iar celelatenoduri coninoperatorii booleni. Paralelipipedele sunt combinate folosind operaia de reunuine, iar o gaur este practicat ntr-unul din paralelipipede prin scderea unui cilindru din ansamblul celor dou paralelipipede.Fig. 2.11 Operaia de reuniune a dou primitive geometrice.+=Scadere CilindruBloc1ReuniuneBloc 2Fig. 2.12 Arborele de construire a unui obiect din trei primitive geometrice.Deoarecearboreledereprezentarememoreazatt operaiileboolenect i formaprimitivelor geometrice, operaiiledemodificarealeobiectului compussunt relativsimple. De exemplu, ogaur ntr-unobiect se modific prinmodificarea poziiei sauadimensiunii primitivei geometricefolositenoperaiadescdere. O astfel de modificare este mult mai dificil n reprezentarea prin suprafaa de frontier a modelelor. Redarea imaginii obiectelor CSG se poate face prin mai multe metode: Redarea direct a obiectului n aplicaiile de ray-tracing. Conversia la reprezentarea prin suprafaa de frontier (B-rep) pornind de la modelul CSG i aplicarea procedurilor standard de redare a poligoanelor. Conversia la reprezentarea prin subdivizarea spaiului (n elemente numite voxeli) i redarea volumului corespunztorTehnica ray-tracing genereaz imaginea obiectelor prin intersecia acestora cu razedeproiecieipermiteobinereaunorefectedeosebitderealistenmodelarea reflexiei, transparenei i a umbrelor. Un dezavantaj important al modelrii CSG este cela c nu orice fel de obiect poate fi obinut princombinareaunor primitivegeometricesimple. De exemplu, modelul unei statui (folosit ncreareamuzeelor virtuale) saumodelul unui organ anatomic(folosit nsimulrile deintervenii chirurgicale) nupot fi obinuteprin combinarea unor primitive geometrice simple. 2.4Modelarea prin divizarea spaialntehnicadedivizarespaial, seatribuiefiecrei subdiviziuni aspaiului tridimensional cte o etichet n funcie de obiectul care ocup acea subdiviziune. n acest tehnic se consider spaiul tridimensional compus dintr-un numr de m x n x k volume elementare (numite voxeli), i pentru fiecare voxel se memoreaz eticheta (un numr de identificare) obiectului care ocup acel element. Reprezentarea prin subdiviziunea spaiului este util n diferite aplicaii grafice, cum sunt imagistica medical sau aplicaiile de ray tracing. Implementarea direct, prin atribuirea unei etichete fiecrui element de volum al spaiului, implicomareredundanadatelor: toi voxelii interiori unui obiect conin acceai informaie, eticheta obiectului. Acest lucru conduce la o cantitatate de informaie foarte mare necesar pentru reprezentarea unui spaiu de obiecte i este, n general, inacceptabil. Pentru reducerea redundanei de reprezentare se folosete o tehnic de reprezentare a ocuprii spaiale printr-un arbore numit arbore octal (octree). Arborele octal este o structur ierarhic care specific ocuparea unei regiuni cubice din spaiul tridimensional. Ideeadereprezentareaocuprii spaialepoatefi exemplificatmai uor ntr-un spaiu bidimensional prin intermediul unui arbore cuaternar (quadtree). n Fig. 2.13(a) este prezentat ocuparea unei regiuni bidimensionale de trei obiecte, iar n Fig. 2.14 este reprezentat arborele de ocupare a regiunii. Arborele se creeaz pornind cu o regiune ptrat n plan, reprezentnd ntrega zoncaresemodeleazi careestereprezentatprinnodul rdcinal arborelui cuaternar. n cazul spaiului tridimensional, acest regiune este un cub. Fiecare regiune, ncepnd cu regiunea iniial, se subdivide n patru subregiuni, reprezentate ca patru noduri fii n arbore. n Fig. 2.13(b) se arat ordinea de numerotare a nodurilor fii obinui prin divizarea unei subregiuni.eee t ettet ee t etee ee e e e ce e c ce c e e cc e eeee e de ded e ddd edeEtichete:t: triunghid: dreptunghic: cerce: spaiu vid (empty)Fig. 2.13 (a)Ocuparea unei regiuni plane.(b) Ordinea de numerotare a nodurilor fii. 34 2 114 3 2(a)(b) n spaiul tridimensional o regiune este divizat n opt subregiuni, reprezentate prin opt noduri fii; de aici provine i numele octree acestui mod de reprezentare. Subregiunilesunt divizaterecursivpnsentlneteunadinurmtoarele situaii: Subregiuneaesteocupatnntregimedeunsingurobiect saunueste ocupat de nici un obiect. Unei astfel de regiuni i se atribuie eticheta cu numele obiectului respectiv, sau eticheta de spaiu vid (e). Subregiunea are dimensiunea minim admisibil n reprezentarea respectiv (un pixel). n acest caz, subregiunea primete eticheta obiectului (sau a spaiului vid) care ocup cea mai mare parte din subregiunea respectiv. narboreledereprezentareaocuprii spaiului tridimensional, dimensiunea minim pn la care se divizeaz subregiunile este dimensiunea unui voxel. n arborele de reprezentare sunt dou tipuri de noduri frunz: noduri care au o etichet a unui obiect sau noduri care au eticheta spaiului vid. Compactarea volumului de date n aceast reprezentare fa de reprezentarea prin etichetarea fiecrui element (pixel sau voxel), provine din faptul c se poate ca o ntreag subregiune (mai mare dect un voxel)primete o singur etichet, dac este nu este ocupat deloc sau este ocupat de unsingur obiect. nFig2.13(a), regiunea1dinprimasubdivizunenumai este subdivizat mai departe deoarece este n ntregime vid i primete eticheta (e).O variant de reprezentare a ocuprii spaiale prin arbori octali folosete ca element spaial untetraedruregulat, careestesubdivizat nopt tetraedre, pnla rezoluia dorit sau pn cnd este ocupat de un singur obiect din spaiu. Avantajul folosirii arborilor octali bazai pe tetraedre este c se poate obine direct o reprezentare echivalent a suprafeei triangularizate de aproximare a obiectului. Redarea imaginii obiectelor modelate prin divizare spaial se face fie prin conversie n reprezentarea prin suprafaa de frontier, fie direct, prinredare volumetric, adic redarea tuturor elementelor de volum (voxeli).Fig. 2.14Arborele de reprezentare a ocuprii spaiale.3Transformri geometrice nprocesul de redare a obiectelor tridimensionalese definesc mai multe sisteme de referin, care permit descrierea operaiilor de transformri succesive ale obiectelor, pornind de la modelul acestora, pn la imaginea bidimensional pe suportul de reprezentare. Acestesistemedereferinvorfi precizatepeparcursul expunerii; ceeace intereseaz n acest moment este faptul c nvizualizarea scenelor virtuale sunt necesare (i folosite) mai multe sisteme de referin n care sunt reprezentate obiectele. Modificarea unui obiect ntr-un sistem de referin dat, sau trecerea de la un sistem de referin la altul se realizeaz prin diferite transformri grafice. Dintre transformrile graficefolosite, unelemodificformai poziiaobiectelor nspaiu, fiindnumite transformri geometrice, altele sunt transformri de conversie ntre diferite modaliti de reprezentare a obiectelor (transformarea de rastru).Transformri geometrice n spaiuObiectele scenei virtuale pot fi modificate sau manevrate n spaiul tridimensional, folosinddiferite transformri geometrice. Dintre acestea, cele mai importante sunt translaia, care modific localizarea obiectului, rotaia, care modific orientarea, i scalarea, care modific dimensiunea obiectului. Aceste transformri sunt denumite transformri geometrice primitive.3.1.1Transformri geometrice primitiveTranslaia este transformarea prin care toate punctele se deplaseaz n aceeai direciei cuaceeai distanntrepunct i transformatul su. Translaiasepoate descrie printr-un vector de translaieT, avnd componentele z y xt t t , ,pe cele trei axe de coordonate; un punct ) , , ( P z y x se transform n punctul ) ' , ' , ' ( P' z y x astfel: zyxt z ' zt y ' yt x ' x+ + + n notaie matriceal, transformarea prin translaie cu vectorul de translaie T, avnd componentelez y xt t t , , pe cele trei axe de coordonate a unui punct ) , , ( P z y x n punctul ) ' , ' , ' ( P' z y x se exprim printr-o nsumare de matrice:T + P = P' , unde ]]]]]

zyxtttT ;deci:.tttzyx' z' y' xzyx]]]]]

+]]]]]

]]]]]

Scalarea modific coordonatele tuturor punctelor unui obiect folosind factorii de scal sx, sy, respectiv szpe cele trei axe de coordonate. n aceast transformare de scalare, numitscalarefadeorigine, unpunct) z , y , x ( Psetransformnpunctul ) ' z , ' y , ' x ( P', unde:zyxs z ' zs y ' ys x ' x Pentruscrierea subformmatriceal aacestor relaii detransformare, se definete matricea de scalare S de dimensiune 3x3 astfel:]]]]]

zyxs 0 00 s 00 0 sSRezult relaia de transformare de scalare n notaie matriceal:, P S P' adic ]]]]]

]]]]]

]]]]]

zyxs 0 00 s 00 0 s' z' y' xzyxRotaia cu un unghi n raport cu o ax D este o transformare prin care orice punct P care nu este situat pe dreapta d se transform ntr-un punct P astfel nct P i P sunt situate ntr-un plan perpendicular pe dreapta D, unghiul PIPeste egal cu , iar modulele |IP| i |IP| sunt egale (punctul I este intersecia dintre dreapta D i planul ). Prinaceasttransformaretoatepuncteledreptei dsunt fixei numai elesunt puncte invariante ale transformrii. Transformarea de rotaie n raport cu o ax oarecare se descompune o ntr-o succesiune de maximum trei transformri de rotaie n raport cu axele de coordonate ale sistemului de referin. Rotaianraportcuaxazcuununghitransformunpunct) z , y , x ( Pn punctul) ' z , ' y , ' x ( P', ambele aflate n planulperoendicular pe axa z. Pentru deducerea relaiilor de transformare se exprim coordonatele punctelor P i P n acest plan n coordonate polare (Fig. 3.1).

u sin yu cos x ) u sin( ' y) u cos( ' x + + Se dezvolt cosinusul i sinusulsumei de unghiuri i se obin relaiile: + + cos y sin x ) u cos sin cos u (sin ' ysin y cos x ) sin u sin cos u (cos ' xAceasttransformaresepoatescriesubformmatricealdacsedefinete matricea de rotaie RZ() de dimensiune 3x3 astfel: ]]]]]

1 0 00 cos sin0 sin cos) (ZRRezult relaiile de transformare de rotaie a unui punct n raport cu axa z cu un unghi scrise sub form matriceal:P R PZ'= ,]]]]]

]]]]]

]]]]]

zyx1 0 00 cos sin0 sin cos' z' y' xPentru rotaiile elementare ale unui punct n raport cuaxele xi y ale sistemului de referin se urmrete un raionament asemntor i se deduc relaiile de transformare corespunztoare. Rotaiilenraport cuaxeledecoordonatealesistemului dereferinsunt denumite tangaj (pitch), giraie (yaw, heading) i, respectiv ruliu (roll). Aceast asignare depinde de conveniile de definire a sistemului de referin universal. Pentru Fig. 3.1 Transformarea de rotaie n raport cu axa z.PPuPPIyxOzconveniadefinitmai sus, tangajul esteorotaienraportcuaxax, giraiaesteo rotaie n raport cu axa y, iar ruliul este o rotaie n raport cu axa z (Fig. 3.2). Acestedenumiri auorigineanmodul ncaresunt definitemicrileunui avion poziionat n spaiu cu axa longitudinal orientat ctre z pozitiv: tangajul este rotaia ntr-un plan vertical, care nclin botul avionului; giraia este o micare ntr-un plan orizontal, care schimb direcia axei avionului, iar ruliul este rotaia ntr-un plan vertical, care nclin aripile avionului. Semnulrotaiilornraportcuaxeledecoordonatesealege, princonvenie, dup regula minii drepte saudup regula minii stngi. Dac se cuprinde axa corespunztoare cu patru degete ale minii (drepte, respectiv, stngi) astfel ca degetul mare s fie ndreptat n sensul pozitiv al axei, direcia celor patru degete indic sensul pozitiv al rotaiei. n aceast lucrare se adopt regula minii drepte pentru sensul de rotae n raport cu axele de coordonate (Fig. 3.2).S-auobinut relaiile pentrutransformrile spaiale elementare(primitive), translaia, scalareafadeorigineasistemuluidecoordonatei rotaianraport cu axele sistemului de coordonate. Tratarea ntr-un mod unitar a acestor transformri se poate face prin creterea dimensionalitii sistemului de coordonate Cartezian, definindu-se un sistem de coordoonate cu 4 dimensinui, numit sistem de coordonate omogene.3.1.2Sistemul de coordonate omogene Se observ c transformrile de scalare i de rotaie se reprezint prin nmuliri de matrice, iar translaia se reprezint prin nsumare de matrice. Reprezentarea unitar i combinareatransformrilor geometricespaialesepoatefacentr-unsistemde coordonate cu patru dimensiuni, numit sistem de coordonate omogene. n sistemul de coordonate omogene, un punct) z , y , x ( Pse reprezint ca ) w , Z , Y , X ( Ppentru orice factor de scar w 0. n general, un punct) z , y , x ( Pn sistemul de coordonate Cartezian se transform n sistemul de coordonate omogene prin alegerea 1 = w , deci are coordonatele omogene) 1 , z , y , x ( P. Pentru transformarea invers, se calculeaz coordonatele carteziene ale unui punct) w , Z , Y , X ( Preprezentat n sistemul de coordonate omegene printr-o mprire cu factorul de scar w astfel:xzyGiraieTangajRuliuFig. 3.2 Rotaiile n raport cu axele sistemului de referin.w / Z zw / Y yw / X x(3.1)n coordonate omogene, dou puncte ) w , Z , Y , X ( P1 1 1 1 1i ) w , Y , Y , X ( P2 2 2 2 2 sunt egale dac :2 2 1 1 2 2 1 1 2 2 1 1w / Z w / Z si w / Y w / Y , w / X w / X n sistemul de coordonate omogene, toate matricele de transformri sunt de dimensiune4x4i toateoperaiiledetransformri geometricesepot exprimaprin produse de matrice. Matricea de translaie n coordonate omogene se definete astfel:]]]]]]

1 0 0 0t 1 0 0t 0 1 0t 0 0 1) t , t , t (zyxz y xT(3.2)Transformarea de translaie a unui punct) w , Z , Y , X ( Preprezentat n coordonate omogene, n punctul) ' w , ' Z , ' Y , ' X ( P'se exprim ca un produs de matrice:P T P' ]]]]]]

]]]]]]

]]]]]]

wZYX1 0 0 0t 1 0 0t 0 1 0t 0 0 1' w' Z' Y' Xzyx,rezult:'+ + + w ' wwt Z ' Zwt Y ' Ywt X ' Xzyx(3.3)Teoretic, pentru a se obine coordonatele cartezine ale punctului transformat P, trebuie s se execute operaia de mprire cu factorul de scar w pentru fiecare coordonat:' w / ' Z ' z' w / ' Y ' y' w / ' X ' xDar, dac se alege w =1, rezult w=1 i mprirea nu mai este necesar. n general, transformrile geometrice primitive conserv valoarea factorului de scar i, dac se alege w =1, mprirea cu w (numit mprirea omogen) nu este necesar .Matricea descalarefa deoriginereprezentatnsistemul de coordonate omogene are expresia:]]]]]]

1 0 0 00 s 0 00 0 s 00 0 0 s) s , s , s (zyxz y xS(3.4)Transformareadescalareaunui punct reprezentat ncoordonateomogene) w , Z , Y , X ( P, n punctul ) ' w , ' Z , ' Y , ' X ( P' este dat de relaiile:SP P' ]]]]]]

]]]]]]

]]]]]]

wZYX1 0 0 00 s 0 00 0 s 00 0 0 s' w' Z' Y' Xzyx, rezult: 'w ' wZ s ' ZY s ' YX s ' Xzyx(3.5)Dac factorii de scalare sunt egali ( z y xs s s ), scalarea se numete uniform,i pstrez forma obiectului.Dac factorii de scalare difer, obiectul este deformat, iar scalarea se numete neuniform.Transformrile de rotaien raport cu axele sistemului de referin exprimate n coordonate omogene sunt urmtoarele:Rotaia n raport cu axa x (tangaj) cu un unghi :]]]]]]

1 0 0 00 cos sin 00 sin cos 00 0 0 1) (XR(3.6)n aceast transformare, axa x rmne nemodificat, iar toate celelalte puncte din spaiu se transform prin nmulire ca matricea RX():P R P'X]]]]]]

]]]]]]

]]]]]]

wZYX1 0 0 00 cos sin 00 sin cos 00 0 0 1' w' Z' Y' X, rezult ' + w ' wcos Z sin Y ' Zsin Z cos Y ' YX ' X(3.7)Rotaia n raport cu axa y (giraie) cu un unghi :]]]]]]

1 0 0 00 cos 0 sin0 0 1 00 sin 0 cos) (YR(3.8)n aceast transformare, axa y rmne nemodificat, iar toate celelalte puncte din spaiu se transform prin nmulire ca matricea RY():P R P'Y]]]]]]

]]]]]]

]]]]]]

wZYX1 0 0 00 cos 0 sin0 0 1 00 sin 0 cos' w' Z' Y' X, rezult: ' + + w ' wcos Z sin X ' ZY ' Ysin Z cos X ' X(3.9)Rotaia n raport cu axa z (ruliu), cu un unghi :]]]]]]

1 0 0 00 1 0 00 0 cos sin0 0 sin cos) (ZR(3.10)n aceast transformare, axa z rmne nemodificat, iar toate celelalte puncte din spaiu se transform prin nmulire ca matricea RZ():P R P'Z]]]]]]

]]]]]]

]]]]]]

wZYX1 0 0 00 1 0 00 00 0wZYXcos sinsin cos'''', rezult: ' + w ' wZ ' Zcos Y sin X ' Ysin Y - cos X ' X (3.11)Toate matricele de transformare de rotaie sunt matrice ortogonale i ortonormate. Transformrile geometrice elementare sunt transformri liniare, prin care liniile drepte i suprafeele plane sunt transformate n linii dreapte, respectiv suprafee plane. Din aceast cauz, pentru transformarea unui obiect tridimensional, este suficient s se transforme toate vrfurile acestuia i s se pstreze relaiile topologice ntre vrfurile transformate, aceleai cu cele ntre vrfurile iniiale.Transformrile mai complexe ale obiectelor n spaiu se pot defini prin compunerea mai multor transformri primitive. 3.1.3Compunerea transformrilor geometriceCompunerea mai multor tranformri elementare pentru obinerea unei transformri complexese obine prin executarea succesiv a produsului fiecriei matricedetransformarecumatriceadereprezentareapunctului iniial saurezultat dintr-o transformare precedent. De exemplu, n Fig. 3.3 este prezentat o transformare compus a unui obiect. Obiectul iniial este un cub cu latura de dou uniti, amplasat cu centrul su n centrul sistemului de referin i laturile orientate n direciile axelor de coordonate. Dup o scalare cu factorii de scar 2, 2, 2, o rotaie cu un unghi de 30 grade n raport cu axa z i o translaie cu un vector de translaie cu componente 8,0,0, se obine un nouobiect cub, definit nacelai sistemde referin, dar cualte dimensiuni i localizare. Reprezentarea din Fig. 3.3 conine i o transformare de proiecie perspectiv,pentrupercepiaadncimii(adistaneifadeobservatora obiectelor), care va fi explicat ulterior. Una din feele cubului (cea mai apropiat de observator) este desenat ca suprafa de culoare gri; celelalte fee ale cubului sunt reprezentate numai prin muchiile lor (reprezentare numit cadru de srm, wireframe).Transformarea efectuat asupra cubului din figura de mai sus se obine prin aplicarea succesiv a trei transformri geometrice elementare (scalare, rotaie i translaie) asupra fiecrui punct (vrf) al cubului. Pentru un vrf al cubului, reprezentat prin matricea coloan P, succesiunea de transformri este:Scalarea: P S P1 Rotaia n raport cu axa z: P2 = RZ P1= RZ(S P)Translaia:2P T P' = T(RZ(S P)) = (TRZS) PFig. 3.3 Transformare compus a unui obiect: scalare, rotaie fa de axa z, translaie.PPNu este necesar s fie executate pe rnd operaiile de nmulire cu matricele de transformare S,RZ, iT, ci se poate calcula o matrice compus a transformriiM, care se aplic apoi fiecrui punct P al obiectului:P M P S R T P'Z , undeS R T = MZO transformare compus se poate deci defini printr-o matrice de transformare M care este un produs (compunere) de matrice de transformri geometrice elementare. n exemplul dat, se calculeaz matricea de transformare M astfel:]]]]]]

]]]]]]

]]]]]]

1 0 0 00 2 0 00 0 2 00 0 0 21 0 0 00 1 0 00 0 866 . 0 5 . 00 0 5 . 0 866 . 01 0 0 00 1 0 00 0 1 08 0 0 1S R T Mz]]]]]]

1 0 0 00 2 0 00 0 732 , 1 18 0 1 - 732 . 1MUnul din vrfurile cubului, vrful P(1,1,1,1) se transform n P(8.732, 3.732,1,1 ):]]]]]]

]]]]]]

]]]]]]

12732 . 3732 . 811111 0 0 00 2 0 00 0 732 . 1 18 0 1 732 . 1P M P'Ordineadecompunereamatricelor detransformareestedefinitoriepentru rezultatul transformrii, dat fiind c produsul matricelor nu este comutativ. Sepoateverificapeexemplul dat, prininversareaordinii transformrii de rotaie cu translaia (Fig. 3.4). Fig. 3.4 Transformare compus a unui obiect: scalare, translaie, rotaie fa de axa z.PPSe obine o matrice de transformare Mdiferit deMi punctul transformat corespunztor P, diferit de P:]]]]]]

1 0 0 00 2 0 0330 . 4 0 732 . 1 1928 . 6 0 1 732 . 1S T R ' M'z, ]]]]]]

1206 . 7560 . 7P ' M' ' P'Convenia de reprezentare a punctelor n spaiu prin matrice coloan impune ordinea de nmulire numit postmultiplicare (sau multiplicare la dreapta) a matricelor de transformare: se nmulete matricea de transformare curent cu matricea transformrii urmtoare. Convenia de terminologie (postmultiplicare sau multiplicare la dreapta) semnific faptul c o nou transformare se concateneazca factor dreapta al produsului dematrice. Esteimportant dereinut faptul cordineadeaplicarea transformrilor este de la dreapta la stnga din succesiunea de matrice ale unei compuneri. Mai precis, dac un punct se transform prin aplicarea succesiv a transformrilor definite prin matriceleM1,M2,., Mn, matricea compus de transformare este:1 2 nM M M M (3.12)Se poate verifica c, dac se adopt convenia de reprezentare a unui punct n spaiul tridimensional printr-o matrice linie, atunci transformarea unui punct se obine prin nmulirea vectorului de poziie al punctului cu matricea de transformare (premultiplicaresaumultiplicarelastnga). naceastsituaie, ordineancarese aplic matricele compunente ale unei transformri compuse este de la stnga la dreapta:n 2 1S S S S PS P' unde,(3.13)Punctul PestetransformatnordineaS1, S2,.Sn.Acestaesteunmodmai natural de a urmri secvenele de transformri geometrice i de aceea, n unele lucrri este adoptat aceast convenie. Nu exist alte diferene ntre cele dou convenii (nici de simplificare a calculelor, nici de eficien). Se poate demonstra cu uurin c orice matrice de transformare elementar n convenia de reprezentare prin matrice linie a unui punct n spaiul tridimensional este transpusa matricei corespunztoare de transformare definit n convenia de reprezentare prinmatrice coloan apunctului. Deexemplu, translaia unui punct P(x,z,y) cu valorile tx, ty, tz se exprim astfel:[ ] [ ]]]]]]]]

1 t t t0 1 0 00 0 1 00 0 0 1w Z Y X ' w ' Z ' Y ' Xz y xn aceast lucrare se folosete convenia de reprezentare prin matrice coloan a punctelor dinspaiu, dat fiindc aceasta este convenia dinbiblioteca grafic OpenGL, care este folosit pentru exemplificarea operaiilor grafice prezentate.Un alt exemplu de transformare compus este transformarea de rotaie complet specificat prin trei rotaii fa de axele sistemului de coordonate. Cea mai obinuit convenie pentruordinea de specificare a rotaiilor este: ruliu cu unghiul (dup axa z), tangaj cu unghiul (dup axa x) i giraie cu unghiul (fa de axa y). n aceast situaie matricea de rotaie total R are expresia:]]]]]]

1 0 0 00 r r r0 r r r0 r r r) ( ) ( ) (33 32 3123 22 2113 12 11Z X YR R R = R (3.14)MatriceaRrezultatprincompunerea(nmulirea) mai multor matrice de rotaie este de asemenea ortogonal i ortonormat. O transformare complex a unui obiect prin combinarea mai multor transformri elementare (scalri, rotaii, translaii) se poate exprima printr-o matrice de transformare M care are forma general:]]]]]]

1 0 0 0t ' r ' r ' rt ' r ' r ' rt ' r ' r ' rz 33 32 31y 23 22 21x 13 12 11M(3.15)Submatricea stnga-susRde dimensiune 3x3 exprim transformarea de rotaie i scalare total, iar submatricea coloan dreapta Texprim transformarea de translaie total. MatriceaReste o matrice ortogonal, dar poate s nu fie i ortonormat.Dou proprieti importante ale transformrilor geometrice compuse trebuie s fie remarcate i reinute.Primaproprietateestecotransformaregeometriccompusreprezentat printr-o matrice de forma 3.15 conserv valoarea coordonatei w a unui punct (acest lucrueste evident). Aceast proprietate este folosit nimplementarea operaiilor grafice, prin amnarea mpririi omogene (cu w) dup ce s-au selectat numai obiectele vizibile (dup operaia de decupare).A doua proprietate este proprietatea de liniaritate a transformrilor geometrice compuse, prin care liniile drepte i suprafeele plane sunt transformate n linii dreapte, respectiv suprafeeplane. Deaceea,lafel cai ncazultransformrilorgeometrice elementare, pentru transformarea unui obiect tridimensional, este suficient s se transforme toate vrfurile acestuia i s se pstreze relaiile topologice ntre vrfurile transformate.3.1.4Transformri inverseFiinddatotransformareaunui punct Pntr-unpunct Pdefinitprintr-o matricedetransformareM, transformareainvers, delapunctulPlapunctul Pse obine prin nmulirea cu matricea invers, M-1 :]]]]]]

1 0 0 00 1 0 00 0 1 00 0 0 1I I, MM1, (3.16)unde I este matricea identitate. Dat fiind c, n general, matricea de transformare M se obine printr-un produs de matrice de transformri elementare, matricea inversM1se calculeaz prin produsul n ordine invers a inverselor matricelor elementare componente:I M M M M M M = MMM M M = MM M M = M1n1211 1 2 n11 -n1 -21 -11 -1 2 n - - - (3.17)Relaia3.17sedemonstreazimediat, pringrupareafactorilor ncepndcu I M M-11 1= .Toate matricele de transformri elementare sunt matrice inversabile i au urmtoarele expresii:]]]]]]

1 0 0 0t 1 0 0t 0 1 0t 0 0 1) t , t , t ( )] t , t , t ( [zyxz y x1z y xT T(3.18)]]]]]]

1 0 0 00 s / 1 0 00 0 s / 1 00 0 0 s / 1) s / 1 , s / 1 , s / 1 ( )] s , s , s ( [zyxz y x1z y xS S (3.19)]]]]]]

1 0 0 00 cos sin 00 sin cos 00 0 0 1) ( )] ( [1x xR R (3.20)]]]]]]

1 0 0 00 cos 0 sin0 0 1 00 sin 0 cos) ( )] ( [1y yR R (3.21)]]]]]]

1 0 0 00 1 0 00 0 cos sin0 0 sin cos) ( )] ( [1z zR R (3.22)) ( ) ( ) ( )] ( ) ( ) ( [1 1 y x z z x yR R R R R R = R(3.23)Datorit faptului c matricea de rotaie este ortogonal i ortonormat, inversa unei matrice de rotaieeste egal cu transpusa acesteia. 3.1.5Transformarea sistemelor de referinInterpretarea relaiilor de transformri geometrice prezentate pn acuma fost aceea de manevrare i modificare a obiectelor ntr-un sistem de referin dat: obiectele sunt reprezentate ntr-un anumit sistem de referin prin coordonatele unei mulimi de puncte ale acestora (vrfuri) i ele pot fi deplasate, reorientate sau redimensionate prin aplicarea transformrilor geometrice corespunztoare.O alt interpretare care se poate da operaiilor de transformri geometrice este aceea de schimbare a sistemului de referin. Se consider sistemul de referin Oxyz i un nou sistem de referin Oxyz, acrui origineOestedeterminatnsistemulOxyzprincoordonatelex0,y0,z0ale centrului O. Sistemul de referin Oxyz este definit de versorii (vectori unitate) i, j, k, iar sistemul de referin Oxyz de versorii i, j, k.Axa Ox are cosinuii directori c11, c12, c13 fa de sistemul de referin Oxyz; axa Oy are cosinuii directori c21, c22, c23 fa de sistemul de referin Oxyz; axa Oz are cosinuii directori c31, c32, c33 fa de sistemul de referin Oxyz.Matricea de transformare care descrie poziionarea sistemului Oxyz relativ la sistemul de referin Oxyz este:]]]]]]

1 0 0 0z c c cy c r cx c c c0 33 23 130 32 22 120 31 21 11M(3.24)Fieunpunct Pdefinit princoordonatelesalex,y,znsistemul dereferin Oxyz. Se demonstrez [Drag57], [Sab81], c n sistemul de referin Oxyz acest punct (notat P) are coordonatele x,y,z,care se obin nmulirea matricei -1M(care esteinversamatriceiMcaredefinetepoziionareasistemuluiOxyznsistemul Oxyz) cu matricea P de reprezentare a punctului P n sistemul de coordonate iniial:P M = P'-1 (3.25)Transformarea invers, a unui punct P(x,y,z) dinsistemul de referin Oxyz n punctul P(x,y,z) n sistemul de referin Oxyz se obine prin nmulire cu matricea de transformare M:MP' = P (3.26)Se poate urmri cu mai mult uurin aceast modalitate de transformare ntr-un caz simplu. Se consider un sistem de referin Oxyz i un alt sistem de referin Oxyz care are originea O(x0,y0,z0) i aceeai orientare a axelor de coordonate ca i sistemul Oxyz. Poziionareasistemului dereferinOxyzrelativlasistemul Oxyzeste definitdematriceadetransformareM;poziionareasistemului dereferinOxyz relativ la sistemul Oxyz este definit de matricea de transformare invers -1M : ]]]]]]

1 0 0 0z 1 0 0y 0 1 0x 0 0 1000M, ]]]]]]

1 0 0 0z 1 0 0y 0 1 0x 0 0 1000-1MSubmatriceaderotaiecomponentamatriceiMestematriceaunitate, dat fiind c sistemul de referin Oxyz are axele cu aceeai orientare ca i sistemul de referin. ntr-adevr, cosinuii directori ai axelor Ox,Oy,Oz fa de axele sistemuluidereferinOxyzsunt(1,0,0), (0,1,0), (0,0,1)imatriceaderotaieeste matricea unitate.Unpunct oarecareP(x,y,z) nsistemuldereferinOxyz, setransformn punctul P(x,y,z) n sistemul de referin Oxyz printr-o translaie cu x0,y0,z0, deci : ]]]]]]

]]]]]]

]]]]]]

1zyx1 0 0 0z 1 0 0y 0 1 0x 0 0 11' z' y' x;000P M P'1Particularizarea pentruO(4,2,0) i P(6,3,0) este reprezentat nFig. 3.5. Punctul P(2,1,0) este transformatul punctului P n sistemul de referin O'x'y'z'.xyzOx'y'z'O'P(6,3,0)P'(2,1,0)n concluzie, aplicarea unei transformri definit printr-o matriceM, asupra unei mulimi de puncte definite ntr-un sistem de referin Oxyz, poate fi interpretat n mai multe moduri:(a) Fiecare punct este modificat i capt o nou poziionare n sistemul de referin Oxyz, conform cu matricea de transformare M.(b) Fiecare punct este transformat din sistemul de referin iniial Oxyz ntr-un nou sistem de referin, Oxyz, a crui poziie i orientare relativ la sistemul de referin Oxyz este descris de matricea M-1. (c) Fiecare punct este transformat din sistemul de referin iniial Oxyz ntr-un nou sistem de referin, Oxyz. Poziia i orientarea sistemului Oxyz relativ la sistemul de referin Oxyz este descris de matricea M. i nc o precizare: un sistem de referin nu este materializat n nici un fel ntr-unsistemgrafic(nsoftwaresauhardware), ci esteoconveniecunoscutde programator sau utilizator. Trecerea de la un sistem de referin la altul se efectueaz prin transformri aplicate punctelor (obiectelor): modificarea coordonatelor acestora le transfer dintr-un sistemde referin n altul. n acest sens, orice transformare geometricpoate ficonsideratca o schimbare a sistemului de referin. Dar,dup cum se va observa n continuare, transformrile geometrice sunt uneori considerate ca modificrialeobiectelor, iarnaltesituaii, caschimbareasistemuluidereferin. Estenormal caunnceptor npracticaprogramrii sistemelor graficespuno justificat ntrebare: cumse poate ti care este interpretarea corect a unei transformri? Rspunsul este c ambele interpretri sunt corecte, dar se alege aceea care permite urmrirea cea mai direct a unui raionament pentru calculul unor transformri complexe. Nu exist reete unice i sigure care s poat fi aplicate fr greeal n orice situaie, deci experiena de proiectare i spune ntotdeauna cuvntul.n dezvoltarea sistemelor de vizualizare se folosesc, totui, cteva sisteme de referin bine definite, care permit specificarea cea mai simpl i eficient a operaiilor de redare a obiectelor (scenelor). Unul dintre acestea, sistemul de referin universal, a fost deja introdus. Alte sisteme de referin folosite n grafica tridimensional vor fi definite pe parcursul lucrrii. Sistemele de referin intermediare, care apar n descrierea unor transformri complexe, sunt interpretri ale operaiilor detransformri geometricecare permit urmrirea unui raionament de calcul. Exemplul urmtor evideniaz acest aspect. Exemplul 3.2Se consider sistemul de coordonate Oxyz i o matrice de transformare RX(/2) care realizeaz o rotaie cu unghiul /2 n raport cu axa x: Fig.3.5 Transformarea sistemelor de referin.]]]]]]

1 0 0 00 0 1 00 1 0 00 0 0 1) 2 / (XRAceast transformare poate fi interpretat ca o transformare prin rotaie cu 90 nraport cuaxaxafiecrui punct P(x,y,z), npunctul transformat P(x,y,z). n Fig.3.6 (a) este considerat punctul P(0,1,1), care se transform n punctul P(0,-1,1). nFig. 3.6(b) este reprezentat transformarea echivalent asistemului de coordonate Oxyz n sistemul de coordonate Oxyz folosind matricea de transformare invers corespunztoare, RX(-/2): axa y se transform n axa z, iar axa zsetransformnaxay. Punctul P, decoordonate0,1,1nsistemul Oxyz, se transform n punctul P de coordonate 0,-1,1 n sistemul Oxyz.Se pot verifica uor rotaiile cu un unghi de /2n raport cu celelalte axe de coordonate. Rotaiacu/2fadeaxaytransformsistemuldecoordonatentr-un sistem n care axa z se schimb n axa x, iar axa x se schimb n axa z. Rotaia cu /2 fa deaxaztransformsistemul decoordonatentr-unsistemncareaxaxse schimb n axa y, iar axa y se transform n axa x. Pentrudeducerea matricelor unor transformri complexese procedeazprin reducerea acestora la cazuri maisimple,pentrucare secunoscexpresiilede calcul, folosindtransformriprimitivesuccesive. Iniial seaplicotransformareajuttoare pentru aducerea obiectelor ntr-o poziiesausistemdereferin adecvat,se execut transformarea dorit, dup care se revine la poziia sau sistemul de referin iniial prin transformarea inverscelei aplicate iniial. Cteva exemple prezentate n continuare vor preciza acest mod de realizare a transformrilor geometrice compuse.Fig. 3.6 Rotaie cu /2 n raport cu axa x.(a) Rotaia punctelor cu /2. (b) Rotaia sistemului de coordonate cu -/2.yxOzP(0,1,1)x OyP(0,-1,1)z(b)xOzy(a)P(0,1,1)P(0,-1,1)3.1.5.1 Rotaia fa de o ax paralel cu una din axele sistemului de referinUn exemplu ilustrativ de compunere a transformrilor geometrice este calculul rotaiei n raport cu o ax paralel cu una din axele sistemului de referin. Seconsiderodreaptdparalelcuaxazasistemului, careintersecteaz planul Oxy n punctul I(tx,ty,0). Transformarea de rotaie a obiectelor fa de aceast axnupoatefi realizatfolosindmatriceadedusnparagraful precedent (relaia 3.10), care presupune rotaia fa de o ax a sistemului de coordonate. De aceea, seaplic mai nti tuturor punctelor otransformareajuttoare, translaia cu T( tx, ty,0).Acest transformare poate fi intrepretat n dou moduri: ca o schimbare a sistemului de referin Oxyz n sistemul Oxyz , n care punctul I este transformat n punctul I(0,0,0), sau ca o modificare a poziiei tuturor punctelor din spaiu, prin care punctul I este adus n originea sistemului de referin Oxyz.Dac se consider prima interpretare, operaiile se continu n noul sistem de referin Oxyz, n care dreapta dse suprapune peste axa z, deci se poate obine rotaia dorit cu un unghi folosind matricea de rotaie 3.10. Dup aceasta, se revine la sistemul de referin iniial Oxyz, printr-o transformare invers, T(tx, ty, 0).Rezult matricea compus de rotaie cu unghiul fa de o dreapt paralel cu axa z care interecteaz planul Oxy n punctul I(tx, ty,0):) 0 , t , t ( ) ( ) 0 , t , t (y x y x T R T RZ d]]]]]]

]]]]]]

]]]]]]

1 0 0 00 1 0 0t 0 1 0t 0 0 11 0 0 00 1 0 00 0 cos sin0 0 sin cos1 0 0 00 1 0 0t 0 1 0t 0 0 1yxyxdR]]]]]]

+ 1 0 0 00 1 0 0sin t ) cos 1 ( t 0 cos sinsin t ) cos 1 ( t 0 sin cosx yy xdR(3.27)Acest procesestedescrisnFig. 3.7(a) pentruununghi de30grade, cu reprezentarea unei proiecii n planul Oxy.(a)xyOtxtyIyOIOxyxxyOOyxyO Ix) , , ( 0 t ty x T ) (zR ) , , ( 0 t ty xTnFig. 3.7(b) seprezintaceleai transformri succesivenecesarepentru realizarea rotaiei n raport cu o dreapt paralel cu axa z a sistemului, considernd c transformareainiialT(-tx,-ty,0)transformtoatepuncteledinsistemul dereferin Oxyz, astfel nct punctul I se suprapune peste originea O. Se remarc faptul c, n aceast situaie, este doar o diferen de interpretare, operaiile i rezultatul acestora fiind identic.3.1.5.2 Scalarea fa de un punct oarecare n spaiuMatricea de scalare din relaia 3.4 efectueaz scalarea fa de originea sistemului de coordonate, prin care componentele x, y, z ale vectorului de poziie OP al punctului P sunt multiplicate fiecare cu factorul de scalare corespunztor. Se poate defini o scalare fa de un punct fix) z , y , x ( Ff f f din spaiu, prin care componentele vectorului FP sunt multiplicate cu factorii de scalare corespunztori.Matricea de scalare fa de un punct oarecare se poate deduce printr-o metod asemntoare celei prezentate anterior, prin compunerea a trei transformri elementare deja definite.1. Se execut o translaie cu) z , y , x (f f f T , prin care punctul fix F se suprapune peste originea sistemului de coordonate.2. Se aplic o transformare de scalare cu matricea) s , s , s (z y xS.3. Seefectueazotranslaieinverscelei aplicate lapunctul 1, deci cu matricea) z , y , x (f f fT .Rezult matricea de scalare cu factorii de scarz y xs , s , s fa de un punct fix din spaiu) z , y , x ( Ff f f:xyOtxtyIyOIx xyIOyO Ix) , , ( 0 t ty x T) (ZR) , , ( 0 t ty xT(b)Fig. 3.7 Rotaia fa de o dreapt paralel ca axa z a sistemului de referin:(a) considernd transformarea sistemelor de referin;(b) considernd transformarea punctelor.) z , y , x ( ) s , s , s ( ) z , y , x (f f f z y x f f f T S T SF]]]]]]

]]]]]]

]]]]]]

1 0 0 0z 1 0 0y 0 1 0x 0 0 11 0 0 00 s 0 00 0 s 00 0 0 s1 0 0 0z 1 0 0y 0 1 0x 0 0 1fffzyxfffFS]]]]]]

1 0 0 0) s 1 ( z s 0 0) s 1 ( y 0 s 0) s 1 ( x 0 0 sz f zy f yx f xFS (3.28)3.1.5.3 Rotaia fa de o dreapt oarecare n spaiuUrmrindunraionament asemntor cucele anterioare, se poate deduce matricea de rotaie cu un unghi fat de o dreapt oarecare D din spaiu, dat printr-un punct D0(x0,y0,z0) i vectorul unitate (versorul)d, avnd cosinuii directori dx,dy,dz(k j i dz y xd + d + d =). Paii de transformare sunt urmtorii:1. Translaia cu matriceaT(-x0,-y0,-z0), prin care punctul D0ajunge n originea sistemului de referin.2. Alinierea dreptei D cu una din axele sistemului de referin, de exemplu, axa z . Alinierea cu una din axele de coordonate ale sistemului se efectueaz prin dou rotaii n raport cu celelalte dou axe. Mai nti se efectueaz o rotae n raport cu axa x, cu un unghi , astfel ca dreapta D s ajung n planul Oxz. Pentru calculul unghiului se consider notaiile din Fig. 3.8 (b).OM este versorul dreptei D dup translaia efectuat n pasul precedent. Mx, My, Mzsuntinterseciileplanelorparalele cuplanelesistemuluidecoordonate caretrec prinpunctul M, cuaxelecorespunztoare(Mxesteinterseciaplanului paralel cu planul Oyz care trece prin M, cu axa x, etc.). Mxy, Myz, Mzxsunt proieciile punctului M pe planele Oxy, Oyz i, respectiv, Ozx. Se pot scrie urmtoarele relaii:z z y y x xd = OM ; d = OM ; d = OM2z2y yz xd + d = d = MM2z2y y yz y2z2y z yz zd + d d = d / d = sin ; d + d d = d / d = cos (3.29)Rotaia n raport cu axa x se efectueaz n planul MMxyMzx. Punctul M, rotit cu unghiulnplanul MMxyMzx, setransformnpunctul Maflat nplanul Ozx, pe dreapta MxMzx paralel cu axa Oz, astfel c MMx = MMx = dyz.Adouaetappentrualiniereaversorului OMal dreptei Dcuaxazesteo rotaiecuunghiul, efectuatnplanul Ozx, nraport cuaxay. Pentrucalculul unghiuluise urmresc notaiile din Fig. 3.8 (c). n triunghiul dreptunghic OMMx (unghiul drept n Mx) OMx= dx, OM= 1, MxM= dyz. Rezult unghiul OMMx(notat unghiul ):x2z2y yzd = sin ; d + d = d = cos (3.30) Rotaia dreptei OM n planul Ozx fa de axa Oy transform punctul M n punctul M pe axa Oz printr-o rotaie cu unghiul de valoare n sens invers sensului pozitiv de rotaie dup axa y (a se revedea