Download - Note de Curs

Transcript
Page 1: Note de Curs

Grafică Inginereasca-note de curs

5

PREFATA

Departe de a reprezenta doar o fascinaţie, grafica pe calculator a pătruns în viaţa noastră cotidiană, de la jocurile computerizate la desenele animate, de la descoperirea formei unei funcţii matematice, la proiectarea asistată. Dinamica aproape fără egal a acestui domeniu este strâns legată de facilităţile grafice ale calculatoarelor personale, de apariţia şi dezvoltarea unui soft specializat, uzând de interfeţe prietenoase cu utilizatorul. Exploatarea la un nivel înalt a performanţelor maşinii, înţelegerea modalităţii de realizare a diferitelor funcţii grafice necesită din partea utilizatorilor şi a creatorilor de soft, un studiu atent al fundamentelor graficii computerizate: algoritmi, metode şi modele, instrumente şi caracteristicile lor.

Grafica inginerească a fost şi rămîne un domeniu fundamental al cunoştinţelor inginereşti. Reprezentarea prin desene a ideilor de rezolvare a soluţiilor de principiu a pieselor şi ansamblurilor proiectate, este una din sarcinile cele mai importante ale proiectantului. Este unanim recunoscută importanţa, în toate etapele procesului de proiectare-fabricaţie, a desenului ca mijloc efectiv de comunicare a informaţiilor. Posibilitatea de a folosi această abilitate de către calculator, a revoluţionat modul în care acestea sunt folosite astăzi în toate domeniile.

În standardul ISO (International Standardization Office) se defineşte grafica pe calculator (computer graphics) ca “metode şi tehnici de conversie a datelor către şi de la un dispozitiv grafic (display) prin intermediul calculatorului”. În plus, se mai menţionează că aceste metode reprezintă modul cel mai puternic de comunicare între om şi calculator.

Informaţia prezentată vizual este percepută de om în modul cel mai natural. Structuri complexe şi relaţiile între ele pot fi percepute într-un timp mai scurt, într-un număr mai mare şi cu mai puţine erori în prezentarea vizuală decât în oricare alt mod de prezentare.

Noţiunea de grafică pe calculator este asimilată în cele mai multe referinţe din domeniu cu aceea de grafică generativă (sau sinteză de imagine), având ca direcţie de conversie şi transformare a datelor aceea de a crea pe display imaginea unor obiecte a căror descriere este stocată în memoria calculatorului

Aceste note de curs îşi propun tocmai o incursiune în acest domeniu atât de tentant pentru mulţi. Aceste note de curs constituie un instrument concret de lucru pentru toţi cei care sunt interesaţi în cunoaşterea sau în aprofundarea problemelor legate de grafica pe calculator, în domeniul modelării geometrice

În această lucrare sunt tratate aşa cum era şi firesc elemente de geometrie aplicată, fiind analizate bazele matematice ale graficii asistate de calculator. Sunt selectate elemente de geometrie legate direct de reprezentările grafice, iar transformările studiate sunt cele care apar cel mai frecvent în aplicaţiile pe calculator. Aceste transformări sunt grupate în funcţie de spaţiul pe care operează, respectiv în două sau trei dimensiuni. Fiecare transformare este adusă la o descriere matricială, adică una care ne permite o prezentare structurată, sugestivă a algoritmilor folosiţi în grafica pe calculator.

Page 2: Note de Curs

Grafică Inginereasca-note de curs

6

Totul ar rămâne geometrie, mai mult sau mai puţin abstractă dacă ar lipsi referirile la tehnicile de sugerare a realismului imaginilor grafice, începând cu eliminarea aspectelor ce ţin de restricţiile suportului de reprezentare, continuând cu tehnicile de colorare şi umbrire şi terminând cu animaţia grafică.

Interesul pentru problemele de perspectiva automată şi pentru aplicarea lor în proiectare a umbrit, desigur în oarecare măsură, studiul automatizării problemelor clasice de geometrie descriptivă în sensul lui Monge. Astfel sunt abordate problematici referitoare la : studiul punctului, dreptei şi respectiv al planului.

Studiul punctului luat ca element geometric de bază în reprezentările descriptive permite realizarea grafică pe calculator în triplă proiecţie ortogonală a tuturor poziţiilor sale caracteristice în spaţiu, corespunzătoare alfabetului descriptiv al punctului. Epurele obţinute astfel automat reflectă un desen ireproşabil, cu balustrarea proiecţiilor, cu notarea lor şi cu trasarea sau nu a liniilor de ordine.

Studiul dreptei permite definirea sa atât prin două puncte cât şi parametric sau ca intersecţie de plane. Este realizată trasarea automată a urmelor şi ale proiecţiilor dreptei, indiferent de modul de definire al dreptei sau de poziţia sa caracteristică în raport cu planele triedrului tridreptunghic.

Studiul planului permite definirea sa în toate modurile geometric posibile pentru care, dacă este necesar, se pot trasa automat şi urmele planelor pe cele trei plane ale triedrului dreptunghic.

Au fost rezolvate de asemenea problemele de incidenţă dintre plane sau dintre drepte şi plane, precum si probleme de paralelism şi de perpendicularitate intre plane si intre drepte şi plane.

De asemenea rezolvarea rezolvarea problemelor metrice privind determinarea diferitelor distanţe dintre elementele geometrice: punct, dreaptă, plan sau determinarea bisectoarelor unui unghi a permis o transpunere a principalelor rezolvări ale problemelor geometrice şi de geometrie descriptivă pe calculator.

Trebuie mentionat rolul (istoric) motor în dezvoltarea elementelor de geometrie aplicată pe calculator, multe din tehnicile de generare si modificare fiind preluate din tehnicile animaţiei.

Animaţia nu a fost realizată cu uşurinţă şi în interval de timp foarte scurt. Mai multe persoane şi-au adus contribuţia la realizarea animaţiei de astăzi. În cele ce urmează sunt prezentate câteva jaloane din istoria animaţiei.

1824 Peter Roget a prezentat lucrarea sa cu titul « The persistance of vision with regard to moving objects » la British Royal Society.

1831 Dr. Joseph Antoine Plateau şi Dr. Simon Rittrer au realizat o maşină pe care au denumit-o phenakitstoscope care produce o iluzie de mişcare, permiţând observatorului care priveşte pe un disc aflat în mişcare de rotaţie (acest disc conţine o mică fereastră) să observe secvenţele de imagine de pe un alt disc aflat la rândul lui în mişcare de rotaţie. Când cele două discuri se rotesc cu turaţii juste, sincronizarea între ferestre şi imagine creează un efect de animaţie.

1834 Horner a dezvoltat construcţia platoului phenakistoscope. 1872 Eadweard Muybridge a început studiul studierii fotografice a animalelor în

mişcare. 1887 Thomas Edison a început cercetările în domeniul mişcării imaginilor. 1889 Thomas Edison a anunţat construirea aparatului sau denumit kinetoscope 1889 George Eastman a început fabricarea benzii de film fotografic pe bază de

nitroceluluză.

Page 3: Note de Curs

Grafică Inginereasca-note de curs

7

1895 Louis et Augustine Lumière au patentat un aparat care a fost denumit cinematograf capabil să proiecteze imagini în mişcare

1896 Thomas Armat proiectează vitascopul 1906 J. Stuart Blackton a realizat primul film animat "Humorous phases of

funny faces." 1908 Emile Cohl a realizat un film cu figuri albe pe un ecran de fundal negru. 1909 Winosr McCay a produs un desen animat "Gertie the Trained Dinosaur"

care a fost realizat cu 10.000 de desene. 1945 Harry Smith a realizat animaţia direct în film. 1957 John Whitney a folosit 17 motoare Bodine, 8 Selsine, 9 angrenaje diferite

şi 5 bile integratoare pentru a crea un computer grafic analog . 1964 Ken Knowlton, qui lucra la laboratoarele Bell, a început să dezvolte

tehnicile computerizate pentru realizarea filmelor de desene animate Metode tradiţionale de animaţie

Înainte de dezvoltarea animaţiei computerizate, toate animaţiile au fost realizate manual. Toate cadrele unei animaţii au fost desenate cu mâna. Şi cum fiecare secundă de animaţie conţine 24 cadre, se poate imagina volumul de lucru care este necesar sa se realizeze chiar pentru cel mai scurt film de desen animat. Aceasta implica un volum mare de lucru, şi un număr mare de personal calificat angajat. Din acest motiv a fost necesar să se dezvolte diferite tehnici de creare a animaţiei. Multe din aceste tehnici din istorilcul animaţiei au fost preluate şi în Grafica asistată de calculator. Câteva din aceste tehnici sunt prezentate în cele ce urmează:

Celula de animaţie

Atunci când se creează o scenă de animaţie folosind acesta metodă, fiecare

caracter este desenat pe o foaie de hârtie transparentă. Un arier-plan este de asemenea desenat pe o foaie separată opacă. Atunci când se demarează animaţia diferitele caractere sunt amplasate pe planul de fundal pentru fiecare cadru. Prin folosirea acestei metode se poate salva destul de mult timp deoarece nu mai este nevoie să se deseneze întreg desenul. Este suficient dacă se desenează numai modificările individuale ale fiecărui caracter. Uneori sunt suficiente numai câteva părţi separate din caracter care sunt plasate pe piese disparate de hârtie transparentă.

Rotascoping

Rotascoping-ul este atunci când se doreşte copierea imaginilor dintr-un film

video într-o scenă de animaţie. De exemplu, dacă se doreşte să se animeze un fulg de nea, este mai uşor să se deseneze mişcarea şi forma fulgului în diferite părţi de animaţie, ca un video. Cu ajutorul rotascopului se poate anima câteva scene mai complexe care ar fi foarte dificile de a fi vizualizate. Un dezavantaj al rotascoping-ului este că trebuie să avem cadrele exacte pe care vrem să le animăm. De exemplu, dacă se doreşte reprezentarea unui câine care aleargă dintr-o parte în alta a ecranului, secvenţa video cu câinele care aleargă de departe catre noi cu imaginile pe care le avem nu se va putea realiza.

Page 4: Note de Curs

Grafică Inginereasca-note de curs

8

Tehnicile de animatie sunt numeroase şi destul de laborioase dar atunci când sunt asamblate ele sunt foarte utile

Evoluţia istorică a graficii

- modelarea figurilor (grafica simpla care sa fie printata). Modele de obiecte sau

obiecte (obiecte abstracte si fenomene) ce trebuiau modelate grafic - grafica interactive (se modifica in timp real modelul format) - interfeţe utilizator (GUI- Graphical User Interface) cu aplicaţii la terminale

grafice care duc la aplicaţii grafice complexe - sinteza de imagini – construcţia unei imagini fotorealiste (photorealistic

rendering) o Simularea legilor optice de interacţiune a luminii cu si intre obiecte.

Aceasta acţiune presupune calcule foarte multe si complexe, iar rezultatul este aproximativ identic cu cel fotografic. In concluzie sinteza de imagini este procesul de redare grafica a unor obiecte reale/imaginare pornind de regula de la un model. Se are in vedere interacţiunea optica a luminii simularea fenomenelor de interacţiune a luminii cu obiecte

reflexie refracţie

- analiza si prelucrarea imaginilor

sinteza de imagini - Construcţia unui model grafic este un proces de redare a imaginii unor obiecte reale/imaginare pornind de regulă de la un model. Se dezvolta tehnici si algoritmi ce presupun calcule foarte multe, dar calitatea e mare. Deci sinteza e procesul de redare a imaginilor unor obiecte reale sau imaginare pornind de regula la un model. analiza si prelucrarea imaginii – reprezinta prelucrarile facute asupra imaginii, reconstructia obiectelor din imagine pornind de la imaginile sale reale. Este procesul invers celui de sinteza a imaginii.

- subdomeniu image enhancement (imbunatatirea calitatii imaginii), consta in

noise reduction (consta in eliminarea zgomotului din imagini reprezentat de pixeli suplimentari sau absenti)

detectarea sabloanelor standard (pattern detection and recognition) si determinarea gradului de distorsiune in imagini 2D (Ex OCR, recunoasterea optica a caracterelor dupa sablon)

analiza de imagine si computer vision se porneste de la imagini 2D ale obiectelor (exemplu robotii industriali disting proprietatile si pozitia obiectelor)

determinarea de obiecte 2D/3D pornind de la proiecţiile 2D ale acestora

Sinteza imaginilor era considerata ca o disciplina diferita astăzi atât sinteza de

imagini cat si analiza si prelucrarea imaginilor se regăsesc in grafica asistata de calculator

Page 5: Note de Curs

Grafică Inginereasca-note de curs

9

Locul graficii asistate de calculator Aplicaţii ale graficii pe calculator

Conform literaturii de specialitate, sistemele de proiectarea asistată de calculator (în engl. CAD− Computer-Aided Design) sunt destinate creării interactive de modele ale obiectelor tehnice reale, analizei acestor modele, generării documentaţiei pentru fabricarea lor şi producerii de date grafice şi negrafice derivate din model. Definiţia este destul de largă pentru a cuprinde cît mai multe din domeniile în care sunt folosite aceste sisteme: mecanică, electronică, electrotehnică, construcţii, arhitectură, sistematizare urbană sau cartografie, multimedia, etc..

În accepţiunea proprie a noţiunii, un sistem CAD este o componentă software, un pachet de programe. Echipamentul pe care lucrează aceste programe nu constituie o componentă a sistemului CAD propriu-zis. Totuşi, din punct de vedere principial şi al relaţiilor de conlucrare, reprezentarea din fig. 1, în care sunt evidenţiate şi componetele hardware, poate fi acceptată ca schemă generală a unui sistem CAD.

Domeniile de aplicaţie ale graficii pe calculator s-au extins o dată cu creşterea

puterii de calcul a calculatoarelor şi cu ieftinirea adaptoarelor şi a acceleratoarelor grafice. În continuare sunt prezentate câteva din cele mai importante domenii de aplicaţie ale graficii pe calculator.

• Una din cele mai extinse utilizări ale graficii este în realizarea interfeţelor utilizator dezvoltate în numeroase programe utilitare, medii de dezvoltare şi programare, sisteme de operare, baze de date. Intefeţele grafice sunt mult mai “prietenoase” decât interfeţele prin comenzi date în linia de comandă şi permit instruirea rapidă a utilizatorilor neexeperimentaţi în folosirea unor astfel de aplicaţii.

• O altă ramură importantă de aplicare a graficii pe calculator o constitue proiectarea asistată de calculator (CAD – Computer Aided Design), folosită în electronică, mecanică, aeronautică, arhitectură, etc. Domeniul de proiectare asistată CAD a reprezentat multă vreme cea mai importantă aplicaţie a graficii pe calculator şi a prilejuit dezvoltarea a numeroase tehnici de generare şi vizualizare a modelelor tridimensionale.

• Prezentările grafice interactive (în administraţie, tehnologie, statistică, management, planificare, comanda şi conducerea proceselor industriale) generează o gamă variată de reprezentări sugestive ale datelor numerice. Astfel de prezentări permit analiza sistemelor mult mai sugestiv decât datele prezentate în tabele.

Page 6: Note de Curs

Grafică Inginereasca-note de curs

10

• În tehnologia multimedia prezentarea de imagini grafice sintetizate, texte, imagini video şi sunet sunt integrate într-o singură aplicaţie (de instruire interactivă, teleconferinţe, etc). Conexiunea dintre generarea de imagini tridimensionale şi prezentarea de imagini video animate reprezintă cel mai important aspect al soluţiei multimedia.

• Realitatea virtuală este tehnica prin care se obţine imersiunea (totală sau parţială) 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. Cuvântul “virtual” este folosit în mod obişnuit în domeniul calculatoarelor pentru a desemna o entitate care simulează o altă entitate. De exemplu, termenul “memorie virtuală” se referă la simularea memoriei principale prin memoria hard-discului. Cuvântul “realitate” se referă la mediul perceput de om prin intermediul simţurilor. Deoarece “realitatea” este percepută prin intermediul simţurilor, este posibilă “alterarea” acesteia prin modificarea datelor percepute de unul sau mai multe simţuri. De aceea, Realitatea Virtuală se referă la modalitatea prin care calculatorul modifică modul în care o persoană percepe realitatea, prin simularea unei alte realităţi. Această realitate, sau mediu, simulat de calculator este numită Realitate Virtuală. Dintre cele cinci simţuri care sunt folosite pentru percepţia realităţii, nu toate sunt la fel de importante în crearea unui mediu virtual. Simţul gustului şi al mirosului au acţiuni limitate în perceperea realităţii (cu excepţia servirii mesei!) şi puţine cercetări au fost efectuate pentru folosirea lor în medii virtuale. Simţul tactil este mult mai util, mai ales atunci când se manipulează obiecte în mediul virtual. Greutatea, temperatura, duritatea, rezistenţa la efort, toate aceste informaţii se obţin prin simţul tactil. Din acest motiv, cercetări importante au fost făcute pentru a simula “atingerea” obiectelor virtuale şi, în momentul de faţă, experimentele în mediul virtual permit generarea informaţiilor tactile. Cele mai importante simţuri folosite în realitatea virtuală sunt văzul şi auzul, deoarece cele mai multe informaţii despre mediul înconjurător se obţin prin intermediul ochilor şi al urechilor. Din acest motiv, cele mai multe cercetări în domeniul realităţii virtuale au fost făcute în domeniul generării imaginii şi a sunetelor. Dintre aplicaţiile cele mai importante ale realităţii virtuale se pot enumera:

• Simulatoare de antrenament, în special simulatoare de zbor, în care se pot exersa manevre dificile, fără a pune în pericol viaţa pilotului sau securitatea aparatului de zbor.

• Proiectare în diferite domenii de activitate (construcţii, arhitectură). Proiectantul are posibilitatea “să vadă” rezultatele proiectului sub forma imaginii acestuia în timp real, să observe detaliile împreună cu alte persoane interesate, şi să ia decizii de modificare înainte de construirea prototipului.

• Vizualizarea ştiinţifică, prin care se obţine imaginea diferitelor modele sau fenomene inaccesibile de fi observate altfel (structuri atomice, fluxuri de informaţie, etc).

• În domeniul medical, în special chirurgie, se pot efectua experimente “la rece” de învăţare a diferitelor proceduri fără riscul vieţii pacientului.

Page 7: Note de Curs

Grafică Inginereasca-note de curs

11

• Jocurile distractive şi filmele de animaţie sunt unele din cele mai cunoscute aplicaţii de realitate virtuală.

În aplicaţiile de realitate virtuală pot fi înglobate un număr diferit de componente care asigură un anumit grad de imersiune, adică de senzaţie a prezenţei participantului în mediul virtual: sistem de vizualizare, sistem de sunet, sistem de urmărire a poziţiei capului şi a mâinii, sistem generare a senzaţiei tactile şi a forţei de reacţie. În diferite aplicaţii de realitate virtuală, unele dintre aceste sisteme, cu excepţia sistemului de vizualizare, pot să lipsească. Sistemul de vizualizare este componenta cea mai importantă a aplicaţiilor de realitate virtuală şi există unele categorii de aplicaţii de realitate virtuală (aplicaţii de realitate virtuală desktop) dezvoltate numai pe baza generării imaginii mediului virtual. În aplicaţiile de realitate virtuală desktop, imaginea vizuală a mediului virtual tridimensional este afişată pe monitorul unui calculator (în general PC). Participantul intercţionează cu mediul virtual prin dispozitive de intrare standard (tastatură, mouse, joystick). Aceste sisteme permit observarea mediului virtual printr-o “fereastră” (ecranul monitorului) şi de aceea se mai numesc sisteme WoW (Window on the World). Sunt cele mai simple şi mai ieftine sisteme de realitate virtuală, dar este de aşteptat ca astfel de sisteme să cunoască în viitor dezvoltări spectaculoase, datorită apariţiei unui mare număr 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 virtuale şi vizualizarea scenei virtuale. Crearea modelului scenei virtuale (mai pe scurt, crearea scenei virtuale) este un proces off-line şi, de cele mai multe ori, de durată considerabilă, prin care se creează colecţia de modele ale obiectelor tridimensionale care constituie cea mai adecvată reprezentare a mediului virtual.

Vizualizarea scenelor virtuale este un proces on-line, care se desfăşoară în 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 condiţiile de explorare (poziţie de observare, acţiuni interactive, etc).

Primul standard grafic a fost standardul GKS (Graphical Kernel System) elaborat de ISO în 1985, care conţinea un set de funcţii grafice 2D independente de echipament. Acest standard a fost extins în anul 1988 la GKS 3D, care conţine funcţii 3D independente de echipament.

Un alt standard, PHIGS (Programmer’s 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 anumit standard în definirea funcţiilor de acces la echipamentele hardware. Cele mai cunoscute biblioteci grafice sunt OpenGL, DirectX, QuickDraw, care sunt implementate în numeroase sisteme grafice.

În momentul de faţă, situaţia cea mai obişnuită în crearea aplicaţiilor grafice este aceea în care se poate folosi un calculator care dispune de facilităţi 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 funcţii grafice adaptate şi optimizate pentru dispozitivele grafice disponibile ale sistemului. De aceea, în lucrare s-a acordat o mai

Page 8: Note de Curs

Grafică Inginereasca-note de curs

12

mică întindere descrierii unor funcţii existente în biblioteci (de exemplu funcţiile de generare a segmentelor de linie dreaptă, a cercurilor, etc.) şi accentul s-a îndreptat către 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 asemănător limbajului C. Biblioteca grafică OpenGL este folosită intens, datorită portabilităţii şi disponibilităţii acesteia în aproape toate calculatoarele, de la calculatoare PC până la staţii grafice puternice, sub un număr mare de sisteme de operare şi apelabilă din numeroase sisteme de dezvoltare (toolkit).

Scopul prezentei lucrări este acela de a da o descriere unificată a principalelor metode de generare a imaginilor tridimensionale împreună cu aspecte de implementare care să faciliteze sarcina programatorului de a aborda acest domeniu de aplicaţii diversificat şi în permanentă creştere. În acest sens, aproape toate imaginile ilustrative ale diferitelor tehnici au fost produse de autor prin programe grafice descrise în text. Concepte de baza folosite in grafica inginereasca

1. Sistem grafic = ansamblul de echipamente si programe aplicative de prelucrare grafica

Sunt clasificate in : - Sisteme grafice de sinteza grafica – se porneste de la un model (model

creat de programator sau utilizator), care e prelucrat folosind algoritmi de sinteza. Rezulta o imagine codificata numeric si se ajunge la imagine digitala care este afisata pe un dispozitiv de afisare

- Sisteme grafice de analiza/ prelucrare a imaginii – se porneste de la imaginea reala care e discretizata folosind un scaner sau un dispozitiv multimedia, rezultatul operatiei fiind imaginea digitalam codificata numeric. Asupra acestei imagini se aplica algoritmi de prelucrare iar rezultatul acestei prelucrari e tot o imagine care va fi afisata, sau algoritmi de analiza iar rezultatul va fi un model imaginar

2. Grafica interactivă = cadrul conceptual care consta din:

- programul aplicaţie creează, memorează şi prelucrează date de la modelul grafic. Tratează comenzile de la utilizator furnizate de sistemul grafic care preia evenimentele de la echipamentele de intrare ( de regula mouse si tastatura)

- sistemul grafic va produce imaginea la dispozitivul de afisare, el fiind implementat (realizat) fie sub forma unor subroutine intr-o biblioteca grafica, fie un dispozitiv hardware (un processor de afisare) capabil sa genereze comenzi de desenare.

modelul aplicatie cuprinde o descriere a obiectelor ce compun imaginea. Aceasta descriere se face prin atribute geometrice (pozitie, dimensiune, orientare) si atribute de afisare (culoare, tip linie, tip interior etc.).

Page 9: Note de Curs

Grafică Inginereasca-note de curs

13

Fig. 1.1

Fig. 1.2 -

Fig. 1.3

Pentru reprezentarea modelului se pot folosi structuri simple (vectori,

coordonate vârfuri) sau complexe (proprietari, conectivitate, restricţii). Obs. Nu orice program foloseşte un model. Obiectele din model sunt definite intr-un spaţiu

Imagine reala

Discretizare

Imagine codificata numeric

Algoritmi de analiza

Algoritmi de prelucrare

Model

Afisare

Programator/utilizator

model

Algoritmi de sinteza

Imagini codificate numeric

Dispozitive de afisare

Model aplicaţie Program aplicaţie Sistem grafic

Dispozitiv de afişare

Dispozitiv de input (mouse, tastatura)

Page 10: Note de Curs

Grafică Inginereasca-note de curs

14

independent de dispozitivul de afişare. Programul aplicativ creează şi memorează baza de date grafice pornind de la modelul aplicativ, preia si prelucrează comenzile venite de la dispozitivul de intrare, generează primitivele grafice si a comenzilor de desenare care vor fi interpretate de sistemul grafic, face transformarea in coordonate pentru dispozitivul de afişaj. Aceasta se poate realiza prin :

- Tratarea evenimentelor de intrare (obţinute de la mouse si tastatura) - Generarea primitivelor geometrice si a comenzilor de afişare ce vor fi

interpretate de dispozitivul de afişaj Sistemul grafic in acest caz este un set de subrutine ce corespund primitivelor

grafice, atributelor lor de afişare, alte elemente si atribute ale imaginii. Aceste subrutine sunt constituite sub forma unui pachet sau biblioteca grafica ce poate fi utilizata in limbaje de programare de nivel înalt.

O aplicaţie grafică, indiferent de domeniul căreia îi este destinată, se dezvoltă într-un sistem care prezintă anumite facilităţi grafice, sistem numit la modul general sistem grafic.

Un sistem grafic este un calculator care dispune de componente hardware şi software pentru crearea sau prelucrarea imaginilor. Componenta hardware cea mai importantă a unui sistem grafic este adaptorul (sau acceleratorul) grafic, prin intermediul căruia este comandat un dispozitiv de afişare (display) color. La aceasta se mai adaugă diferite dispozitive de intrare (tastatură, mouse, joystick, trackball, interfeţe specializate) care asigură interacţiunea utilizatorului cu programul de aplicaţie.

În programarea aplicaţiilor grafice intervin mai multe componente software, care asigură crearea imaginilor pe display (Fig. 1.4).

Programul de aplicaţie grafică se dezvoltă pe baza unor sisteme de dezvoltare de aplicaţii (toolkit-uri) sau direct, prin utilizarea unor biblioteci grafice care asigură interfaţa cu echipamentul hardware prin intermediul driverelor sistemului de operare. Sistemele de dezvoltare sunt de cele mai multe ori orientate către aplicaţie şi prevăd un set de funcţii de nivel înalt care permit crearea unui anumit tip de aplicaţie. 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).

Echipament hardware

Sistem de operare

Biblioteci grafice

Sistem de dezvoltare de aplicaţii (toolkit)

Programul de aplicaţie

Utilizator

Fig. 1.4 Componentele necesare pentru crearea aplicaţiilor grafice.

Page 11: Note de Curs

Grafică Inginereasca-note de curs

15

Bibliotecile grafice sunt pachete de funcţii care asigură interfaţa programului de aplicaţie (creat direct sau prin intermediul unui toolkit care apelează funcţiile bibliotecii) cu echipamentele hardware ale sistemului grafic.

Bibliotecile grafice reprezintă nivelul de programare în care se încearcă introducerea portabilităţii programelor grafice, prin asigurarea unei interfeţe independente de echipamentele hardware care să respecte anumite convenţii de reprezentare a entităţilor grafice descrise în standarde.

Primul standard grafic a fost standardul GKS (Graphical Kernel System) elaborat de ISO în 1985, care conţinea un set de funcţii grafice 2D independente de echipament. Acest standard a fost extins în anul 1988 la GKS 3D, care conţine funcţii 3D independente de echipament.

Un alt standard, PHIGS (Programmer’s 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 anumit standard în definirea funcţiilor de acces la echipamentele hardware. Cele mai cunoscute biblioteci grafice sunt OpenGL, DirectX, QuickDraw, care sunt implementate în numeroase sisteme grafice.

În momentul de faţă, situaţia cea mai obişnuită în crearea aplicaţiilor grafice este aceea în care se poate folosi un calculator care dispune de facilităţi 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 funcţii grafice adaptate şi optimizate pentru dispozitivele grafice disponibile ale sistemului. De aceea, în lucrare s-a acordat o mai mică întindere descrierii unor funcţii existente în biblioteci (de exemplu funcţiile de generare a segmentelor de linie dreaptă, a cercurilor, etc.) şi accentul s-a îndreptat către 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 asemănător limbajului C. Biblioteca grafică OpenGL este folosită intens, datorită portabilităţii şi disponibilităţii acesteia în aproape toate calculatoarele, de la calculatoare PC până la staţii grafice puternice, sub un număr mare de sisteme de operare şi apelabilă din numeroase sisteme de dezvoltare (toolkit).

Scopul prezentei lucrări este acela de a da o descriere unificată a principalelor metode de generare a imaginilor tridimensionale împreună cu aspecte de implementare care să faciliteze sarcina programatorului de a aborda acest domeniu de aplicaţii diversificat şi în permanentă creştere. În acest sens, aproape toate imaginile ilustrative ale diferitelor tehnici au fost produse de autor prin programe grafice descrise în text. Limbaje şi biblioteci grafice Pentru diferite limbaje de programare bibliotecile grafice au funcţii variate ce pot fi împărţite în mai multe clase. Pentru a putea folosi funcţiile de grafică în cadrul programelor scrise în limbajul C trebuie să se includă fişierul header graphics.h prin directiva #include<graphics.h> , iar în limbajul Pascal cu ajutorul instrucţiuniii uses în următorul mod: uses graph. În acest mod sunt recunoscute şi variabilele predefinite sau şabloanele unor structuri. Pentru a pitea utiliza funcţiile de grafică mai sunt necesare fişierele de tip BGI (Borland Graphics Interface), care conţin codul obiect al driverelor specifice diferitelor

Page 12: Note de Curs

Grafică Inginereasca-note de curs

16

interfeţe grafice şi cele de tip CHR ce conţin stiluri suplimentare de litere. Lucrul cu biblioteca grafică Borland presupune în prealabil deschiderea, folosirea funcţiilor şi apoi închiderea ei. Pentru aceste limbaje putem distinge următoarele clase de funcţii:

Funcţii de intrare/ieşire în/din regim grafic şi interogarea modului şi adaptorului grafic. Din această clasă de funcţii fac parte cele ce iniţializează modul grafic, cum ar fi intergraph, pentru închiderea modului grafic; closegraph, pentrudetectarea parametrilor adaptorului grafic; detectgraph, pentru obţinerea modului grafic ca număr getgraphmode şi ca nume (şir de caractere) getmodename şi a numelui driverului getdrivername.

Funcţii pentru determinarea sau setarea parametrilor sistemului grafic. La iniţializare parametrii iau valori implicite, dar aceste valori pot fi schimbate în funcţie de necesităţi. Parametrii sistemului grafic constau din variabile elementare, ce pot fi grupate în diferite structuri predefinite în fişierul header respectiv. Din această categorie de funcţii o putem aminti pe cea care determină parametrii de trasare a unei drepte (stilul liniei, grosimea ei), getlinesettings. În general cele care setează parametrii încep cu set… de exemplu funcţia setfillstyle, ce se foloseşte pentru umplere şi setează pattern-ul de umplere şi culoarea.

Tot de această clasă de funcţii aparţin şi cele ce setează poziţia cursorului moveto la o poziţie absolută sau relativă la poziţia anterioară moverel.

În regim grafic, pentru unele moduri grafice se poate activa o pagină şi o alta să apară pe ecran. Acest lucru este posibil prin intermediul funcţiilor: setactivepage şi setvizualpage. Pentru desemnarea unui vizor se foloseşte funcţia setviewport.

Funcţii de captare şi diagnosticare erori. După executarea oricărei funcţii grafice, există posibilitatea producerii unor erori. În acest sens există funcţia graphresult, care întoarce un cod de eroare ce poate fi explicitat printr-un mesaj (şir de caractere) cu ajutorul funcţiei grapherrormsg.

Funcţii de lucru cu texte în mod grafic. pentru a scrie texte în mod grafic trebuie să se stabilească anumite caracteristici ale caracterelor, şi anume fontul, direcţia de scriere şi mărimea lor. În acest sens există funcţiile: settextstyle - ce fixează parametrii menţionaţi mai sus; settextjustify - care are ca efect centrarea textului de scris; textheight - ce stabileşte în concordanţă cu fontul activ înălţimea în pixeli a unui caracter; textwidth - care returnează în funcţie de fontul curent lungimea în pixeli a şirului. Scrierea propriu-zisă a şirului se face cu funcţia outtext sau când se doreşte o poziţie fixă la care să se scrie textul pe ecran se va folosi funcţia outtextxy.

Informaţiile ce controlează scrierea textelor în regim grafic sunt grupate în structura textsettingstype, care poate fi citită folosind funcţia gettextsettings.

Funcţii pentru gestiunea culorii. Din această clasă de funcţii le putem menţiona pe cele care obţin culoarea (fond-faţă) getcolor, citirea paletei de culori se face de către funcţia getpallete, iar setpallete o setează. Pentru a obţine culoare unui pixel de la o anumită coordonată se foloseşte funcţia getpixel,

Funcţii pentru reprezentări geometrice. În cadrul biblioteciigrafice există funcţii pentru reprezentarea unui punct putpixel, pentru trasarea unei drepte line, linerel, lineto, trasare a unui poligon drawpoly, pentru cerc circle , pentru dreptunghi rectangle, pentru elipsa ellipse, pentru arce arc etc

Funcţii pentru gestiunea imaginilor. Din această clasă de funcţii reprezentative sunt cele pentru obţinerea unei imagini de pe ecran getimage şi punerea unei imagini pe ecran putimage. Alături de acestea mai sunt cele care obţin dimensiunea în baiţi a

Page 13: Note de Curs

Grafică Inginereasca-note de curs

17

zonei de memorie necesară pentru a stoca imaginea imagesize şi cea care umple un contur floodfill.

Programul de aplicaţie grafică se dezvoltă pe baza unor sisteme de dezvoltare de aplicaţii (toolkit-uri) sau direct, prin utilizarea unor biblioteci grafice care asigură interfaţa cu echipamentul hardware prin intermediul driverelor sistemului de operare. Sistemele de dezvoltare sunt de cele mai multe ori orientate către aplicaţie şi prevăd un set de funcţii de nivel înalt care permit crearea unui anumit tip de aplicaţie. 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 funcţii care asigură interfaţa programului de aplicaţie (creat direct sau prin intermediul unui toolkit care apelează funcţiile bibliotecii) cu echipamentele hardware ale sistemului grafic.

Bibliotecile grafice reprezintă nivelul de programare în care se încearcă introducerea portabilităţii programelor grafice, prin asigurarea unei interfeţe independente de echipamentele hardware care să respecte anumite convenţii de reprezentare a entităţilor grafice descrise în standarde.

Primul standard grafic a fost standardul GKS (Graphical Kernel System) elaborat de ISO în 1985, care conţinea un set de funcţii grafice 2D independente de echipament. Acest standard a fost extins în anul 1988 la GKS 3D, care conţine funcţii 3D independente de echipament.

Un alt standard, PHIGS (Programmer’s 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 anumit standard în definirea funcţiilor de acces la echipamentele hardware. Cele mai cunoscute biblioteci grafice sunt OpenGL, DirectX, QuickDraw, care sunt implementate în numeroase sisteme grafice.

În momentul de faţă, situaţia cea mai obişnuită în crearea aplicaţiilor grafice este aceea în care se poate folosi un calculator care dispune de facilităţi 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 funcţii grafice adaptate şi optimizate pentru dispozitivele grafice disponibile ale sistemului. De aceea, în lucrare s-a acordat o mai mică întindere descrierii unor funcţii existente în biblioteci (de exemplu funcţiile de generare a segmentelor de linie dreaptă, a cercurilor, etc.) şi accentul s-a îndreptat către 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 asemănător limbajului C. Biblioteca grafică OpenGL este folosită intens, datorită portabilităţii şi disponibilităţii acesteia în aproape toate calculatoarele, de la calculatoare PC până la staţii grafice puternice, sub un număr mare de sisteme de operare şi apelabilă din numeroase sisteme de dezvoltare (toolkit).

Scopul prezentei lucrări este acela de a da o descriere unificată a principalelor metode de generare a imaginilor tridimensionale împreună cu aspecte de implementare care să faciliteze sarcina programatorului de a aborda acest domeniu de aplicaţii diversificat şi în permanentă creştere. În acest sens, aproape toate imaginile ilustrative ale diferitelor tehnici au fost produse de autor prin programe grafice descrise în text.

Page 14: Note de Curs

Grafică Inginereasca-note de curs

18

Productivitatea muncii de proiectare în o serii de domenii particulare a crescut semnificativ în ultimii ani, sistemele CAD conducând la productivităţi de trei ori mai mari. De exemplu în cazul desenării automate faţă de desenarea manuală aceste creşteri spectaculoase se datoresc în primul rând schimbării mentalităţii celor care scriu software-ul pentru sistemele de proiectare asistată de calculator; pachetele de programe nu au mai fost dezvoltate într-o manieră orientată spre programator ci spre utilizator. Schimbarea de mentalitate, corelată cu disponibilitatea pe o scară tot mai mare a unor echipamente grafice adecvate şi la preţuri accesibile, s-a concretizat în apariţia a numeroase sisteme CAD, CAM şi mai nou CAE. Toate aceste sisteme se bazează pe sisteme grafice interactive care permit o comunicare om-calculator intermediată de imagini în funcţie de comoditatea şi generalitatea utilizării lor, sistemele grafice pot fi ierarhizate astfel:

1) sisteme la cheie (hardware şi software); 2) sisteme aplicative (numai software); 3) pachete de subrutine grafice; 4) sisteme de instrumente grafice independente de dispozitiv; 5) software furnizat de fabricantul de echipamente grafice (driver de dispozitiv)..

Dezvoltarea unui sistem aplicativ puternic, care să rezolve problemele dintr-un domeniu bine precizat, necesită un efort de programare considerabil. Utilizatorul unui astfel de sistem doreşte protecţia investiţiilor sale în software în sensul unor modificări minime ale sistemului în cazul introducerii în configuraţie a unor noi echipamente grafice. Aceasta implică crearea unor sisteme aplicative independente de dispozitivele fizice din configuraţie, precum şi standardizarea: a) sistemelor software de instrumente grafice independente de dispozitiv; b) interfeţei dintre instrumentele grafice şi dispozitivul fizic; c) metafişierul de imagini.

În acest sens la proiectarea şi implementarea unui sistem grafic independent trebuie să se ţină seama de următoarele considerente: 1) Programul aplicativ face referinţe la unul sau mai multe dispozitive grafice virtuale. În momentul lansării în execuţie, programul aplicativ selectează unul sau mai multe dispozitive fizice cu care le înlocuieşte pe cele virtuale. 2) Fiecare dispozitiv fizic este suportat de un driver de dispozitiv, care interpretează comenzile independente de dispozitiv şi le pune în corespondenţă cu instrucţiunile dependente de dispozitiv corespunzătoare pentru a genera desene sau a obţine intrări de la dispozitivele grafice reale (comenzile virtuale care nu au corespondenţe în instrucţiuni hardware sunt simulate prin software: de exemplu, colorarea unui poligon - fill polygon - se execută prin firmware pe un dispozitiv cu rastru, iar pe plotter se simulează prin haşurare). 3) Programul aplicativ defineşte obiectele grafice folosind primitive grafice prin coordonate reale în 2D sau 3D. 4) Primitivele se grupează în segmente; segmentele sunt exclusive. Desenul afişat la un moment dat pe ecran este compus din unul sau mai multe segmente care pot fi identificate prin nume şi care se păstrează într-o memorie de date specifice structurate pe segmente. Această structură de date grafice este independentă de structura de date a oricărui program aplicativ. 5) Dispozitivul grafic virtual are o zonă adresabilă, independentă de dispozitiv, numită sistemul de coordonate virtuale.

Page 15: Note de Curs

Grafică Inginereasca-note de curs

19

6) Programul aplicativ defineşte corespondenţa de la o regiune dreptunghiulară din sistemul de coordonate reale - numită fereastră - la o regiune dreptunghiulară din sistemul de coordonate virtuale - numită vizor. Această corespondenţă se numeşte transformarea de vizualizare. 7) Transformarea de vizualizare poate fi utilizată pentru a defini poziţia şi orientarea unui pătrat fotografic virtual în sistemul de coordonate real 3D. Se definesc astfel proiecţii paralele , de perspective şi oblice. 8) Transformarea de vizualizare "fotografiază" un obiect în coordonate reale. Înainte de a face "fotografia", programul aplicativ poate scala, translata, roti sau elimina liniile exterioare, obiectul folosind o transformare de modelare specificată în coordonate reale. 9) Dispozitivul grafic virtual suportă funcţii de intrare grafică virtuală, independente de dispozitiv, care pot fi asociate cu segmente identificate prin nume, pentru a manipula dinamic imaginea acestor segmente pe dispozitiv fizic. Driver-ul dispozitivului pune în corespondenţă dispozitivul de introducere real cu funcţiile de intrare virtuale.

Rezumând, independenţa de aplicaţie şi de dispozitive grafice a unui sistem grafic se obţine prin respectarea a două deziderate: a)izolarea datelor programului aplicativ de datele sistemului grafic şi limitarea accesului programului aplicativ la rutinele independente de dispozitiv; b) virtualizarea echipamentelor grafice.

Al doilea deziderat se realizează prin implementarea unui pachet de subrutine grafice generale, apelabile din programul aplicativ, care trimit coduri de funcţii şi parametri - asemănătoare directivelor de intrare/ieşire din sistemul de operare - prin intermediul unei interfeţe virtuale cu dispozitivul VDI- (Virtual Device Interface)

. i.2. Tehnologii de afisare Exista doua tehnologii Tehnologia vectoriala (caligrafica, Stroke). Vectorul este definit de un segment de dreapta deci este definit prin coordonatele extremităţilor. Literele sunt create din segmente de linii scurte.

Page 16: Note de Curs

Grafică Inginereasca-note de curs

20

Fig. 1.5

Un asemenea sistem are următoarea structura:

Procesor de afişare care comunica cu o memorie video tampon (buffer) care conţine comenzi.

Line (150,200) Move to Char Jump Acest program ce generează imagini se termina cu o instrucţiune de start la

începutul programului. Mai există şi alte interfeţe cu calculatorul. Procesorul de afişare primeşte comenzi de afişare si furnizează date de

interacţiune primite de la dispozitivele de intrare (Mouse, tastatura etc). Procesorul de afişare generează imaginea la un dispozitiv de afişare (fie cu tub catodic CRT, sie cu cristale lichide LCD, fie cu laser fie holografic)

O coordonata a unui punct (x,y) este transmisă de procesorul de afişare modului generator de vector care converteşte valoarea numerica într-o tensiune analogica ce comanda sistemul de deflexie a CRT. Acesta va conduce fluxul de electroni din punctul iniţial in punctul final al vectorului. O astfel de generare se numeşte scanare aleatoare sau random scan.

Persistenţa imaginii este de 10-100 milisecunde pe CRT. Imaginea se reîmprospătează periodic. Data de reîmprospătare (rata de refresh) este de minim 30 sec, f=30Hz (no flicker adică imaginea nu pâlpâie). Pentru generarea ciclica a imaginii procesorul de afişare executa programul şi la sfârşit sare la început (instructiunea jump. Pentru a asigura 30 Hz programul grafic nu poate depăşi câteva mii de linii si de aici rezulta o limitare a complexităţii imaginii cauzata de rata de refresh..

Tehnologia raster. Structura sistemului e asemănătoare (in anii 1970 a fost introdusa si in televiziune)

Interfaţa cu calculatorul

Memorie video Line (150,200) Move to Char Jump ……….

Procesor de afisare

Disp de afisare

Date si interacţiune

Page 17: Note de Curs

Grafică Inginereasca-note de curs

21

Fig.1.6

Memoria video un contine programe ci imaginea formata din puncte (pixeli) care va fi afisata pe ecran. Procesorul de afisare poate exista ca o componenta soft inclusa in biblioteda grafica pentru PC sau oricare statii grafice de cost scazut; memoria video este o zona din memoria UCP (unitatii centrale de procesare). Procesorul de afisare poate fi si o componenta hard ( RIP Raster Image Processor) care actioneaza ca un accelerator in orice coprocesor in sistemul grafic. Imaginea e afisata de controler. Se afiseaza in linii orizontale linie cu linie pe verticala.

Fig. 1.7

Afişarea e ciclică pentru ca imaginea sa fie stabilă (să nu pâlpâie şi să nu scadă în intensitate). Rata de reîmprospătare este de 30-60 Hz sau mai mult in funcţie de rezoluţie. Imaginea codificată în memoria video va folosi 1 bit/pixel pentru imaginea monocromă şi n biti/pixel pentru imaginea color

n=8 pentru 256 culori distincte simultan pe ecran n=24 pentru true color 8 biti pentru fiecare din RGB n=32 24 biti pentru fiecare din RGB8 biti pentru control

Cursa de întoarcere orizontala

Cursa de întoarcere verticală

Interfaţa cu calculatorul gazda

Comenzi de afişare Date de interactiune

Procesor de afişare

Controler video

Monitor Mouse

Memorie video

00000100000 00111100001 01111011101 10000001000

pixeli

Page 18: Note de Curs

Grafică Inginereasca-note de curs

22

n=96 2x32 biti pentru reprezentarea culorilor in doua buffere distincte (unul care se afişează, unul pentru imaginea următoare), sistem double buffer (pentru animaţii) si 32 de biti pentru algoritmul de determinare a vizibilităţii - z buffer (uşor de implementat hard), care determina profunzimea imaginii pe direcţia z, perpendiculara pe ecran. Avantajele si dezavantajele tehnologiei raster Avantaje

- independenta ratei de refresh de complexitatea imaginii de afişat - posibilitatea de a reprezenta suprafeţe opace sau texturi (model)

Dezavantaje - reprezentarea imaginii in memoria video sub forma de pixeli necesita algoritmi

de conversie sau de scanare specifici ( de exemplu algoritmul Bressenham pentru generare linii). Conversia există la nivelul procesorului de afişare fie sub forma de subrutine fie sub forma hardware

- reprezentarea aproximativa a primitivelor grafice prin puncte care au un efect vizual nedorit aliasing care se datorează eşantionării unei funcţii continuii de o variabilă şi care poate prezenta modificări bruşte care nu pot fi corect eşantionate. Exista tehnici antialiasing prin determinarea unor intensităţi de curbare gradata pentru pixelii vecini de pe marginile obiectelor reprezentate.

Portabilitate si standarde grafice

Primele pachete grafice scrise erau dependente de dispozitiv in limbaje low-level pentru fiecare dispozitiv. Acestea au evoluat spre pachete independente de dispozitiv completate cu scrierea in limbaje de nivel înalt. Ca o necesitate rezultata de aici se poate menţiona portabilitatea aplicaţiilor si necesitatea standardizării unui sistem grafic. Prima specificaţie de sistem grafic 3D a fost specificaţia Core 1977 USA propusa de ACM SIGGRAPH. A fost urmat de standardul GKS, ca o specificaţie a unui SGBD aparuta in 1985 si extinsa in 1988 la GKS-3D reprezentarea se face pe segmente dar acestea nu sunt imbricate. Tot in 1988 in SUA apare un nou standard PHIGS (Programm’s Hierarhical Interactive Graphics Systems)

In ambele standarde exista posibilitatea gruparii primitivelor grafice in segmente dar care nu pot fi imbricate, dar in cadrul PHIGS primitivele pot fi grupate in structuri care pot fi incluse ierarhic una in alta. PHIGS + - standard completat cu tehnici de redare pseudorealista a scenelor 3D si astfel se poate realiza simularea simpla a legilor optice privind doar reflexia luminii intre obiecte.

Standarde pentru memorarea imaginilor in fisiere CGM – imaginile memorate folosesc un limbaj de descrire IGES – imagini grafice si text

Interfetele grafice : WIN, XWIN = standarde grafice OpenGL= ce asigura portabilitatea aplicatiilor pe masini cu sisteme de operare diferit Glut =OpenGL utility toolkit

Echipamente grafice - de afisare (ecran cu tub catodic CRT, cu cristale lichide LCD, cu plasma) - de trasare si imprimare (hardcopy) (plotter si printer)

Page 19: Note de Curs

Grafică Inginereasca-note de curs

23

- de intrare (mouse si tastatura) Resurse hardware – un procesor performant la care se conecteaza un procesor grafic i.3. Soluţii CAD

Înainte de a vedea care sunt opţiunile în privinţa platformelor CAD (numite frecvent şi medii CAD). Cu programele din această categorie se poate face:

Desenare nelimitată bidimensională şi tridimensională (creare de entităţi geometrice simpole sau complexe);

Dimensionare şi haşurare (de obicei asociative, ceea ce înseamnă că după o eventuală modificare a conturului/geometriei obiectului cărora le sunt asociate, cota şi respectiv haşura se refac automat, fără intervenţia utilizatorului);

Includerea de blocuri şi gestionarea acestora: un bloc este un grup de elemente grafice predefinit pentru inserare ulterioară repetată ( simbol), căruiua i se pot asocia seturi de proprietăţi sau chiar comportamente sub formă de constrângeri geometrice sau de parametrizări;

• Folosirea fişierelor referinţă; fişierul referinţă este un desen CAD, existent ca fişier extern pe disc, ce poate fi afişat read-only în cadrul desenului curent pentru a asigura diverse referinţe (poziţionări, repere, comparaţii etc.) sauz pentru a completa compoziţia grafică ;

• Umbrirea sau randarea (renderizarea) modelului tridemensional: generarea unui aspect cvasi-real obiectelor proiectate prin repreazentarea de culori, texturi, modele, lumini, umbre, reflexii etc;

• Modelarea de solide tridimensionale (opţional) crearea/editarea de corpuri pline acceptând operaţii booleene de unire, intersecţie diferenţă, precum şi asocierea de proprietăţi descriptive şi intercomportamentale;

• Definirea de legături cu baze de date externe pentru asocieri informaţionale cu obiectele desenate Sistemele de producţie integrate domeniu destul de nou şi de vast generează

confuzii şi interpretări personale. Drept urmare în cele ce urmează sunt expuse componentele acestor sisteme, urmând ca în final să identificăm locul ocupat de grafica inginerească.

Sistemele de producţie integrate cu calculatorul pun oamenii, tehnologia, produsele şi procesele împreună într-un singur sistem integrat. Ele au un mare potenţial în a reduce pierderile rezultate din volumul mare de muncă din cadrul sistemelor de producţie tradiţională şi din procentul foarte scăzut de utilizare a echipamentelor performante din cadrul acestora. Domeniile principale de manifestare sunt: a) Proiectare constructivă asistată de calculator (Computer Aided Design, - CAD); desemnează la modul cel mai generic domeniul proiectării asistate de calculator, căruia i se pot subsuma următoarele ramuri:

CADD – activitatea de proiectare şi desenare (2D şi 3D), adică de producere a planurilor şi/sau desenelor tehnice în format vectorial; MCAD – desemnează proiectarea de piese şi ansambluri mecanice; AEC – se refetă la proiectarea arhitecturală a construcţiilor industriale şi civile,

precum şi la ingineriile complementare (studii de amplasament şi urbanism,

Page 20: Note de Curs

Grafică Inginereasca-note de curs

24

modelarea terenului, măsurările topografice şi geodezice, proiectarea instalaţiilor electrice, termice, sanitare, ventilaţie etc.); GIS – sisteme geografice informatice sunt doar înrudite cu CADD-ul prin faptul

că ele înglobează pe lângă baza de date descriptivă (tabele cu informaţii alfanumerice), şi o bază de date grafică, adică planuri cu reprezentări vectoriale ale entităţilor la care se referă (străzi parcele, clădiri, reţele utilitare, oraşe, ape, limite administrative); Plant Design – proiectarea instalaţiilor tehnologice bazate pe conducte

(rafinării, uzine chimice, termocentrale, instalaţii de prelucrare, transport şi distribuţie produse fluide etc.); EDA – priveşte conceperea schemelor electronice şi proiectarea circuitelor

imprimate (pentru domeniul digital şi sau cel analogic); proiectarea în domeniul electronic nu se poate lipsi de simularea funcţionării circuitelor (studierea semnalelor) deci astfel de programe integrează şi funcţiuni CAE.

Concepţia unui produs se realizează prin parcurgerea următoarelor faze: o definirea produsului după cerinţele şi condiţiile pieţii căreia îi este

destinat; o reprezentarea viitorului produs prin scheme simplificate, care se

elaborează sub forma de schiţe, scheme cinematice, electrice, hidraulice, pneumatice, electronice şi pe bază de calcule se fac aprecieri legate de principalele componente de care depind caracteristicile funcţionale de realizat;

o elaborarea desenului de ansamblu şi a subansamblelor necesare în urma efectuării unor calcule de sinteză. În această fază se fac calcule de rezistenţă, durabilitate a celor mai solicitate piese;

o elaborarea desenelor de execuţie ale tuturor pieselor de executat, efectuând în paralel şi calculele necesare închiderii lanţului de dimensiuni;

o întocmirea caietului de sarcini pentru executarea produsului şi a documentaţiei necesare vânzării (dosarul de omologare, cartea tehnică, prospecte)

Toate aceste activităţi sunt sensibil uşurate prin utilizarea calculatorului. Ţinând seama de fazele conceperii unui produs, CAD îndeplineşte funcţiile: elaborarea modelului de produs, desenarea asistată de calculator, integrarea datelor depre produs în sistemul CIMS.

b) Inginerie asistată de calculator (Computer Aided Engineering, - CAE). Cum există mai multe inginerii şi mai toate pot fi până la urmă asistate de calculator, pretutindeni fiind vorba de stocarea şi prelucrarea informaţiilor tehnice se întâlnesc frecvent aplicaţii care se pot încadra în CAE. În concluzie CAE cuprinde totalitatea programelor folosite pentru concepţia construcţiei produselor şi prezintă interes pentru inginerul proiectant. Revenind însă la cea mai concretă realitate, principalele manifestări ale tehnologiilor CAD/CAE se referă la:

Analize şi simulări ale comportamentelor reperelor proiectate supuse la solicitări mecanice, termice şi electro-magnetice: aici s-a consacrat analiza cu elemente finite (FEA);

Simulări ale prototipurilor de ansambluri mecanice; studierea comportamentelor machetelor digitale (ceea ce se mai numeşte „digital mock-up”) sau a prototipurilor virtuale („virtual prototyping”), testări care pentru

Page 21: Note de Curs

Grafică Inginereasca-note de curs

25

repere mari (maşini, avioane) sunt mai ieftine decât cele cu machete- prototipuri reale.

c) Proiectarea proceselor asistată de calculator (Computer Aided Process Planning, - CAPP). Reprezintă componenta CIMS aferentă procesului tehnologic de execuţie. Proiectarea procesului tehnologic cuprinde:

• elaborarea procesului tehnologic de grup pentru produse şi componentele lor;

• stabilirea itinerarului tehnologic pentru fiecare produs şi componentele sale (succesiunea operaţiilor fazelor, mânuirilor etc.);

• stabilirea maşinilor de lucru, sculelor, dispozitivelor de lucru, celor de transfer, roboţilor şi întregului echipament necesar procesului de fabricaţie;

• stabilirea secvenţelor de transfer, manipulare şi control; • elaborarea documentelor aferente celor de mai sus cum ar fi

nomenclatoare, fişe tehnologice, liste de materiale, extrase de manoperă etc.;

• calculaţii de cost, ţinând seama de toate fazele procesului de producţie.

d) Planificarea, programarea, urmărirea asistate de calculator (Computer Aided Process Programing Scheduling, - CAPS). Componenta de planificare CAPS se referă la cantităţi, intervale de timp, încărcarea capacităţilor de producţie, dimensiunile lotului de producţie. e) Fabricaţia asistată de calculator (Computer Aided Manufacturing, - CAM), înseamnă de obicei, că pe baza desenelor/modelelor digitale (produse de programe CAD) se studiază, se testează şi se controlează producerea efectivă a reperelor proiectate. De obicei, se materializează prin comenzi digitale transmise de calculator unor instalaţii tehnologice capabile să preia sau să interpreteze astfel de comenzi spre a le transforma în procese tehnologice capabile (de exemplu, maşina cu comandă numerică în 2-4 axe; strunguri şi freze automate). Subdomeniul este bine reprezentat în mecanică dar cunoaşte şi alte aplicări (mobilă, textile, pielărie); f) Testarea asistată de calculator (Computer Aided Testing, - CAT); g) Asigurarea calităţii asistată de calculator (Computer Aided Quality, CAQ); cele două componente CAT şi CAQ trebuie prin specificul lor să fie analizate unitar. Unele elemente de asigurarea calităţii apar încă din faza concepţiei, existând posibilitatea de testare a produsului prin modelarea şi simularea funcţionării lui. Testarea fizică a produsului aparţine însă CAT. Cerinţele care se respectă în cazul asigurării calităţii sunt reglementate prin standardele internaţionale ISO 9000, EN2000. h) Product data maintenance PDM – documentele tehnice nu se abandonează o dată cu încheierea proiectării şi fabricaţiei, ci pot deservi ulterior activităţile de exploatare şi întreţinere ale produselor respective. Conştientizând acest aspect încă de la conceperea modelului digital, se va obţine în final o bază de date şi de cunoştinţe deosebit de utilă fazelor de viaţă ulterioare, aspect ce devine critic pentru produse de anvergură. Activităţile de mentenanţă sau de intervenţii extraordinare nici nu mai pot fi astfel concepute când este vorba de instalaţii tehnologice, avioane sau vapoare, unde reprezentările tridimensionale (realitate virtuală) şi informaţiile asociate sunt, deseori, vitale.

Page 22: Note de Curs

Grafică Inginereasca-note de curs

26

Aceste abrevieri acoperă astăzi unul dintre cele mai evoluate şi performante domenii IT, referindu-se la activităţile inginereşti care asistă conceperea, proiectarea, fabricaţia, testarea şi exploatarea produselor. Clienţii acestor tehnologii sunt cei care proiectează şi produc indiferent că este vorba de piese/ansambluri mecanice, automobile, vapoare avioane, clădiri, drumuri, poduri hărţi mobilier, instalaţii, circuite electronice ş.a. În general orice activitate care presupune realizarea, editarea sau exploatarea de planuri, desene şi documente tehnice poate beneficia de ajutorul programelor încadrate în acest domeniu. Chiar dacă din punct de vedere istoric software-ul a început având ca obiect de activitate doar desenarea simplă (numită şi CADD), astăzi lucrurile au evoluat spre chestiuni mult mai cuprinzătoare: proiectarea înseamnă majoritar concepere în trei dimensiuni (3D); obiectul proiectat este văzut ca un model unitar cât mai complex al viitorului produs real, deci înglobează, pe lângă formă, şi caracteristici cvasi-naturale: densitate, proprietăţi fizico-mecanice, informaţii despre procesele tehnologice. Practic modelul are tendinţa de a acumula - într-un fel de bază de date unificată – toate informaţiile tehnice necesare proiectării, testării, fabricaţiei şi întreţinerii, astfel că o întreagă arhivă s-a mutat de pe hârtie în format digital (în calculator!), spre a însoţi acest produs de-a lungul fazelor vieţii sale.

Se poate defini obiectul de activitate al disciplinei Grafică Inginerească ca fiind acela de reprezentare a elementelor grafice cu ajutorul calculatorului. Deci în domeniul CAD. Prin elemente grafice se înţeleg: schiţe, scheme de principiu, scheme logice, fişe tip, imagini digitale, diagrame, desene de execuţie, desene de ansamblu , reprezentări 2D şi 3D, prezentări comerciale inclusiv elemente de realitate virtuală realizate cu software-ul specific

i.4. Software specific 3D Studio Max (http://www.ktx.com/products/01max/index.htm)

Succesorul lui 3DStudio 3.0. 3D Studio Max este un program care rulează sub toate platformele de Windows. El este în totalitate, orientat pe obiect, cu noi lumini volumetrice şi o interfaţă totală 3D Studio (http://www.ktx.com/products/02r4/index.htm)

3DStudio este, un program de realizare a imaginilor grafice 3D. 3DStudio este facil pentru aplicaţii. 3DStudio este creat de AutoDesk. 3DStudio conţine un modelator 2D în care formele (shapes) pot fi realizate şi un 3D Lofter, prin care formele 2D (shapes) pot fi extrudate, torsionate, sau solidificate pentru a crea obiecte 3D. Aici există un modelator prin care se poate crea o scenă şi o animaţie care au alocate comenzi specifice pentru crearea unei animaţii.

LightWave3D (http://www.newtek.com/3d/3danim.html)

Page 23: Note de Curs

Grafică Inginereasca-note de curs

27

LightWave 3D este un alt pachet software pentru reprezentări grafice computerizate 3D. A fost creat la început pentru platformele Amiga. LightWave 3D este acum disponibil şi pentru PC. LightWave 3D este utilizat cu precădere în producţiile de TV.. Adobe Photoshop (http://www.adobe.com/prodindex/photoshop/overview.html)

Deşi Adobe Photoshop nu pare a fi o aplicaţie specifică animaţiei computerizate, se poate considera totuşi ca unul din primele programe grafice. AliasIWavefront (http://www.alias.com)

Alias este un program de animaţie. Alias este foarte cunoscut pentru modelerul sau mare care este capabil de a modela cele mai complicate modele. De asemenea acest pachet este foarte flexibil. Animator Studio (http://www.ktx.com/products/05ANISTU/index.html)

Animator Studio este un program de animaţie al firmei AutoDesk. Animator Studio rulează sub Windows. El are multe caracteristici care minimizează timpii de lucru la o animaţie.

Elastic Reality Elastic Reality este un program de morfism. Elastic Reality rulează sub Mac şi

SGI. Una din caracteristicile programului Elastic Reality în comparaţie cu alte programe este că acesta utilizează funcţiile spline pentru definirea unei arii de morfism. Atunci, morfismul video este la rândul sau încă o imagine. SoftImage

Este unul din primele trei pachete software de animaţie. Este utilizat în mai toate

studiourile de producţie din lume. AutoCAD

Software specific de proiectare CAD. Realizat de compania Autodesk este unul dintre cele mai răspândite pachete de programe de proiectare Autodesk Inventor (soluţie independentă)

Page 24: Note de Curs

Grafică Inginereasca-note de curs

28

− este cel mai performant sistem de modelare parametrică 3D construit pe “Adaptive Technology” şi reprezintă cea mai nouă tehnologie 3D dezvoltată în ultimul deceniu. Combină cu succes capabilităţile 2D cu puterea proiectării 3D, permiţînd în plus, adaptarea desenelor 2D (DWG) existente pentru modele mecanice 3D Autodesk Mechanical Desktop (MDT) produs pentru modelare parametrizată de piese solide, suprafeţe şi ansambluri fiind produsul de referinţă Autodesk pentru proiectare mecanică;

CANALIS aplicaţie care rulează împreună cu AutoCAD, de proiectare a sistemelor de canalizare; PLATEIA aplicaţie perfect integrată pe platforma AutoCAD, pentru proiectarea căilor de comunicaţie (a drumurilor); SPIWood 2000 un program de proiectarea asistată de calculator dezvoltat de firma SPI Software (Franţa), ce rulează pe platforma AutoCAD 2000, pentru modelarea 3D a omponentelor de mobilier; SPI Sheetmetal este o aplicaţie realizată de compania SPI Gmbh pentru modelarea parametrică şi obţinerea de reprezentări desfăşurate a reperelor complexe şi a ansamblurilor din tablă pentru AutoCAD, MDT şi Inventor; CADELEC este o aplicaţie bazată pe AutoCAD, destinată realizării proiectelor electrice în domeniul electrotehnic şi automatizări industriale, fiind un produs al firmei elveţiene SISCAD. CADELEC pune la dispoziţia utilizatorilor, biblioteci de simboluri predefinite ce conţin elemente − simboluri electrice − grupate pe categorii, pe care aceştia le pot insera în sistem funcţie de destinaţia lor (de ex. motoare, generatoare, elemente de protecţie, contactoare, etc.-fig.4). Folosind din plin facilităţile de desenare ale AutoCAD, aplicaţia oferă în plus o mare varietate de funcţii şi facilităţi specifice proiectării electrice. Odată realizat desenul, sistemul de analiză a bazelor de date CADELEC, permite obţinerea şi analiza unei mari varietăţi de informaţii în funcţie de mai multe opţiuni de analiză/raportare.

În acest moment există mai multe companii a căror cercetări sunt direcţionate

către realizarea unor pachete de softuri specifice graficii asistate de calculator, animaţiei, realităţii virtuale etc. cele mai cunoscute companii sunt: : Adobe Systems Inc., Alias | Wavefront, AutoDesk, Bentley, Cartia, Caligari, Computational Logic Inc.,

Page 25: Note de Curs

Grafică Inginereasca-note de curs

29

ComputerVision, ElectricImage, ElectroGIG, Fractal Design, InterGraph, Lateiner Dataspace, MacroMedia, National Association of Broadcasters, NewTek, ReZ.n8, SigGraph, Silicon Graphics, Strata Inc., ViewPoint Datalabs. i.5. MCAD şi modelare de solide

Nu numai că mecanica a fost primul domeniu în care proiectarea tridimensională şi-a dovedit viabilitatea, dar astăzi greu mai poate fi acceptată aici proiectarea pur 2D. Ideea globală presupune construirea de la început a modelului 3D pentru piesa sau ansamblul proiectat. Din acesta se vor extrage ulterior toate documentaţiile necesare (desene de execuţie, detalii, scheme de asamblare, planuri utile la exploatarea şi întreţinerea ulterioară proiectării, prezentări comerciale etc.) Acelaşi model 3D poate deservi şi direcţiile CAM/CAE, furnizând „entitatea matematico-geometrică” pe care se fac determinări ale comportamentelor la solicitări şi pe care se fundamentează comenzile numerice pentru maşinile digitale de prelucrare mecanică.

Modelul 3D nu înseamnă numai reprezentarea tridimensională, fiind ceva superior afişării 3D a muchiilor obiectelor, un solid se poate obţine printr-o varietate de adăugări şi/sau îndepărtări de forme elemntare (uneori similar îndepărtării/adăugării tehnologice de material) rămânând solidar indiferent de complexitatea formei sale geometrice. Acestui solid i se asociază anumite proprietăţi (densitate, inerţie, rezistenţă) care se vor dovedi ulterior folositoare. El prezintă un comportament inteligent în cadrul procesului de evoluţie a formei (se supune armonios operaţiunilor de uniune, intersecţie şi diferenţă cu alte obiecte), iar relaţia sa cu obiectele vecine pentru formarea ansamblurilor are o oarecare isteţime. Parametrizarea completează frecvent facilităţile de bază ale programelor orientate pe modelare solidelor şi presupune atât asocierea de variabile diverselor dimensiuni ale solidului (parametrii configurabili) cât şi definirea unor constrângeri geometrice cărora li se supune forma entităţii. Un obiect astfel proiectat constituie de fapt un model variaţional: modificându-i-se valorile parametrilor, se obţin variante constructive ale aceleiaşi concepţii.

Iată câteva dintre produsele software activând în acest subdomeniu AMD (Autodesk Mechanical Desktop), SolidEdge (Intergraph), SolidWorks (Dassault Systemes), Microstation Modeler (Bentley), Genius (Genius CAD Software Gmbh), Solid Concepts (Mecasoft Industrie) etc. i.6 Activităţi auxiliare

După toate cele prezentate, nu mai este o surpriză afirmaţia că avem de a face cu

un domeniu complex şi poate nici faptul că pe lângă activităţile de bază trecute aici în revistă există şi altele, fie aproape la fel de bine definite, fie cu caracter ajutător, complementar. Între acestea amintim:

a)- Managementul şi circulaţia documentelor digitale – se referă la activităţile de gestiune a documentelor tehnice într-o întreprindere şi la programele responsabile cu acestea DMS (Document Management Systems). Activităţile cuprind atât arhivarea documnetelor (organizarea şi sistematizarea informaţiilor digitale) cât şi controlul circulaţiei documentelor şi funcţiile de supervizare/adnotare a documentelor la care lucrează mai multe persoane/compartimente.

Page 26: Note de Curs

Grafică Inginereasca-note de curs

30

Gestionarea fluxurilor informaţionale este o problematică generalăaplicabilă teoretic oricărei întreprinderi-instituţii moderne (mai ales dacă se doreşte o certificare ISO 9001) însă pentru CAD şi-a dovedit de la început viabilitatea şi necesitatea căci informaţiile trebuie să însoţească produsul de-a lungul întregii sale vieţi. Dacă pentru faza de revizuire/supervizare (redlining) sunt indispensabile, asigurând colaboararea specialiştilor implicaţi (scopul major al EDMS) nu trebuie să omitem că o dată cu proiectarea produselor se constituie şi filoanele necesare exploatării şi întreţinerii ulterioare a produselor proiectate (PDM).

b) – Scanarea şi vectorizarea. Scanarea/vectorizarea este activitatea prin care documentele tehnice existente pe suport tradiţional (hârtie, calc, ozalid, folie etc.) sunt transferate în memoria calculatorului adică sunt transpuse în format digital. Sunt de fapt, două procese care pot exista şi independent:

o scanarea reprezintă, propriu-zis, copierea documentului în memoria calculatorului în urma căreia fişierul rezultat are format bitmap (o imagine a cărei grafică nu poate fi modificată direct);

o vectorizarea este procesul prin care o imagine bitmap (obţinută uzual prin scanare este convertită în grafică vectorială, generând un desen similar celui obbţinut prin folosirea de programe CADD: mult mai suplu şi perfect editabil (modificabil

Page 27: Note de Curs

Grafică Inginereasca-note de curs

31

Capitolul 1

1. Bazele matematice ale graficii Sisteme de referinţă tridimensionale

Pentru crearea aplicaţiilor grafice este necesar ca obiectele să fie poziţionate într-un sistem de referinţă tridimensional. Există mai multe posibilităţi de a specifica poziţia unei mulţimi de puncte (vârfuri) prin care este reprezentat un obiect în spaţiul tridimensional: coordonate cilindrice, coordonate sferice, coordonate Carteziene. Dintre aceste sisteme de referinţă, cel mai utilizat în aplicaţiile grafice este sistemul de coordonate Cartezian.

Sistemul de coordonate Cartezian în care sunt definite toate obiectele scenei virtuale se numeşte sistem de referinţă universal (world coordinate system- WCS).

Un sistem de coordonate Cartezian se defineşte prin originea O şi trei axe perpendiculare, Ox, Oy şi Oz, orientate după regula mâinii drepte sau după regula mâinii stângi. Diferenţa dintre cele două sisteme se poate urmări în Fig. 1.2. Într-un sistem orientat după regula mâinii drepte, dacă se roteşte mâna dreaptă în jurul axei z de la axa x pozitivă spre axa y pozitivă, orientarea degetului mare este în direcţia z pozitiv. Într-un sistem orientat după regula mâinii stângi, rotirea de la axa x pozitivă spre axa y pozitivă, cu orientarea degetului mare în direcţia z pozitiv se obţine folosind mâna stângă. Orientarea după regula mâinii drepte a sistemelor de coordonate corespunde convenţiei matematice standard.

Diferite sisteme de grafică tridimensională sau de realitate virtuală folosesc convenţii diferite pentru definirea sistemelor de referinţă, ceea ce conduce la confuzii, dacă nu se precizează convenţia folosită. În acest text, pentru sistemul de referinţă universal se foloseşte convenţia de sistem de coordonate drept. În grafica tridimensională se mai folosesc şi alte sisteme de referinţă, care permit descrierea

operaţiilor de transformări geometrice şi care vor fi precizate pe parcursul lucrării. Un punct P în spaţiul tridimensional se reprezintă în sistemul de referinţă

Cartezian printr-un tripet de valori scalare, x, y, z, care reprezintă componentele vectorului de poziţie OP pe cele trei axe de coordonate. Dacă se noteză cu i, j, k versorii (vectorii unitate) ai celor trei axe de coordonate x, y, z, atunci vectorul de poziţie al punctului P este OP = xi + yj + zk. În notaţia matriceală, un punct în spaţiul tridimensional se poate reprezenta printr-o matrice linie sau printr-o matrice coloană:

y

x

z

Ox

z

y

O

Fig.1.2 (a) Sistem de coordonate orientat după regula mâinii drepte şi (b) după regula mâinii stângi.

(a) (b)

Page 28: Note de Curs

Grafică Inginereasca-note de curs

32

[ ]zyx=P sau ⎥⎥⎥

⎢⎢⎢

⎡=

zyx

P

Ambele convenţii sunt folosite în egală măsură în sistemele grafice, ceea ce, din nou, poate provoca diferite confuzii, dacă nu se precizează convenţia folosită. Convenţia de reprezentare sub formă de matrice linie a unui punct, folosită în unele lucrări [Watt95], [Mold96], are avantajul că exprimă operaţiile de concatenare a matricelor într-un mod natural, de la stânga la dreapta. Convenţia de reprezentare matematică, standardul grafic PHIGS, biblioteca grafică OpenGL, ca şi unele din lucrările de referinţă în domeniu [Foley90] folosesc notaţia de matrice coloană pentru un punct în spaţiul tridimensional, care este adoptată şi în lucrarea prezentă.

1.1. ELEMENTE DE GEOMETRIE

Corpul material este limitat, iar limita lui se numeşte suprafaţa corpului. O

porţiune de suprafaţă este limitată de o curbă, iar o porţiune de curbă se termină într-un punct.

Ecuaţiile clasice ale unei curbe sunt: - forma explicită: y=f(x), care este univocă; - forma implicită: f(x,y)=0, ce este specifică reprezentării curbelor închise; - forma parametrică: x=f(t), y=f(t), care reprezintă curbele închise sau cele

care se intersectează; - forma polară: R=f(θ), semnificând aceleaşi curbe ca precedenta formă. Noţiunile de suprafaţă, curbă şi punct pot fi considerate independente de

suportul lor material. Astfel prin mişcarea unui punct se obţine o curbă, prin mişcarea unei curbe se obţine o suprafaţă, iar prin mişcarea unei suprafeţe rezultă un volum.

Se numeşte figură geometrică, o mulţime de puncte, curbe şi suprafeţe. Asupra figurilor se pot face diferite transformări geometrice. O transformare geometrică este o aplicaţie bijectivă a planului (spaţiului) pe el însuşi. Transformarea identică este aplicaţia bijectivă identică şi lasă nemodificate toate punctele planului (spaţiului). Două figuri care se obţin una din alta printr-o transformare geometrică se numesc figuri congruente sau omoloage. Transformările cele mai importante sunt izometriile care se împart în deplasări şi antideplasări (oglindiri).

O deplasare fără punct fix se numeşte translaţie, iar cea cu punct fix se numeşte rotaţie. Noţiunile se pot defini şi în spaţiu. Transformare se numeşte asemănătoare dacă distanţele dintre punctele omoloage sunt proporţionale iar unghiurile omoloage sunt egale. Factorul de proporţionalitate k este definit ca raport de asemănare. Raportul lungimilor, ariilor , volumelor din două figuri asemenea sunt egale cu k, k2, k3.

Ecuaţiile dreptei. Considerăm o dreaptă d, într-o poziţie oarecare faţă de axe (fig.1.3).

Fig. 1.3 Dreapta oarecare

Fie M un punct arbitrar pe dreapta d , vom găsi ecuaţia dreptei d dacă vom reuşi să determinăm o relaţie

y

d d'

B

M

M'N

Page 29: Note de Curs

Grafică Inginereasca-note de curs

33

între ON=x şi NM=y verificată de toate punctele dreptei d. Pentru aceasta ducem paralela d' din O la dreapta d si fie M' intersecţia cu MN. Facem următoarele cantităţi constante (aceleaşi, oricare ar fi M pe d): m=tgu şi n=MM'. Cum NM=NM'+ M'M rezultă:

y=mx+n, care este ecuaţia dreptei. (1.1)

Invers, o ecuaţie de gradul I în două variabile ax+by+c=0 (1.2)

reprezintă o dreaptă deoarece poate fi pusă sub forma (1.1). Rezolvând-o în raport cu y, unde m = - a/b constituie panta dreptei scrisă sub

forma generală (1.2) Fie A şi B urmele dreptei d(fig.1.2) Cunoscând OA=a, OB=b,OP=p( lungimea normalei OP din origine) şi unghiul I

cu axa Ox, vom putea scrie ecuaţia dreptei în funcţie de aceste elemente. Într-adevăr: x/a+y/b=1 (Creele, 1821), atunci, prin înlocuirea lui a şi b, se obţine:

xcosu+ysinu=v, (1.3)

care este forma normală (Couchy ,1826) a dreptei.

Fig.1.4 Forma normală Ecuaţia cercului Ecuaţia carteziană a cercului (fig.1.5) este:

( ) ( ) 22

02

0 Ryyxx =−+− , (1.4)

iar dacă are centrul în originea sistemului de axe, atunci: x2+y2=R2 (1.5) Ecuaţia (1.5) se poate descompune în două ecuaţii 22 xRy −±= . Fig.1.5. Ecuaţiile carteziene ale cercului.

Partea superioară este trasată variind pe x în intervalul [R,-R] cu pasul –p, iar partea superioară se obţine prin variaţia lui x în intervalul [-R,R] cu pasul p. Ecuaţiile parametrice se deduc uşor (fig. 1.4), dacă centrul este în origine:

B

P

O A α

p

R

R

(x0,,y0)

Page 30: Note de Curs

Grafică Inginereasca-note de curs

34

x=R cosθ, y=R sinθ, cu 0[ θ [ 360o (1.6) Când centrul diferă de origine, C(x0,y0) atunci:

x=x0 +R cosθ, y=y0 +R sinθ, (1.7) Sub o altă formă, în funcţie de t=tg(θ /2),

se obţin relaţiile:

Rttx 2

2

11

+−

= , Rtty 21

2+

= (1.8)

Fig.1.6. Ecuaţii parametrice Prin metoda recursivă se pot găsi alte ecuaţii ale cercului. Presupunem că se

cunosc două puncte ale cercului (fig.1.6): x=R cosθ , y=R sinθ ; xn+1=R cos(θ +δθ) , yn+1=R sin (θ +δθ) ; (1.9) unde δθ este incrementul unghiular. Dacă dezvoltăm ecuaţiile punctului

(xn+1,yn+1) şi înlocuim corespunzător rezultă: xn+1=xn cos(δθ) −yn sin(δθ) , yn+1=yn cos (δθ) +xn sin(δθ); (1.10) Cum incrementul δθ este constant, se calculează la începutul programului

valorile c=cos(δθ) , s=sin(δθ), obţinând: xn+1=xn c −yn s , yn+1=yn c +xn s, care sunt relaţii recursive de ordinul unu. Dezvoltând relaţia (1.4) se obţine: x2+y2+ax+by+c=0 cu x0= - a/2, y0= - b/2, R2= (a2+b2-4c)/4.

Ecuaţia (1.4) reprezintă un cerc real când a2+b2>4c. de asemenea, punctele interioare verifică inecuaţia x2+y2<R2, iar pentru cele exterioare avem x2+y2>R2.

Fig1.7. Relaţii recursive

R

θ

y

y

x x

xn,yn

xn+1,yn+1

δθ

Page 31: Note de Curs

Grafică Inginereasca-note de curs

35

Conice. Intersecţia unui con circular cu un plan se numeşte conică. Notând cu α unghiul făcut de generatoarele conului cu un plan perpendicular pe axa conului şi cu β unghiul făcut de planul de secţiune cu acelaşi plan, curba de intersecţie este o elipsă, o parabolă sau o hiperbolă, după cum β< α, β= α, ori β> α ( fig.1.6). Aceste trei conice sunt curbe fundamentale care intervin în numeroase aplicaţii.

β< α β= α β> α

Fig.1.8. Conice

a)Elipsa ( fig.1.9). Mulţimea punctelor pentru care suma distanţelor la două

puncte date, F, F’, numite focare, este constantă se numeşte elipsă. Ea are ecuaţia carteziană:

( ) ( )12

20

2

20 =

−+

−b

yya

xx,

unde (x0,y0) este centrul elipsei, iar F(c,0). F’ (-c,0), cu 22 bac −= , sunt focarele

elipsei. Din însăşi definiţia ei, curba este închisă.

Ecuaţia elipsei cuprinzând pe x şi pe y la puteri perechi, este simetrică faţă de axele Ox,Oy, care sunt axele ei de simetrie.

Fig.1.9. Elipsa Excentricitatea elipsei este raportul e=c/a

şi variază între 0 şi 1; este egală cu zero pentru un cerc cu focarele F,şi F’ confundate în originea O (deci, a=b); rezultă că cercul este o elipsă particulară.

Ecuaţiile parametrice ale elipsei sunt: x=a cos θ,

F F’

M

Page 32: Note de Curs

Grafică Inginereasca-note de curs

36

y= b sin θ, cu 0[ θ [ 360o b) Parabola (fig.1.10). Mulţimea punctelor M, egal depărtate de punctul F numit

focar, şi o dreaptă D directoare, este o parabolă. Ea are ecuaţiile:

- carteziene: y2=2px; - parametrice: x= 2p ctg2θ, y=2p

ctg θ. Fig.1.10. Parabola

Avem o ecuaţie de gradul al doilea, iar curba are o singură ramură. Curba trece prin origine şi este simetrică faţă de axa Ox. Ecuaţia generală poate fi scrisă şi sub forma:

y=ax2+bx+c, a γ 0.

Fig.1.11. Hiperbola

c) Hiperbola (fig.1.11). mulţimea punctelor M pentru care diferenţa distanţelor la două puncte F,şi F’, numite focare, este constantă (egală cu 2a) reprezintă o hiperbolă.

Ea are ecuaţiile: - carteziene:

( ) ( )

,12

20

2

20 =

−−

−b

yya

xxunde (x0,y0) este centrul hiperbolei;

- parametrice:

x=a secθ, y=btgθ.

Ca la elipsă, avem F’ (-c,0), F (c,0) I cu 22 bac −= . Scriind ecuaţia sub

forma 22 axaby −±= , observăm că y există atunci

când x > a sau x < –a, deci curba este de gradul doi şi este formată din două ramuri.

Hiperbola este echilateră când a=b şi deci, ecuaţia devine x2 - y2= a2.

D

M

O F(p/2,0)

F

F

b a

O

x

y

O

Page 33: Note de Curs

Grafică Inginereasca-note de curs

37

Fig.1.12. Parabola cubică

Curbe algebrice clasice şi transcendente. Dintre reprezentările grafice ale curbelor clasice amintim:

a) Parabola cubică (fig.1.12) care are ecuaţia y=x3. Ea este denumită cubică deoarece este de gradul al treilea.

b) Parabola semicubică (fig.1.13) are ecuaţia y2=x3 este situată în dreapta axei Oy (x>0) şi este simetrică faţă de axa Ox. Numim curbă transcendentă o curbă care nu este algebrică.Amintim câteva astfel de curbe:

a) Sinusoida y = sinx, co o infinitate de zerouri, care sunt şi puncte de inflexiune şi co o infinitate de extreme. Funcţia ei inversă este y= arcsin x .

În aceeaşi familie sunt cuprinse şi curbele: y= a sin(kx+α), Fig.1.13. Parabola semicubică

deformate printr-o dilatare de raport a, în sensul axei Oy; o comprimare în raport k a axei Ox şi o defazare de unghi α a acestei axe.

b) Tangentoida y = tgx are o infinitate de zerouri şi de asimptote. c) Exponenţiala y = ex şi inversa ei, funcţia logaritmică y = lnx. Prin combinaţiile precedente se obţin curbe transcendente noi. De exemplu,

curba y=sinx/x are aspectul unei sinusoide, cu zerourile kπ (k γ 0)repartizate la distanţe egalepe axa Ox, dar sprijinindu-se pentru fiecare sin x=1 pe hiperbola echilateră y=1/x şi simetrica ei.

Curba amortizoare y = e-x sinx are o alură analoagă dar sinusoida este călăuzită de exponenţialele y = ± e-x.

Prin rostogolirea unui cerc pe o dreaptă, cerc etc. se pot obţine alte curbe remarcabile precum: cicloida, epicicloida, hipocicloida, astroida etc.

Curbe şi suprafeţe. Dacă coordonatele unui punct mobil, M, sunt funcţii de un parametru t:

x=x(t), y=y(t), z=z(t) (1.12)

punctul M(x,y,z) descrie o curbă iar relaţia (1.12) reprezintă ecuaţiile curbei. Când coordonatele sunt funcţii de doi parametri, u şi v, independenţi:

x=x(u,v), y=y(u,v), z=z(u,v) (1.13)

atunci punctele M(x,y,z) descriu o suprafaţă ce are ecuaţiile (1.13). dacă se elimină u şi v atunci se obţine o ecuaţie de forma f(x,y,z)=0. Explicit se pot determina una sau mai multe pânze z=z(x,y). Oricărui punct M’(x,y) dintr-un domeniu al planului xOy îi corespunde un punct M de cotă z. Când M’ descrie tot domeniul lui, M descrie o pânză a unei suprafeţe. Deoarece o curbă este o intersecţie a două suprafeţe, putem scrie ecuaţiile curbei sub forma f(x,y,z)=0, g(x,y,z)=0, sau ca intersecţie a doi cilindri, f(x,y)=0, g(y,z)=0.

O

y

x

Page 34: Note de Curs

Grafică Inginereasca-note de curs

38

Capitolul 2

2. Modelarea obiectelor

Modul cel mai convenabil de modelare a scenelor virtuale este acela în care fiecare obiect este modelat într-un sistem de coordonate propriu, numit sistem de referinţă model (sau sistem de referinţă local), în care punctele (vârfurile) obiectului sunt precizate relativ la un anumit punct de referinţă local. De fapt, în modelarea ierarhică, un obiect complex poate avea un număr oarecare de sisteme de referinţă locale, câte unul pentru fiecare parte componentă a sa. Instanţierea unui obiect în scena virtuală înseamnă amplasarea acestuia în sistemul de referinţă universal printr-o succesiune de scalări, rotaţii şi translaţii, care transformă obiectul din sistemul de referinţă local în sistemul de referinţă universal. Această succesiune de transformări este cunoscută sub numele de transformare de modelare.

Proprietăţile obiectelor tridimensionale care se modelează în aplicaţiile grafice se pot împărţi în două categorii: forma şi atribute de aspect. Informaţia de formă a unui obiect este diferită de celelalte atribute ale obiectului, deoarece forma este aceea care determină modul în care obiectul apare în redarea grafică şi toate celelalte atribute se corelează cu forma obiectului (de exemplu, culoarea se specifică pentru fiecare element de suprafaţă a obiectului).

Din punct de vedere al formei, obiectele tridimensionale reprezentate în grafica pe calculator pot fi obiecte solide sau obiecte deformabile. Un solid este un obiect tridimensional a cărui formă şi dimensiuni nu se modifică în funcţie de timp sau de poziţia în scenă (proprietatea de formă volumetrică invariantă). Majoritatea aplicaţiilor de realitate virtuală se bazează pe scene compuse din solide, dar există şi aplicaţii în care obiectele reprezentate îşi modifică forma şi dimensiunile într-un mod predefinit sau ca urmare a unor acţiuni interactive (de exemplu, în simulări ale intervenţiilor chirurgicale). Chiar şi reprezentarea unor astfel de obiecte (obiecte deformabile) se bazează pe un model al unui solid, care se modifică în cursul experimentului de realitate virtuală. În lucrarea de faţă se vor prezenta modele ale solidelor, care stau la baza prelucrărilor din grafică şi realitate virtuală.

Modelarea solidelor este o tehnică de proiectare, vizualizare şi analiză a modului în care obiectele reale se reprezintă în calculator. În ordinea importanţei şi a frecvenţei de utilizare, metodele de modelare şi reprezentare a obiectelor sunt următoarele:

Modelarea poligonală. În acestă formă de reprezentare, obiectele sunt aproximate printr-o reţea de feţe care sunt poligoane planare.

Modelarea prin petice parametrice bicubice (bicubic parametric patches). Obiectele sunt aproximate prin reţele se elemente spaţiale numite petice (patches). Acestea sunt reprezentate prin polinoame cu două variabile parametrice, în mod obişnuit cubice.

Modelarea prin combinarea obiectelor (Constructive Solide Geometry - CSG). Obiectele sunt reprezentate prin colecţii de obiecte elementare, cum sunt cilindri, sfere, poliedre.

Modelarea prin tehnica divizării spaţiale. Obiectele sunt încorporate în spaţiu, prin atribuirea fiecărui element spaţial a unei etichete în funcţie de obiectul care ocupă elementul respectiv.

Page 35: Note de Curs

Grafică Inginereasca-note de curs

39

Aceste metode de modelare şi reprezentare a solidelor se pot grupa în reprezentări prin suprafaţa de frontieră (primele două metode) şi reprezentări prin volum (ultimele două metode).

2.1 Modelarea poligonală a obiectelor

Modelarea poligonală, în care un obiect constă dintr-o reţea de poligoane planare

care aproximează suprafaţa de frontieră (boundary representation – B-rep), este forma “clasică” folosită în grafica pe calculator. Motivele utilizării extinse a acestei forme de reprezentare sunt uşurinţa de modelare şi posibilitatea de redare rapidă a imaginii obiectelor. Pentru obiectele reprezentate poligonal s-au dezvoltat algoritmi de redare eficienţi, care asigură calculul umbririi, eliminarea suprafeţelor ascunse, texturare, antialiasing, frecvent implementaţi hardware în sistemele grafice.

În reprezentarea poligonală, un obiect tridimensional este compus dintr-o colecţie de feţe, fiecare faţă fiind o suprafaţă plană reprezentată printr-un poligon.

Reprezentarea poligoanelor

Un poligon este o regiune din plan mărginită de o colecţie finită de segmente de

dreaptă care formează un circuit închis simplu. Fie n puncte în plan, notate v0, v1, …,vn–1 şi n segmente de dreaptă e0

= v0v1, e1 = v1v2, …. en–1 = vn–1v0, care conectează perechi de puncte succesive în ordine ciclică, deci inclusiv conexiunea între ultimul punct şi primul punct din listă. Aceste segmente mărginesc un poligon dacă şi numai dacă:

Intersecţia fiecărei perechi de segmente adiacente în ordinea ciclică este un singur punct, conţinut de ambele segemente: ei ∩ ei+1 = vi+1, pentru oricare i = 0,…,n–1.

Segmente neadiacente nu se intersectează: ei ∩ ej = ∅, pentru orice j ≠ i+1.

Segmentele care mărginesc un poligon (linia poligonală) formează un circuit închis (ciclu) deoarece segmentele sunt conectate capăt la capăt şi ultimul segment conectează ultimul punct cu primul punct; ciclul este simplu deoarece segmentele neadiacente nu se intersectează.

Punctele vi se numesc vârfurile poligonului (vertices); segmentele ei se numesc muchii (sau laturi) ale poligonului. De remarcat că un poligon conţine n vârfuri şi n muchii şi că muchiile sunt orientate, astfel încât formează un ciclu (circuit închis). O astfel de orientare a segmentelor se numeşte orientare consistentă. În general, se foloseşte ordinea de parcurgere în sensul invers acelor de ceasornic: dacă se parcurg muchiile în sensul lor de definiţie, interiorul poligonului este văzut întotdeauna în partea stângă (Fig. 2.1).

O teoremă importantă în prelucrarea poligoanelor este teorema lui Jordan, care

Fig. 2.1 Segmentele liniei poligonale sunt orientate şi nu se autointerectează.

v5

v4

v3

v2 v0

Page 36: Note de Curs

Grafică Inginereasca-note de curs

40

spune că orice curbă plană închisă simplă împarte planul în două părţi: o parte interioară curbei, care este o regiune limitată, şi o parte exterioară curbei, care este o regiune nelimitată. Deşi pare simplă din punct de vedere intuitiv, demonstraţia teoremei lui Jordan este destul de dificilă şi poate fi găsită în referinţele bibliografice [Rour93].

Această teoremă justifică definiţia care se mai foloseşte pentru poligoane, şi anume: poligonul este o regiune limitată din plan, mărginită de o colecţie de segmente orientate consistent. Prin această definiţie se consideră poligonul ca o regiune închisă din plan. Uneori, poligonul este considerat ca fiind format numai din conturul său, deci numai de segmentele de dreaptă care mărginesc regiunea, şi nu de regiunea însăşi. În continuare, se foloseşte notaţia ∂P pentru a desemna conturul poligonului P (linia poligonală închisă care mărgineşte poligonul).

Triangularizarea poligoanelor. O altă proprietate importantă a poligoanelor

folosită în grafică este proprietatea de triangularizare. Se demonstrează că orice poligon poate fi împărţit în triunghiuri prin adăugarea a zero sau mai multe diagonale. Proprietatea de triangularizare se bazează pe noţiunile de vizibilitate şi diagonală în poligoane.

Un punct x din interiorul unui poligon poate vedea un alt punct y, dacă şi numai dacă segmentul xy nu este în nici un punct al său exterior poligonului, adică xy ⊆ P. Acest lucru însemnă că linia care uneşte două puncte x şi y, vizibile unul altuia, poate atinge un vârf al poligonului. Vizibilitatea între două puncte x şi y este completă (clearly visible), dacă linia care uneşte cele două puncte nu atinge frontiera poligonală (Fig. 2.2).

O diagonală a unui poligon este un segment de dreaptă între două vârfuri a şi b, complet vizibile unul altuia. Acest lucru înseamnă că intersecţia dintre segmentul închis ab şi ∂P este mulţimea {a,b}, adică segmentul ab nu atinge linia poligonală ∂P în alte puncte decât vârfurile a şi b, de început şi de sfârşit ale segmentului. Condiţiile ca segmentul ab care uneşte vârfurile a şi b ale unui poligon să fie o diagonală în acel poligon sunt deci: ab ⊆ P şi ab ∩ ∂P ={a, b}. Orice diagonală împarte un poligon în două poligoane mai mici (Fig. 2.2).

Două diagonale ale unui poligon sunt neîncrucişate (noncrossing) dacă

intersecţia lor este o submulţime a capetelor lor (punctele de început şi de sfârşit ale segmentelor).

Dacă se adaugă atâtea diagonale neîncrucişate câte sunt posibile într-un poligon,

x y

f b

a

d c e

Fig. 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.

Page 37: Note de Curs

Grafică Inginereasca-note de curs

41

atunci poligonul este împărţit în triunghiuri. O astfel de partiţionare a unui poligon în triunghiuri se numeşte triangularizarea poligonului. Diagonalele se pot adăuga în orice ordine, atâta timp cât sunt neîncrucişate. Demonstraţia teoremei conform căreia orice poligon admite o triangularizare, se bazează pe teorema lui Meister, demonstrată în [Rour93], care stabileşte că orice poligon cu n≥4 vârfuri admite cel puţin o diagonală.

Teorema triangularizării se bazează şi pe lema numărului de diagonale: Orice triangularizare a unui poligon P cu n vârfuri utilizează n–3 diagonale şi constă din n–2 triunghiuri. Aceste teoreme se demonstrează prin inducţie. În Fig. 2.3 este prezentată triangularizarea unui poligon convex cu opt laturi; se inserează 8–3 = 5 diagonale neîncrucişate şi rezultă 8 – 2 = 6 triunghiuri.

Teorema triangularizării, care asigură că orice poligon poate fi divizat în triunghiuri, reprezintă suportul celei mai eficiente metode de generare a imaginii (redarea) obiectelor tridimensionale: obiectele se reprezintă prin feţe poligonale, fiecare poligon se descompune în triunghiuri şi triunghiurile sunt generate prin algoritmi implementaţi hardware.

Din punct de vedere al reprezentării în program a poligoanelor, cea mai

compactă formă este reprezentarea printr-o listă liniară de vârfuri, fiecare vârf fiind specificat printr-o structură (sau clasă, în programarea orientată pe obiecte) care memorează (cel puţin) coordonatele vârfului. Alte date referitoare la vârfurile poligoanelor necesare în modelarea şi redarea obiectelor (normală, culoare, coordonate de texturare, etc.) vor fi descrise în secţiunile care urmează.

Este posibilă reprezentarea unui poligon şi prin lista segmentelor sale, dar acestă reprezentare necesită un volum mai mare de date şi este folosită în implementarea anumitor algoritmi de prelucrare a poligoanelor (reuniune, divizare, etc.) şi mai puţin în reprezentarea modelului unui obiect. Lista liniară de vârfuri poate fi implementată ca vector sau ca listă simplu sau dublu înlănţuită.

2.1.1 Reprezentarea poliedrelor În modelarea şi reprezentarea prin suprafaţa de frontieră, obiectele sunt

aproximate prin poliedre şi modelul lor este reprezentat prin suprafaţa poliedrului, compusă dintr-o colecţie de poligoane.

Un poliedru reprezintă generalizarea în spaţiul tridimensional a unui poligon din planul bidimensional: poliedrul este o regiune finită a spaţiului a cărui suprafaţă de frontieră este compusă dintr-un număr finit de feţe poligonale plane. Suprafaţa de

5 4

3

2

10

7

6

Fig. 2.3 Triangularizarea unui poligon convex.

Page 38: Note de Curs

Grafică Inginereasca-note de curs

42

frontieră a unui poliedru conţine trei tipuri de elemente geometrice: vârfurile (punctele) care sunt zero-dimensionale, muchiile (segmentele), care sunt unidimensionale şi feţele (poligoane) care sunt bidimensionale (Fig. 2.4).

Suprafaţa de frontieră a unui poliedru este o colecţie finită de feţe poligonale care se intersectează corect. Intersecţia corectă a feţelor înseamnă că pentru fiecare pereche de feţe ale obiectului, feţele sunt disjuncte, au în comun un singur vârf, sau au în comun două vârfuri şi muchia care le uneşte.

Din punct de vedere matematic, nu este imediat evident că un solid poate fi

reprezentat univoc prin suprafaţa care îl mărgineşte. De aceea, este necesar să fie stabilite condiţiile în care această reprezentare este permisă. Aceste condiţii, numite condiţii de construcţie corectă, se definesc pentru suprafeţe de frontieră triangularizate. Triangularizarea unei suprafeţe poliedrale se obţine prin triangularizarea fiecărei feţe poligonale, astfel încât suprafaţa rezultată constă din vârfuri care sunt înconjurate de triunghiuri, fiecare pereche de triunghiuri fiind adiacente de-a lungul unei muchii. Laturile triunghiurilor adiacente unui vârf formează un circuit de segmente, numit link-ul vârfului (Fig. 2.5).

O suprafaţă de frontieră construită corect îndeplineşte următoarele condiţii: Linkul fiecărui vârf al suprafeţei triangularizate este complet, adică formează un

circuit închis, nu neapărat planar. Triunghiurile suprafeţei triangularizate sunt orientate consistent. Închiderea link-ului fiecărui vârf asigură proprietăţile suprafaţei de a fi închisă şi

conectată. Proprietate de închidere înseamnă că suprafaţa nu are un sfârşit. Proprietatea de conectivitate înseamnă că există cel puţin o cale de la un triunghi la altul aparţinând aceleiaşi suprafeţe de frontieră, care poate fi parcursă prin traversarea muchiilor adiacente. Dacă o suprafaţă nu este închisă sau nu este conectată, prin triangularizarea suprafeţei nu se obţin link-uri închise.

Proprietate de construcţie corectă a suprafeţei de frontieră a unui solid se poate verifica folosind condiţia de orientare consistentă a suprafeţei, formulată de legea lui Moebius: O suprafaţă închisă este orientată consistent dacă la traversarea triunghiurilor sale (rezultate dintr-o triangularizare arbitrară), într-o direcţie unică (de exemplu, în

Feţe poligonale

Muchii

Vârfuri

Fig. 2.4 Reprezentarea prin suprafaţa de frontieră a unui poliedru.

Fig. 2.5 Triangularizarea suprafeţei de frontieră. Link-ul unui vârf al suprafeţei.

Link

Page 39: Note de Curs

Grafică Inginereasca-note de curs

43

direcţia inversă acelor de ceasornic), fiecare muchie este traversată de două ori, în direcţii opuse (Fig. 2.6).

Generalizarea în spaţiul tridimensional a teoremei lui Jordan spune că orice suprafaţă de frontieră închisă, consistent orientată, împarte spaţiul în două părţi: o parte interioară suprafeţei, care este o regiune limitată, şi o parte exterioară suprafeţei, care este o regiune nelimitată.

Din punct de vedere geometric, orientarea consistentă se verifică prin direcţia normalelor la feţele obiectului: dacă normalele feţelor sunt îndreptate către aceeaşi regiune a spaţiului (fie toate îndreptate spre interior, fie toate îndreptate spre exterior), atunci suprafaţa are o orientare consistentă. Acest mod de verificare se referă la obiectele tridimensionale fără cavităţi, dar se poate extinde cu uşurinţă şi la obiecte care prezintă cavităţi.

Teoretic, orientarea consistentă se verifică pentru feţele triangularizate ale

suprafeţei de frontieră, dar, prin extindere, se poate verifica orientarea consistentă folosind normalele la feţele poligonale, deoarece toate triunghiurile obţinute prin triangularizarea unui poligon care reprezintă o faţă a unui obiect au aceeaşi orientare (Fig. 2.7).

Orientarea consistentă a feţelor poligonale ale obiectelor este o condiţie de verificare a construcţiei corecte a suprafeţei de frontieră şi, în acelaţi timp, este folosită în operaţiile de eliminare a suprafeţelor ascunse în cursul redării obiectelor tridimensionale. De aceea, normalele la feţele poligonale se memorează în modelul obiectelor, împreună cu coordonatele vârfurilor.

Atât în cursul modelării, cât şi în cursul redării imaginii, modelul obiectelor se

reprezintă mai complex, conţinând şi alte informaţii geometrice şi atribute de aspect. Astfel, culoarea (mai general spus, materialul) este o informaţie care se asignează fiecărei feţe sau fiecărui vârf al obiectului. În general, modelul poligonal cu reprezentarea prin indecşi a feţelor poligonale este implementat orientat pe obiecte, folosind mai multe clase (de bază şi derivate) care permit încapsularea tuturor

Fig. 2.6 Legea lui Mobius verifică orientarea consistentă a unei suprafeţe triangularizate.

Fig. 2.7 Orientarea consistentă a feţelor obiectului.

Page 40: Note de Curs

Grafică Inginereasca-note de curs

44

informaţiilor necesare pentru redarea obiectelor. O reţea de poligoane poate să reprezinte fie suprafaţa de frontieră a unui solid,

fie o suprafaţă deschisă, necesară în anumite situaţii de modelare, cum este suprafaţa terenului simulat într-o scenă virtuală. Deoarece se modelează o zonă geografică limitată şi nu se explorează scena astfel ca să fie văzută marginea “pământului”, se poate folosi o suprafaţă poligonală deschisă pentru reprezentarea terenului.

Reprezentarea obişnuită în grafica din scenele virtuale este aceea în care fiecare poligon este reprezentat ca o suprafaţă (poligoane “pline”), dar în proiectările grafice (în mecanică, construcţii, etc) se foloseşte şi reprezentarea prin contur a poligoanelor, numită reprezentare “cadru de sârmă” (wireframe) (Fig. 2.8).

Precizia de reprezentare a modelului, adică diferenţa dintre suprafaţa obiectului

şi feţele poligonale prin care este aproximat, este un parametru important de modelare. În general, cu cât numărul de poligoane prin care se aproximează suprafaţa obiectului este mai mare, cu atât precizia de reprezentare este mai bună. Se observă diferenţa dintre imaginea unui obiect (tor) reprezentat prin 64 de poligoane în Fig. 2.8(a) şi prin 128 de poligoane în Fig. 2.8 (b).

Folosirea unui număr mare de poligoane pentru reprezentarea obiectelor conduce la un volum imens de date în modelarea scenelor virtuale, care implică cerinţe corespunzătoare de memorare şi de capacitate de calcul. Oricât de mult ar creşte capacitatea de prelucrare în sistemele grafice, prin folosirea paralelismului şi prin implementarea hardware a algoritmilor de prelucrare, performanţe de generare interactivă în timp real a imaginilor se pot obţine numai dacă obiectele scenei se modelează în mod corespunzător. Metodele de aproximare eficientă a modelelor sunt cunoscute sub numele de simplificarea (sau rafinarea) datelor.

Tehnica de simplificare directă, prin reducerea uniformă a numărului de poligoane de reprezentare a obiectului este inacceptbilă, deoarece nu se poate controla precizia de reprezentare. Pentru păstrarea unei precizii de reprezentare constantă, se foloseşte modelarea adaptivă, în care dimensiunea feţelor poligonale variază în funcţie de curbura suprafeţei; în părţile cu curbură pronunţată sunt introduse mai multe poligoane pe unitatea de suprafaţă.

O altă metodă se simplificare a datelor este modelarea cu nivele de detaliu multiple a obiectelor (levels of detail- LOD). Fiecare model al unui obiect este compus dintr-o succesiune de reprezentări, fiecare cu o precizie diferită. În cursul generării imginilor, se selectează nivelul de detaliu corespunzător, în funcţie de poziţia obiectului faţă de punctul de observare. Cu cât obiectul este mai depărtat, se selectează o reprezentare cu o precizie mai scăzută a obiectului. Acestă metodă este posibilă datorită

(a) (b)

Fig. 2.8 Reprezentarea “plină” (filled) şi “cadru de sârmă” (wireframe) a obiectelor.

Page 41: Note de Curs

Grafică Inginereasca-note de curs

45

folosirii proiecţiei perspectivă în generarea imaginilor şi va fi înţeleasă mai uşor după parcurgerea secţiunii următoare privind transformărilor geometrice.

Modelul poligonal al unui obiect se poate genera prin mai multe metode, în funcţie de tipul obiectului şi de aplicaţia grafică în care este folosit modelul respectiv. Se poate folosi una din următoarele metode de modelare poligonală:

Generarea modelului din descrierea matematică a obiectului. Generarea modelului obiectului prin baleiere spaţială. Generarea modelului pornind de la o mulţime de puncte care aparţin suprafeţei

de frontieră a obiectului.

2.2. Generarea modelului din descrierea matematică

Se poate genera reţeaua de poligoane de aproximare a obiectelor care au o descriere matematică cunoscută. De exemplu, ecuaţiile de definiţie a unor suprafeţe quadrice:

Elipsoid: 01czbyax 222222 =−++ (2.1) unde a, b c sunt semiaxele elipselor. Hiperboloid:

01czbyax

si01czbyax222222

222222

=+−+

=−−+ (2.2)

Paraboloid eliptic: zbyax 2222 =+ (2.3)

Surprafaţa se intersectează mai întâi cu un număr n de plane perpendiculare pe axa Oz, de ecuaţii z = n Δz , pentru n = – k, –k+1, -1, 0, 1 , 2 ,…k–1, k. Se obţin n elipse (paralele) şi pe fiecare elipsă se eşantionează m puncte echidistante (pe meridiane), obţinându-se (n –1) x m poligoane care aproximează suprafaţa de frontieră a obiectului respectiv.

Aceste suprafeţe se pot obţine şi prin rotaţia unei curbe în jurul unei axe de coordonate. De exemplu, suprafaţa elipsoidului se obţine prin rotaţia în jurul axei z a elipsei:

01czbyax 222222 =−++ (2.4) 0=y .

Prin rotaţia unei curbe în jurul unei axe se pot obţine obiecte tridimensionale mai variate, în funcţie de forma curbei care se roteşte. De exemplu, un tor se obţine prin rotaţia unui cerc în jurul unei axe paralele cu planul cercului. Suprafeţele astfel obţinute se numesc suprafeţe de rotaţie.

2.3. Generarea modelului prin baleiere spaţială

Se pot genera obiecte tridimensionale prin deplasarea (sweeping) unei suprafeţe

generatoare de-a lungul unei curbe oarecare. Dacă se variază forma şi orientarea suprafeţei generatoare în cursul deplasării, se pot obţine obiecte variate, în funcţie de forma curbei şi de orientarea, forma şi variaţia formei suprafeţei generatoare. Prin această metodă se pot obţine atât formele regulate descrise mai sus (elipsoid,

Page 42: Note de Curs

Grafică Inginereasca-note de curs

46

hiperboloid, paraboloid eliptic, tor) cât şi alte obiecte numite solide ductibile sau extrudate (ducted solids) sau cilindri generalizaţi (generalized cylinders) (Fig. 2.9).

Pentru definirea deplasării unei suprafeţe de-a lungul unei curbe, este necesar să

se definească intervalul u al curbei pe care are loc deplasarea şi modul în care se divide intervalul parcurs. Împărţirea intervalului în distanţe egale nu dă rezultate bune, deoarece punctele obţinute nu vor fi egal distribuite pe suprafaţa obiectului. De aceea este necesară divizarea intervalului în funcţie de curbura curbei. Dacă curbura este pronunţată, se aleg subdiviziuni mai mici ale intervalului, iar pentru curburi mai reduse se aleg subdiviziuni mai mari ale intervalului.

2.4. Generarea modelului pornind de la o mulţime de puncte care aparţin suprafeţei de frontieră a obiectului

O metodă mai generală de modelare a obiectelor tridimensionale se bazează pe

cunoaşterea unei mulţimi de puncte distribuite uniform sau neuniform pe suprafaţa obiectului. Această metodă implică mai întâi obţinerea colecţiei de puncte, şi apoi construirea reţelei de poligoane care să aproximeze obiectul cu precizia dorită. Dacă metodele prezentate mai înainte pot fi utilizate pentru o categorie restrânsă de obiecte, în schimb, metoda generării modelului pornind de la o mulţime de puncte ale suprafeţei acestuia poate fi aplicată pentru cele mai variate obiecte: clădiri, vehicule, plante, animale, elemente anatomice, teren, etc.

Mulţimea de puncte de pe suprafaţa obiectului se determină diferit, în funcţie 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), informaţiile de formă necesare în generearea modelului se pot obţine din reprezentarea proiectului. De exemplu, clădiri, obiecte mecanice, vehicule, pot fi proiectate în AutoCad şi coordonatele vârfurilor suprafeţelor sunt folosite pentru reprezentarea prin reţea 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 direcţia de emisie a unei raze laser. La fiecare rotaţie completă a mesei se obţine o colecţie de puncte pe un contur al obiectului, prin măsurarea distanţei la suprafaţa obiectului. După fiecare rotaţie, se deplasează masa în sus sau în jos, astfel că se obţine o colecţie de contururi ale obiectului. Toate aceste puncte de pe suprafaţa obiectului sunt apoi folosite pentru crearea modelului poligonal.

Fig. 2.9 Obiect poligonal modelat prin deplasarea unui cerc de diametru variabil de-a lungul unei linii drepte.

Page 43: Note de Curs

Grafică Inginereasca-note de curs

47

Pentru modelarea terenului se folosesc hărţi digitale care furnizează altitudinile terenului într-o grilă uniformă de puncte, sau contururi de nivel, care unesc puncte cu altitudine constantă.

Fiind cunoscută o mulţime de puncte V care caracterizează un obiect tridimensional, volumul Ω ⊂ R3 acoperit de aceste puncte se numeşte domeniul mulţimii V. Ω este un poliedru, convex sau neconvex, iar punctele mulţimii V pot fi dispuse regulat sau neregulat în domeniul Ω. Cazul cel mai frecvent întâlnit în modelare este acela în care punctele mulţimii V sunt distribuite neregulat în spaţiu şi aproximarea obiectului se realizează printr-o reţea tridimensională de poligoane Γ, care aproximează linear pe porţiuni obiectul dat. Reţeaua Γ trebuie să fie construită pornind de la mulţimea V de puncte în spaţiu şi de la cerinţele de precizie de aproximare a obiectului.

Construirea modelului poligonal al unui obiect cunoscut printr-o mulţime de puncte de pe suprafaţa sa se poate realiza prin mai multe metode, dintre care cele mai folosite sunt triangularizarea (triangulation) şi transformata Wavelet.

2.5. Redarea imaginii obiectelor poligonale

Aşa cum s-a mai amintit, modelarea poligonală este cea mai folosită formă de

modelare a obiectelor în grafica pe calculator, datorită simplităţii reprezentării modelului poligonal şi a faptului că, în momentul de faţă, majoritatea acceleratoarelor din sistemele grafice conţin programe implementate hardware de redare eficientă a poligoanelor. Algoritmii de redare implementaţi în acceleratoarele grafice tratează separat fiecare poligon (primitivă geometrică) reprezentat prin coordonatele vârfurilor sale, ceea ce face ca procesul de redare a imaginii să fie foarte simplu. Redarea imaginilor scenelor virtuale compuse din obiecte a căror reprezentare însumează mii de poligoane nu este ceva neobişnuit.

Redarea obiectelor poligonale este implementată printr-o succesiune de operaţii

de transformări grafice asupra obiectelor, numită pipeline grafic. Această succesiune,

Fig. 2.10 Redarea obiectelor modelate prin reţea de feţe poligonale.

Page 44: Note de Curs

Grafică Inginereasca-note de curs

48

care va fi descrisă pe larg în secţiunea următoare, constă din transformări geometrice aplicate vârfurilor obiectelor, prin care se transformă fiecare faţă a obiectului din sistemul de referinţă de modelare într-un sistem de referinţă de afişare, urmată de transformarea de redare, prin care se obţine culoare pixelilor care se afişează pe display. În Fig. 2.10 este redată imaginea avionului F-16 modelat prin 2366 feţe poligonale şi redat prin prelucrarea fiecărei feţe, în modul cu feţe “pline” şi umbrire şi în modul wireframe.

Pentru toate celelalte modele de reprezentare a obiectelor (reprezentarea prin reţele de petice, prin compunerea obiectelor sau prin subdivizarea spaţială), pe lângă redarea directă a modelului respectiv, există şi posibilitatea de redare prin deducerea mai întâi a reprezentării poligonale corespunzătoare, urmată de folosirea algoritmilor de redare poligonală.

2.6. Modelarea obiectelor prin reţele de petice Un petic (patch) este o suprafaţă curbă definită parametric în spaţiul

tridimensional. Prin reprezentarea parametrică, punctele de pe suprafaţă se pot calcula secvenţial, pentru diferite valori ale parametrilor, mult mai simplu decât prin rezolvarea sistemului de ecuaţii care descriu implicit suprafaţa. Reprezentarea parametrică a curbelor şi a suprafeţelor este folosită în proiectarea şi în modelarea obiectelor pentru obţinerea unei precizii mai ridicate de aproximare.

Un segment de curbă în spaţiul tridimensional poate fi definit printr-un sistem de ecuaţii în funcţie de un parametru:

zz2

z3

z

yy2

y3

y

xx2

x3

x

d+uc+ub+ua=)u(z

d+uc+ub+ua=)u(y

d+uc+ub+ua=)u(x

(2.5)

Aceasta este o curbă cubică, definită ca formă şi mărime de cei 12 coeficienţi, numiţi coeficienţi algebrici ai curbei. În notaţie vectorială se poate scrie forma parametrică a unei curbe cubice:

DCBAQ +u+u+u=)u( 23 (2.6) unde vectorul Q are componentele (x, y, z), iar vectorii A, B, C, D au componentele (ax, ay, az), (bx, by, bz), (cx, cy, cz), (dx, dy, dz), respectiv, iar u este cuprins în intervalul închis [0,1].

În aplicaţiile grafice se utilizează în mod frecvent curbele cubice, deoarece ele asigură suficientă flexibilitate în definirea curbelor şi pot fi prelucrate eficient. Polinoame de grad mai mare pot descrie curbe mai complexe, dar necesită un număr mai mare de coeficienţi şi sunt mai dificil de prelucrat eficient în reprezentările grafice. La modul general, o curbă parametrică cubică se poate defini prin ecuaţiile:

)u()u( i

3

0iiBPQ ∑

== (2.7)

unde Q este vectorul de componente (x, y, z), Pi sunt punctele de control ale curbei, fiecare vector Pi având componentele (xi, yi, zi), iar Bi sunt funcţiile de bază (sau de amestec – blending functions) ale reprezentării parametrice.

Diferite funcţii de bază au proprietăţi diferite în determinarea formei curbei parametrice: ele pot interpola sau aproxima o curbă dată, pot asigura anumite condiţii de

Page 45: Note de Curs

Grafică Inginereasca-note de curs

49

continuitate a mai multor segmente de curbă. Specificarea unui segment de curbă (sau a unui petic de suprafaţă curbă) printr-

un set de puncte de control este o metodă de bază în proiectarea grafică interactivă: proiectantul defineşte punctele de control; curba este generată şi vizualizată interactiv; dacă forma curbei nu este mulţumitoare, proiectantul modifică unul sau mai multe puncte de control, până obţine rezultatul dorit.

Cele mai utilizate tipuri de curbe şi suprafeţe parametrice în proiectarea grafică sunt curbele (şi suprafeţele) Bézier şi B-spline. În bibliotecile grafice există funcţii de generare a curbelor şi suprafeţelor parametrice.

2.7. Modelarea prin compunerea obiectelor

Modelarea prin compunerea obiectelor (Constructive Solid Geometry – CSG) se

foloseşte atunci când un obiect poate fi obţinut 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 transformări liniare. Un obiect complex este reprezentat printr-un arbore, ale cărui frunze sunt primitivele geometrice iar nodurile memorează operatori booleeni sau transformări liniare.

În Fig. 2.11 este prezentată operaţia de reuniune a două obiecte elementare. Alte operaţiile posibile care se pot efectua asupra primitivelor geometrice sunt scăderea şi intersecţia.

Fig. 2.12 arată reprezentarea CSG a unui obiect prin combinarea a trei obiecte

elementare: două paralelilpipede dreptunghice şi un cilindru. Arborele de reprezentare are ca frunze primitivele geometrice, iar celelate noduri conţin operatorii booleni. Paralelipipedele sunt combinate folosind operaţia de reunuine, iar o gaură este practicată într-unul din paralelipipede prin scăderea unui cilindru din ansamblul celor două paralelipipede.

Deoarece arborele de reprezentare memorează atât operaţiile boolene cât şi forma primitivelor geometrice, operaţiile de modificare ale obiectului compus sunt relativ simple. De exemplu, o gaură într-un obiect se modifică prin modificarea poziţiei sau a dimensiunii primitivei geometrice folosite în operaţia de scădere. O astfel de modificare este mult mai dificilă în reprezentarea prin suprafaţa de frontieră a modelelor.

Redarea imaginii obiectelor CSG se poate face prin mai multe metode: Redarea directă a obiectului în aplicaţiile de ray-tracing. Conversia la reprezentarea prin suprafaţa de frontieră (B-rep) pornind de la

modelul CSG şi aplicarea procedurilor standard de redare a poligoanelor. Conversia la reprezentarea prin subdivizarea spaţiului (în elemente numite

Fig. 2.11 Operaţia de reuniune a două primitive geometrice.

+ =

Page 46: Note de Curs

Grafică Inginereasca-note de curs

50

voxeli) şi redarea volumului corespunzător Tehnica ray-tracing generează imaginea obiectelor prin intersecţia acestora cu

raze de proiecţie şi permite obţinerea unor efecte deosebit de realiste în modelarea reflexiei, transparenţei şi a umbrelor.

Un dezavantaj important al modelării CSG este cela că nu orice fel de obiect poate fi obţinut prin combinarea unor primitive geometrice simple. De exemplu, modelul unei statui (folosit în crearea muzeelor virtuale) sau modelul unui organ anatomic (folosit în simulările de intervenţii chirurgicale) nu pot fi obţinute prin combinarea unor primitive geometrice simple.

2.8. Modelarea prin divizarea spaţială

În tehnica de divizare spaţială, se atribuie fiecărei subdiviziuni a spaţiului tridimensional câte o etichetă în funcţie de obiectul care ocupă acea subdiviziune.

În acestă tehnică se consideră spaţiul tridimensional compus dintr-un număr de m x n x k volume elementare (numite voxeli), şi pentru fiecare voxel se memorează eticheta (un număr de identificare) obiectului care ocupă acel element. Reprezentarea prin subdiviziunea spaţiului este utilă în diferite aplicaţii grafice, cum sunt imagistica medicală sau aplicaţiile de ray tracing.

.

Scadere

Cilindru

Bloc1

Reuniune

Bloc 2

Fig. 2.12 Arborele de construire a unui obiect din trei primitive geometrice.

Fig. 2.13 (a) Ocuparea unei regiuni plane. (b) Ordinea de numerotare a nodurilor fii.

3 4

2 1 1 4 3 2

(a) (b)

Page 47: Note de Curs

Grafică Inginereasca-note de curs

51

Implementarea directă, prin atribuirea unei etichete fiecărui element de volum al spaţiului, implică o mare redundanţă a datelor: toţi voxelii interiori unui obiect conţin acceaşi informaţie, eticheta obiectului. Acest lucru conduce la o cantitatate de informaţie foarte mare necesară pentru reprezentarea unui spaţiu de obiecte şi este, în general, inacceptabilă.

Pentru reducerea redundanţei de reprezentare se foloseşte o tehnică de reprezentare a ocupării spaţiale printr-un arbore numit arbore octal (octree). Arborele octal este o structură ierarhică care specifică ocuparea unei regiuni cubice din spaţiul tridimensional. Ideea de reprezentare a ocupării spaţiale poate fi exemplificată mai uşor într-un spaţiu 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 pătrată în plan, reprezentând întrega zonă care se modelează şi care este reprezentată prin nodul rădăcină al arborelui cuaternar. În cazul spaţiului tridimensional, acestă regiune este un cub. Fiecare regiune, începând cu regiunea iniţială, 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 obţinuţi prin divizarea unei subregiuni

În spaţiul tridimensional o regiune este divizată în opt subregiuni, reprezentate prin opt noduri fii; de aici provine şi numele octree acestui mod de reprezentare.

Subregiunile sunt divizate recursiv până se întâlneşte una din următoarele situaţii:

Subregiunea este ocupată în întregime de un singur obiect sau nu este ocupată de nici un obiect. Unei astfel de regiuni i se atribuie eticheta cu numele obiectului respectiv, sau eticheta de spaţiu vid (e).

.

e

e t e t t e t e e t e t

e e e

e

e e e c e e c c e c e e c c e e

e e e

e d e d e d e d

d

d e

d

e

Etichete: t: triunghi d: dreptunghi c: cerc e: spaţiu vid (empty)

Fig. 2.14 Arborele de reprezentare a ocupării spaţiale.

Page 48: Note de Curs

Grafică Inginereasca-note de curs

52

Subregiunea are dimensiunea minimă admisibilă în reprezentarea respectivă (un pixel). În acest caz, subregiunea primeşte eticheta obiectului (sau a spaţiului vid) care ocupă cea mai mare parte din subregiunea respectivă

În arborele de reprezentare a ocupării spaţiului tridimensional, dimensiunea minimă până 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 spaţiului vid. Compactarea volumului de date în această reprezentare faţă de reprezentarea prin etichetarea fiecărui element (pixel sau voxel), provine din faptul că se poate ca o întreagă subregiune (mai mare decât un voxel) primeşte o singură etichetă, dacă este nu este ocupată deloc sau este ocupată de un singur obiect. În Fig 2.13 (a), regiunea 1 din prima subdivizune nu mai este subdivizată mai departe deoarece este în întregime vidă şi primeşte eticheta (e).

O variantă de reprezentare a ocupării spaţiale prin arbori octali foloseşte ca element spaţial un tetraedru regulat, care este subdivizat în opt tetraedre, până la rezoluţia dorită sau până când este ocupat de un singur obiect din spaţiu. Avantajul folosirii arborilor octali bazaţi pe tetraedre este că se poate obţine direct o reprezentare echivalentă a suprafeţei triangularizate de aproximare a obiectului.

Redarea imaginii obiectelor modelate prin divizare spaţială se face fie prin conversie în reprezentarea prin suprafaţa de frontieră, fie direct, prin redare volumetrică, adică redarea tuturor elementelor de volum (voxeli).

Page 49: Note de Curs

Grafică Inginereasca-note de curs

53

Capitolul 3

3. Transformari geometrice În procesul de redare a obiectelor tridimensionale se definesc mai multe sisteme

de referinţă, care permit descrierea operaţiilor de transformări succesive ale obiectelor, pornind de la modelul acestora, până la imaginea bidimensională pe suportul de reprezentare.

Aceste sisteme de referinţă vor fi precizate pe parcursul expunerii; ceea ce interesează în acest moment este faptul că în vizualizarea 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 transformări grafice. Dintre transformările grafice folosite, unele modifică forma şi poziţia obiectelor în spaţiu, fiind numite transformări geometrice, altele sunt transformări de conversie între diferite modalităţi de reprezentare a obiectelor (transformarea de rastru). Transformări geometrice în spaţiu

Obiectele scenei virtuale pot fi modificate sau manevrate în spaţiul tridimensional, folosind diferite transformări geometrice. Dintre acestea, cele mai importante sunt translaţia, care modifică localizarea obiectului, rotaţia, care modifică orientarea, şi scalarea, care modifică dimensiunea obiectului. Aceste transformări sunt denumite transformări geometrice primitive.

3.1. Transformări în plan Dacă x şi y sunt coordonatele unui punct M, ecuaţiile: x’=f(x,y), y’=g(x,y) (1.14) permit trecerea de la punctul M(x,y) la punctul. Ecuaţiile (1.14.) definesc o transformare punctuală plană. Punctul M’ este transformatul lui M. Dacă ecuaţiile de transformare conţin şi parametri, spunem că ele reprezintă o familie de transformări. Putem considera coordonatele punctului ca o matrice 1y2. Fie produsul matricial următor pe care îl notăm cu (x’,y’):

( ) ( ) ( )DyBxCyAxDCBA

xyyx ++==′′ (1.15)

Atunci toate punctele planului xOy înmulţite cu matricea 2x2 vor da noi puncte (x’,y’), unde:

x’=Ax+Cy, y’ =Bx+Dy (1.16)

Transformarea astfel obţinută va depinde de valorile date variabilelor A, B, C, şi D.

Page 50: Note de Curs

Grafică Inginereasca-note de curs

54

Translaţia este transformarea prin care toate punctele se deplasează în aceeaşi direcţie şi cu aceeaşi distanţă între punct şi transformatul său. Translaţia se poate descrie printr-un vector de translaţie T, având componentele zyx ttt ,, pe cele trei axe de coordonate; un punct ),,(P zyx se transformă în punctul )',','(P' zyx astfel:

z

y

x

tz'z

ty'ytx'x

+=

+=+=

În notaţie matriceală, transformarea prin translaţie cu vectorul de translaţie T, având componentele zyx ttt ,, pe cele trei axe de coordonate a unui punct ),,(P zyx în punctul )',','(P' zyx se exprimă printr-o însumare de matrice:

T+P=P' , unde ⎥⎥⎥

⎢⎢⎢

⎡=

z

y

x

ttt

T ; deci: .ttt

zyx

'z'y'x

z

y

x

⎥⎥⎥

⎢⎢⎢

⎡+

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

Translaţia plana . Transformarea este reprezentată de ecuaţiile:

x’=x+a, y’ =y+b (1.17)

Familia de transformări depinde de parametrii a şi b. Dacă a=b=0, atunci punctul M(x,y) rămâne neschimbat, adică transformarea identică este cuprinsă în familia transformărilor (1.17). Putem rezolva invers ecuaţiile (1.17) şi găsim: x = x’ - a, y = y’ - b, care sunt ecuaţii de aceeaşi formă cu (1.17). deci familia conţine transformarea inversă. Presupunem că efectuăm o nouă translaţie asupra punctului M’ (x’,y’):

x”=x’+a’, y”=y’+b’.

Trecerea de la M(x,y) la M”(x”,y”) se va exprima prin: x”=x+(a+a’), y”=y+(b+b’),

adică produsul a două translaţii este tot o translaţie. În concluzie, translaţiile plane formează un grup G, cu doi

parametri. Vom observa că nici-un produs al matricei generale DCBA

nu ne permite să găsim relaţiile (1.17). Pentru rezolvarea situaţiei se va introduce o a treia componentă a vectorilor (x y) şi (x’ y’), obţinând (x y

1) şi (x’ y’ 1). Matricea transformărilor va fi obligatoriu de 3x2: Vom arăta că ea furnizează bine o translaţie::

byaxba

yx ++=⋅ 1001

1

sau : x’=x+a, y’=y+b, unde a produce o translaţie pe axa Ox şi b pe axa Oy. Problema translaţiei pare a fi rezolvată. Dar o matrice 3x2 nu posedă inversă. De

aceea se mai adaugă o coloană.

ba1001

Page 51: Note de Curs

Grafică Inginereasca-note de curs

55

1''11010001

1 yxbyaxba

yx =++=⋅

Spunem că reprezentarea poziţiei unui punct printr-un vector cu trei componente este o reprezentare în coordonate omogene.

La mod general orice punct din plan de coordonate (x, y) are pentru coordonate omogene tripletul (x,y,1) sau nu contează care triplet de trei numere proporţionale (kx, ky, k), unde k număr real nenul. Deci, x’= kx, y’= ky, z’ = k, de unde rezultă: x= x’/k, y= y’/k. Aceste formule reprezintă formulele de trecere de la coordonatele omogene la cele carteziene.

Scalarea modifică coordonatele tuturor punctelor unui obiect folosind factorii de scală sx, sy, respectiv sz pe cele trei axe de coordonate. În această transformare de scalare, numită scalare faţă de origine, un punct )z,y,x(P se transformă în punctul )'z,'y,'x(P' , unde:

z

y

x

sz'z

sy'ysx'x

⋅=

⋅=⋅=

Pentru scrierea sub formă matriceală a acestor relaţii de transformare, se defineşte matricea de scalare S de dimensiune 3x3 astfel:

⎥⎥⎥

⎢⎢⎢

⎡=

z

y

x

s000s000s

S

Rezultă relaţia de transformare de scalare în notaţie matriceală:

,PSP'= adică ⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

zyx

s000s000s

'z'y'x

z

y

x

Scalarea plana. Transformarea este controlată de matricea T=D

A0

0 şi în

consecinţă (x y). T=(Ax Dy), adică x’=Ax, y’=Dy.

Fig.3.1 Scalarea a) b) c)

a a

a

b b

b

c c

c

d d

d

a'

a' a'

b'

b' b'

c'

c'

c'

d'

d'

d'

Page 52: Note de Curs

Grafică Inginereasca-note de curs

56

Exemplu 1.1 Fie pătratul unitar abcd (fig. 3.1a) şi matricea 1003

=T .

Transformâns vârfurile pătratului a(1,2), b(2,2), c(2,3),d(1,3) se obţin succesiv: (1 2) T=(3 2), a’(3,2); (2 2) T=(6 2), b’(6,2); (2 3) T=(6 3), c’(6,3); (1 3) T=(3 3), d’(3,3) sau mai simplu:

3322

3663

1003

3322

1221

=⋅

A rezultat astfel un dreptunghi. Produsul matricial a condus la mărirea unei

laturi pe Ox cu factorul de multiplicare egal cu 3. Exemplu 1.2 Fie pătratul unitar abcd (fig. 3.1b) şi matricea

2,00

01=T .Aplicând această matrice la coordonatele pătratului se va obţine:

8,08,02,02,0

1441

2,0001

4411

1441

=⋅

Se observă că s-a efectuat o modificare cu factorul 0,2 pe axa Oy. Exemplul 1.3 Dacă se doreşte mărirea / micşorarea uniformă a pătratului, pe cele

două axe, trebuie ca valorile coeficienţilor A şi D să fie egale (fig.3.1.c)

40440400

4004

10110100

=⋅

O multiplicare prin matricea T cu A = D = 1 conduce la conservarea pătratului.

''

1001

yxyx =⋅

adică x = x', y = y'

Page 53: Note de Curs

Grafică Inginereasca-note de curs

57

Simetria. Matricele T care controlează acest tip de transformare sunt cazuri particulare ale celor care produc scalări, în care A şi / sau D sunt negative

• dacă 1001−

=T , se produce simetria în raport cu axa Oy; x' = - x, y'

= y;

• dacă 0101

−=T , se produce simetria în raport cu axa Ox; x' = x, y' =

- y;

• dacă 10

01−

−=T , se produce simetria în raport cu ambele axe, adică

simetrie centrată în raport cu originea; x' = - x, y' = - y.

Deformarea. Considerăm matricea 10

1 BT = pe care o aplicăm unui pătrat

abcd (fig.3.2a) şi luăm B=2:

1320

0110

1021

1100

0110

=⋅ .

Spunem că s-a efectuat o deformare în y, ceea ce înseamnă în direcţia axei Oy

(fig.3.2b). Matricea 101

CT = produce o deformare pe axa Ox, iar

11C

BT = , o

deformare în ambele direcţii.

Fig.3.2. Deformarea Exemplul 1.4. Fie pătratul abcd, unitar cu vârful a în origine. Dacă îi aplicăm

transformarea 1

1C

BT = se obţine deformarea din fig.3.2.c. Remarcaţi schimbarea

vârfurilor b' şi d'!

a) b) c)

c

a a a' b

b b' c

c'

d d

d'

1

1

1

3 2 1

3 2 1

1 2 3 4

Page 54: Note de Curs

Grafică Inginereasca-note de curs

58

Rotaţia 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 încât P şi P’ sunt situate într-un plan perpendicular π pe dreapta D, unghiul PIP’este egal cu θ, iar modulele |IP| şi |IP’| sunt egale (punctul I este intersecţia dintre dreapta D şi planul π). Prin această transformare toate punctele dreptei d sunt fixe şi numai ele sunt puncte invariante ale transformării. Transformarea de rotaţie în raport cu o axă oarecare se descompune o într-o succesiune de maximum trei transformări de rotaţie în raport cu axele de coordonate ale sistemului de referinţă.

Rotaţia în raport cu axa z cu un unghi θ transformă un punct )z,y,x(P în punctul )'z,'y,'x(P' , ambele aflate în planul π peroendicular pe axa z. Pentru deducerea relaţiilor de

transformare se exprimă coordonatele punctelor P şi P’ în acest plan în coordonate polare (Fig. 3.3).

usinyucosx

ρ=ρ=

)usin('y)ucos('x

θ+ρ=θ+ρ=

Se dezvoltă cosinusul şi sinusul sumei de unghiuri şi se obţin relaţiile:

θ+θ=θ+θρ=θ−θ=θ−θρ=

cosysinx)ucossincosu(sin'ysinycosx)sinusincosu(cos'x

Această transformare se poate scrie sub formă matriceală dacă se defineşte matricea de rotaţie RZ(θ) de dimensiune 3x3 astfel:

⎥⎥⎥

⎢⎢⎢

⎡θθθ−θ

=θ1000cossin0sincos

)(ZR

Rezultă relaţiile de transformare de rotaţie a unui punct în raport cu axa z cu un unghi θ scrise sub formă matriceală:

PRP Z' = ,

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡θθθ−θ

=⎥⎥⎥

⎢⎢⎢

zyx

1000cossin0sincos

'z'y'x

Pentru rotaţiile elementare ale unui punct în raport cu axele x şi y ale sistemului de referinţă se urmăreşte un raţionament asemănător şi se deduc relaţiile de transformare corespunzătoare.

Rotaţiile în raport cu axele de coordonate ale sistemului de referinţă sunt denumite tangaj (pitch), giraţie (yaw, heading) şi, respectiv ruliu (roll). Această asignare depinde de convenţiile de definire a sistemului de referinţă universal. Pentru convenţia definită mai sus, tangajul este o rotaţie în raport cu axa x, giraţia este o rotaţie în raport cu axa y, iar ruliul este o rotaţie în raport cu axa z (Fig. 3.2).

Aceste denumiri au originea în modul în care sunt definite mişcările unui avion

Fig. 3.3 Transformarea de rotaţie în raport cu axa z.

P’

P

u

πP’

I

ρ ρ

y

x O

z

Page 55: Note de Curs

Grafică Inginereasca-note de curs

59

poziţionat în spaţiu cu axa longitudinală orientată către z pozitiv: tangajul este rotaţia într-un plan vertical, care înclină botul avionului; giraţia este o mişcare într-un plan orizontal, care schimbă direcţia axei avionului, iar ruliul este rotaţia într-un plan vertical, care înclină aripile avionului.

Semnul rotaţiilor în raport cu axele de coordonate se alege, prin convenţie, după

regula mâinii drepte sau după regula mâinii stângi. Dacă se cuprinde axa corespunzătoare cu patru degete ale mâinii (drepte, respectiv, stângi) astfel ca degetul mare să fie îndreptat în sensul pozitiv al axei, direcţia celor patru degete indică sensul pozitiv al rotaţiei. În această lucrare se adoptă regula mâinii drepte pentru sensul de rotaţe în raport cu axele de coordonate (Fig. 3.4).

S-au obţinut relaţiile pentru transformările spaţiale elementare (primitive),

translaţia, scalarea faţă de originea sistemului de coordonate şi rotaţia în raport cu axele sistemului de coordonate. Tratarea într-un mod unitar a acestor transformări se poate face prin creşterea dimensionalităţii sistemului de coordonate Cartezian, definindu-se un sistem de coordoonate cu 4 dimensinui, numit sistem de coordonate omogene.

Rotaţia in plan. Fie M(x,y) în sistemul de axe xOy (fig. 3.5). Dacă: r = OM, α=(Ox,OM), M este afixul lui z=r(cosα + isinα) din care:

Fig.3.5. Rotaţia Fig.3.6. Rotaţia pătratului

M

M'

α θ b a a' x

y

d

b'

c c'

d' 1 1

r

x z

y

Giraţie

Tangaj

Ruliu

Fig. 3.4 Rotaţiile în raport cu axele sistemului de referinţă.

Page 56: Note de Curs

Grafică Inginereasca-note de curs

60

x'=x cosθ - ysinθ, y'=xsinθ + ysinθ,

sunt formulele care dau rotaţia. Dacă θ=0, se obţine transformarea identică. Se observă uşor că înlocuind pe θ cu - θ se obţine o transformare din

aceeaşi familie. De asemenea produsul a două rotaţii este o nouă rotaţie În concluzie , rotaţiile în jurul unui punct formează un grup G1 cu un parametru.

Revenind la matricea T, căutăm valorile lui A,B,C,D pentru care transformarea obţinută dă o rotaţie. Fie un pătrat abcd (fig.3.6) ce suferă o rotaţie sub un unghi θ. Obţinem imediat: abcisa lui b'=1.cos θ; ordonata lui b'=1.sin θ; abcisa lui d'=-1.sin θ; ordonata lui d'=1.cos θ;

Anterior s-a văzut că dacă se cunosc coordonatele punctelor b' şi d' atunci matricea transformare este cunoscută. Deci:

θθθθ

cossinsincos

'.'.'.'.

−=

dorddabsbordbabs

.

Exemplul 1.5. Dacă dorim ca un pătrat unitar să sufere o rotaţie cu unghiul

θ=30o. Matricea de rotaţie va fi:

866,05,0

5,0866,0cossinsincos

−=

− θθθθ

Care aplicată pătratului va da:

866,0366,15,0

0

5,0366,1866,0

0

866,05,05,0866,0

1100

0110

=−

DDB

B

CBA

ADCBA

++=⋅

00

1100

0110

Fig.3.7. Transformarea generală

d'

a'

b'

c' d'

A C A+C

B+D

B

D

x

y

Page 57: Note de Curs

Grafică Inginereasca-note de curs

61

Trebuie să reţinem că: - rotaţie se efectuează întotdeauna în jurul originii O(0,0); - matricea de rotaţie este o combinaţie de scalări şi deformări care lasă

neschimbate dimensiunile finale; - o matrice de rotaţie are întotdeauna valoarea determinantului, egală cu 1:

Δ=cos2θ + sin2θ =1. Fie, din nou, pătratul unitar la care se aplică matricea generală T: Se obţine astfel un paralelogram a'b'c'd' (fig.3.7) . Exemplul 1.6. Fie A=4, B=1, C=1, D=3. Vom remarca următoarele: - coordonatele lui b' sunt date pe prima linie a matricei; - coordonatele lui d' sunt date pe următoarea linie a matricei. Acest lucru este important deoarece dacă se cunosc coordonatele acestor puncte,

atunci matricea generală a transformării este perfect determinată. Termenii B şi C produc deformarea în direcţiile Oy şi Ox, iar termenii A şi D

acţionează pe scală. Vom demonstra că aria (a'b'c'd')= A.D - B.C. se poate observa că aria

paralelogramului se poate obţine din aria dreptunghiului de bază A+C şi înălţime B+D, din care se scad ariile celor două triunghiuri dreptunghice şi a celor două trapeze dreptunghice:

Aria (a'b'c'd')= (A+C)(B+D)- A.B/2 - (B+B+D)C/2 - (C+A+C)B/2= A.D -B.C Această relaţie ne permite să calculăm aria transformării unei suprafeţe oarecare.

Considerăm o suprafaţă ce conţine S unităţi. Aria transformată printr-o matrice 2x2 va avea valoarea S'=S.(A.D - B.C). 3.2 Sistemul de coordonate omogene

Se observă că transformările de scalare şi de rotaţie se reprezintă prin înmulţiri

de matrice, iar translaţia se reprezintă prin însumare de matrice. Reprezentarea unitară şi combinarea transformărilor geometrice spaţiale se poate face într-un sistem de coordonate cu patru dimensiuni, numit sistem de coordonate omogene. În sistemul de coordonate omogene, un punct )z,y,x(P se reprezintă ca )w,Z,Y,X(P pentru orice factor de scară w ≠ 0.

În general, un punct )z,y,x(P în 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(P reprezentat în sistemul de coordonate omegene printr-o împărţire cu factorul de scară w astfel:

w/Zzw/Yyw/Xx

===

(3.1)

În coordonate omogene, două puncte )w,Z,Y,X(P 11111 şi )w,Y,Y,X(P 22222 sunt egale dacă :

221122112211 w/Zw/Z si w/Yw/Y,w/Xw/X === În sistemul de coordonate omogene, toate matricele de transformări sunt de

dimensiune 4x4 şi toate operaţiile de transformări geometrice se pot exprima prin produse de matrice.

Page 58: Note de Curs

Grafică Inginereasca-note de curs

62

Matricea de translaţie în coordonate omogene se defineşte astfel:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000t100t010t001

)t,t,t(z

y

x

zyxT (3.2)

Transformarea de translaţie a unui punct )w,Z,Y,X(P reprezentat în coordonate omogene, în punctul )'w,'Z,'Y,'X(P' se exprimă ca un produs de matrice:

PTP' =

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

wZYX

1000t100t010t001

'w'Z'Y'X

z

y

x

, rezultă:

⎪⎪⎩

⎪⎪⎨

=+=

+=+=

w'wwtZ'Z

wtY'YwtX'X

z

y

x

(3.3)

Teoretic, pentru a se obţine coordonatele cartezine ale punctului transformat P’, trebuie să se execute operaţia de împărţire cu factorul de scară w’ pentru fiecare coordonată:

'w/'Z'z'w/'Y'y'w/'X'x

===

Dar, dacă se alege w =1, rezultă w’=1 şi împărţirea nu mai este necesară. În general, transformările geometrice primitive conservă valoarea factorului de scară şi, dacă se alege w =1, împărţirea cu w’ (numită împărţirea omogenă) nu este necesară .

Matricea de scalare faţă de origine reprezentată în sistemul de coordonate

omogene are expresia:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

10000s0000s0000s

)s,s,s(z

y

x

zyxS (3.4)

Transformarea de scalare a unui punct reprezentat în coordonate omogene )w,Z,Y,X(P , în punctul )'w,'Z,'Y,'X(P' este dată de relaţiile:

SPP'=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

wZYX

10000s0000s0000s

'w'Z'Y'X

z

y

x

, rezultă:

⎪⎪⎩

⎪⎪⎨

==

==

w'wZs'Z

Ys'YXs'X

z

y

x

(3.5)

Dacă factorii de scalare sunt egali ( zyx sss == ), scalarea se numeşte uniformă, şi păstreză forma obiectului. Dacă factorii de scalare diferă, obiectul este deformat, iar scalarea se numeşte neuniformă.

Transformările de rotaţie în raport cu axele sistemului de referinţă exprimate

Page 59: Note de Curs

Grafică Inginereasca-note de curs

63

în coordonate omogene sunt următoarele: Rotaţia în raport cu axa x (tangaj) cu un unghi θ :

⎥⎥⎥⎥

⎢⎢⎢⎢

θθθ−θ

10000cossin00sincos00001

)(XR (3.6)

În această transformare, axa x rămâne nemodificată, iar toate celelalte puncte din spaţiu se transformă prin înmulţire ca matricea RX(θ):

PRP' X=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

θθθ−θ

=

⎥⎥⎥⎥

⎢⎢⎢⎢

wZYX

10000cossin00sincos00001

'w'Z'Y'X

, rezultă

⎪⎪⎩

⎪⎪⎨

=θ+θ=θ−θ=

=

w'wcosZsinY'ZsinZcosY'Y

X'X

(3.7)

Rotaţia în raport cu axa y (giraţie) cu un unghi χ :

⎥⎥⎥⎥

⎢⎢⎢⎢

χχ−

χχ

10000cos0sin00100sin0cos

)(YR (3.8)

În această transformare, axa y rămâne nemodificată, iar toate celelalte puncte din spaţiu se transformă prin înmulţire ca matricea RY(χ):

PRP' Y=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

χχ−

χχ

=

⎥⎥⎥⎥

⎢⎢⎢⎢

wZYX

10000cos0sin00100sin0cos

'w'Z'Y'X

, rezultă:

⎪⎪⎩

⎪⎪⎨

=χ+χ−=

=χ+χ=

w'wcosZsinX'Z

Y'YsinZcosX'X

(3.9)

Rotaţia în raport cu axa z (ruliu), cu un unghi ρ :

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ρρρ−ρ

1000010000cossin00sincos

)(ZR (3.10)

În această transformare, axa z rămâne nemodificată, iar toate celelalte puncte din spaţiu se transformă prin înmulţire ca matricea RZ(ρ):

PRP' Z=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ρρρ−ρ

=

⎥⎥⎥⎥

⎢⎢⎢⎢

w

Z

Y

X

1000

0100

00

00

w

Z

Y

X

cossinsincos

''''

, rezultă:

⎪⎪⎩

⎪⎪⎨

==

ρ+ρ=ρρ=

w'wZ'Z

cosYsinX'YsinY-cosX'X

(3.11)

Toate matricele de transformare de rotaţie sunt matrice ortogonale şi ortonormate. Transformările geometrice elementare sunt transformări liniare, prin care

Page 60: Note de Curs

Grafică Inginereasca-note de curs

64

liniile drepte şi suprafeţele plane sunt transformate în linii dreapte, respectiv suprafeţe plane. Din această cauză, pentru transformarea unui obiect tridimensional, este suficient să se transforme toate vârfurile acestuia şi să se păstreze relaţiile topologice între vârfurile transformate, aceleaşi cu cele între vârfurile iniţiale.

Transformările mai complexe ale obiectelor în spaţiu se pot defini prin compunerea mai multor transformări primitive.

3.2.1. Compunerea transformărilor Compunerea mai multor tranformări elementare pentru obţinerea unei

transformări complexe se obţine prin executarea succesivă a produsului fiecăriei matrice de transformare cu matricea de reprezentare a punctului iniţial sau rezultat dintr-o transformare precedentă. De exemplu, în Fig. 3.8 este prezentată o transformare compusă a unui obiect.

Obiectul iniţial este un cub cu latura de două unităţi, amplasat cu centrul său în centrul sistemului de referinţă şi laturile orientate în direcţiile axelor de coordonate. După o scalare cu factorii de scară 2, 2, 2, o rotaţie cu un unghi de 30 grade în raport cu axa z şi o translaţie cu un vector de translaţie cu componente 8,0,0, se obţine un nou obiect cub, definit în acelaşi sistem de referinţă, dar cu alte dimensiuni şi localizare. Reprezentarea din Fig. 3.8 conţine şi o transformare de proiecţie perspectivă, pentru percepţia adâncimii (a distanţei faţă de observator a obiectelor), care va fi explicată ulterior. Una din feţele cubului (cea mai apropiată de observator) este desenată ca suprafaţă de culoare gri; celelalte feţe ale cubului sunt reprezentate numai prin muchiile lor (reprezentare numită “cadru de sârmă”, wireframe).

Transformarea efectuată asupra cubului din figura de mai sus se obţine prin

aplicarea succesivă a trei transformări geometrice elementare (scalare, rotaţie şi translaţie) asupra fiecărui punct (vârf) al cubului. Pentru un vârf al cubului, reprezentat prin matricea coloană P, succesiunea de transformări este:

Scalarea: PSP1 =

Fig. 3.8 Transformare compusă a unui obiect: scalare, rotaţie faţă de axa z, translaţie.

P’

P

Page 61: Note de Curs

Grafică Inginereasca-note de curs

65

Rotaţia în raport cu axa z: P2 = RZ P1= RZ(S P) Translaţia: 2PTP'= = T(RZ(S P)) = (TRZS) P Nu este necesar să fie executate pe rând operaţiile de înmulţire cu matricele de

transformare S, RZ, şi T, ci se poate calcula o matrice compusă a transformării M, care se aplică apoi fiecărui punct P al obiectului:

PMPSRTP' Z == , unde SRT=M Z O transformare compusă se poate deci defini printr-o matrice de transformare M

care este un produs (compunere) de matrice de transformări geometrice elementare. În exemplul dat, se calculează matricea de transformare M astfel:

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ −

⎥⎥⎥⎥

⎢⎢⎢⎢

==

1000020000200002

1000010000866.05.0005.0866.0

1000010000108001

SRTM z

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000020000732,11801-732.1

M

Unul din vârfurile cubului, vârful P(1,1,1,1) se transformă în P’(8.732, 3.732,1,1 ):

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ −

==

12732.3732.8

1111

1000020000732.11801732.1

PMP'

Ordinea de compunere a matricelor de transformare este definitorie pentru rezultatul transformării, dat fiind că produsul matricelor nu este comutativ.

Se poate verifica pe exemplul dat, prin inversarea ordinii transformării de rotaţie cu translaţia (Fig. 3.9).

Fig. 3.9 Transformare compusă a unui obiect: scalare, translaţie, rotaţie faţă de axa z.

P’’

P

Page 62: Note de Curs

Grafică Inginereasca-note de curs

66

Se obţine o matrice de transformare M’’diferită de M şi punctul transformat

corespunzător P’’, diferit de P’:

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ −

==

10000200330.40732.11928.601732.1

STR'M' z , ⎥⎥⎥⎥

⎢⎢⎢⎢

==

1206.7560.7

P'M''P'

Convenţia de reprezentare a punctelor în spaţiu prin matrice coloană impune ordinea de înmulţire numită postmultiplicare (sau multiplicare la dreapta) a matricelor de transformare: se înmulţeşte matricea de transformare curentă cu matricea transformării următoare. Convenţia de terminologie (postmultiplicare sau multiplicare la dreapta) semnifică faptul că o nouă transformare se concatenează ca factor dreapta al produsului de matrice. Este important de reţinut faptul că ordinea de aplicare a transformărilor este de la dreapta la stânga din succesiunea de matrice ale unei compuneri. Mai precis, dacă un punct se transformă prin aplicarea succesivă a transformărilor definite prin matricele M1, M2,…., Mn, matricea compusă de transformare este:

12n MMMM L= (3.12) Se poate verifica că, dacă se adoptă convenţia de reprezentare a unui punct în

spaţiul tridimensional printr-o matrice linie, atunci transformarea unui punct se obţine prin înmulţirea vectorului de poziţie al punctului cu matricea de transformare (premultiplicare sau multiplicare la stânga). În această situaţie, ordinea în care se aplică matricele compunente ale unei transformări compuse este de la stânga la dreapta:

n21 SSSS PSP' L== unde , (3.13) Punctul P este transformat în ordinea S1, S2,….Sn. Acesta este un mod mai

natural de a urmări secvenţele de transformări geometrice şi de aceea, în unele lucrări este adoptată această convenţie. Nu există alte diferenţe între cele două convenţii (nici de simplificare a calculelor, nici de eficienţă).

Se poate demonstra cu uşurinţă că orice matrice de transformare elementară în convenţia de reprezentare prin matrice linie a unui punct în spaţiul tridimensional este transpusa matricei corespunzătoare de transformare definită în convenţia de reprezentare prin matrice coloană a punctului. De exemplu, translaţia unui punct P(x,z,y) cu valorile tx, ty, tz se exprimă astfel:

[ ] [ ]

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=

1ttt010000100001

wZYX'w'Z'Y'X

zyx

În această lucrare se foloseşte convenţia de reprezentare prin matrice coloană a punctelor din spaţiu, dat fiind că aceasta este convenţia din biblioteca grafică OpenGL, care este folosită pentru exemplificarea operaţiilor grafice prezentate.

Un alt exemplu de transformare compusă este transformarea de rotaţie completă specificată prin trei rotaţii faţă de axele sistemului de coordonate. Cea mai obişnuită convenţie pentru ordinea de specificare a rotaţiilor este: ruliu cu unghiul ρ (după axa z), tangaj cu unghiul θ (după axa x) şi giraţie cu unghiul χ (faţă de axa y). În această situaţie matricea de rotaţie totală R are expresia:

Page 63: Note de Curs

Grafică Inginereasca-note de curs

67

⎥⎥⎥⎥

⎢⎢⎢⎢

=ρθχ

10000rrr0rrr0rrr

)()()(333231

232221

131211

ZXY RRR=R (3.14)

Matricea R rezultată prin compunerea (înmulţirea) mai multor matrice de rotaţie este de asemenea ortogonală şi ortonormată.

O transformare complexă a unui obiect prin combinarea mai multor transformări elementare (scalări, rotaţii, translaţii) se poate exprima printr-o matrice de transformare M care are forma generală:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000t'r'r'rt'r'r'rt'r'r'r

z333231

y232221

x131211

M (3.15)

Submatricea stânga-sus R’ de dimensiune 3x3 exprimă transformarea de rotaţie şi scalare totală, iar submatricea coloană dreapta T exprimă transformarea de translaţie totală. Matricea R’ este o matrice ortogonală, dar poate să nu fie şi ortonormată.

Două proprietăţi importante ale transformărilor geometrice compuse trebuie să fie remarcate şi reţinute.

Prima proprietate este că o transformare geometrică compusă reprezentată printr-o matrice de forma 3.15 conservă valoarea coordonatei w a unui punct (acest lucru este evident). Această proprietate este folosită în implementarea operaţiilor grafice, prin amânarea împărţirii omogene (cu w) după ce s-au selectat numai obiectele vizibile (după operaţia de decupare).

A doua proprietate este proprietatea de liniaritate a transformărilor geometrice compuse, prin care liniile drepte şi suprafeţele plane sunt transformate în linii dreapte, respectiv suprafeţe plane. De aceea, la fel ca şi în cazul transformărilor geometrice elementare, pentru transformarea unui obiect tridimensional, este suficient să se transforme toate vârfurile acestuia şi să se păstreze relaţiile topologice între vârfurile transformate.

In plan O expresie care conţine coordonatele unuia sau mai multor puncte este un

invariant absolut al unui grup de transformări dacă nu-şi schimbă forma când înlocuim coordonatele punctelor prin coordonatele punctelor transformate.

Dacă în aceleaşi condiţii, expresia se reproduce înmulţită cu un factor ce depinde de parametrii transformării, spunem că ea este un invariant relativ.

Toate transformările prezentate mai înainte au fost centrate în originea axelor sau , altfel spus, punctul O(0,0) este un invariant.

Exemplul 1.7. Să încercăm să găsim matricea transformărilor care întoarce un triunghi abc în jurul unui punct dat (x,y) sub un unghi θ.

Coordonatele omogene ne vor ajuta să rezolvăm mai uşor problema. Transformăm toate matricele 2x2 utilizate până acum , în matrice 3x3 astfel:

100

00DB

CA

.

Page 64: Note de Curs

Grafică Inginereasca-note de curs

68

În general, o rotaţie în jurul unui punct arbitrar al unui plan va fi executată

efectuând: - translaţia centrului de rotaţie la originea axelor; - rotaţia aşteptată; - translaţia rezultatului la centrul de rotaţie iniţial. Deci se efectuează produsul a trei matrice:

1''1010001

1000cossin0sincos

1010001

1 yxbaba

yx =⋅−⋅−−

⋅ θθθθ

Revenind la problema enunţată (fig.1.17) avem: a(6,4) b(9,4), c(6,6), x=5, y=3,

θ=60o. Deci:

'''

1366,5902,21964,6134,61636,4634,4

135010001

1356,2098,21964,3134,11366,1366,0

135010001

10005,0866,00866,05,0

131114111

135010001

100060cos60sin060sin60cos

1010001

166149146

cba

ihg

fed

bacba

oo

oo

=

=⋅−

−⋅=⋅−

⋅=⋅−⋅−−

De fiecare dată când se realizează un produs

se efectuează o transformare. Triunghiul abc se deplasează mai întâi în def, acolo suferă o rotaţie de 60o şi devine ghi , care se translatează în final în a'b'c'. Este preferabil să se efectueze dintr-o dată aceste operaţii. De aceea se compun cele trei matrice într-una singură care va fi matricea transformării globale ce se aplică triunghiului iniţial.

Fig.1.10. Compunerea transformărilor

183,2098,505,0866,00866,05,0

135010001

100060cos60sin060sin60cos

135010001

−−=⋅−⋅

−−= oo

oo

T

Aplicând această matrice triunghiului iniţial abc se obţine:

Page 65: Note de Curs

Grafică Inginereasca-note de curs

69

1366,5902,21964,6134,61366,4634,4

166149146

=⋅T

care este întocmai rezultatul anterior. Metoda este destul de laborioasă. De aceea se vor generaliza lucrând în mod

literal. Avem de efectuat produsul:

1cossinsincos0cossin0sincos

1010001

1000cossin0sincos

1010001

bbaaba

babaT

+−−++−−=

=⋅−⋅−−

=

θθθθθθθθ

θθθθ

Atunci: (x' y' z')=(x y z)T şi deci, avem:

bbayxyabayxx

+−−+=++−−=

θθθθθθθθ

sinsincossin'sincossincos'

Va fi suficient să citim coordonatele (a,b) ale centrului de rotaţie oarecare şi

valoarea unghiului de rotaţie q, apoi aplicăm aceste formule la toate punctele obiectului considerat.

În concluzie matricea 3x3 utilizată cu coordonatele omogene în plan este de

forma: Eba

DCBA

11

Ea se poate partiţiona în patru părţi, fiecare având un rol bine

definit: - termenii A,B,C,D produc scalările, rotaţiile şi deformările; - a şi b produc translaţiile; - E produce schimbarea scării generale. Într-adevăr:

EyxE

yxyx =⋅=00

010001

11''

De unde coordonatele carteziene (x',y') se obţin substituind x'=x/E. y'=y/E. dacă

E>1, se produce micşorarea, iar E<1când se produce mărirea. Dacă A≠ D se va face o schimbare de scală diferită pe cele două axe, iar dacă A=D schimbarea va fi uniformă.

Page 66: Note de Curs

Grafică Inginereasca-note de curs

70

3.2.2. Transformări inverse Fiind dată o transformare a unui punct P într-un punct P’ definită printr-o

matrice de transformare M, transformarea inversă, de la punctul P’ la punctul P se obţine prin înmulţirea cu matricea inversă, M-1 :

⎥⎥⎥⎥

⎢⎢⎢⎢

==−

1000

0100

0010

0001

II,MM 1 , (3.16)

unde I este matricea identitate. Dat fiind că, în general, matricea de transformare M se obţine printr-un produs

de matrice de transformări elementare, matricea inversă M–1 se calculează prin produsul în ordine inversă a inverselor matricelor elementare componente:

IMMMMMM=MM

MMM=M

MMM=M

1n

12

1112n

1

1-n

1-2

1-1

1-12n

=− --- LL

L

L

(3.17)

Relaţia 3.17 se demonstrează imediat, prin gruparea factorilor începînd cu IMM -1

11 = . Toate matricele de transformări elementare sunt matrice inversabile şi au

următoarele expresii:

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−

=−−−=−

1000t100t010t001

)t,t,t()]t,t,t([z

y

x

zyx1

zyx TT (3.18)

⎥⎥⎥⎥

⎢⎢⎢⎢

==−

10000s/10000s/10000s/1

)s/1,s/1,s/1()]s,s,s([z

y

x

zyx1

zyx SS (3.19)

⎥⎥⎥⎥

⎢⎢⎢⎢

θθ−θθ

=θ−=θ −

10000cossin00sincos00001

)()]([ 1xx RR (3.20)

⎥⎥⎥⎥

⎢⎢⎢⎢

χχ

χ−χ

=χ−=χ −

10000cos0sin00100sin0cos

)()]([ 1yy RR (3.21)

Page 67: Note de Curs

Grafică Inginereasca-note de curs

71

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ρρ−ρρ

=ρ−=ρ −

1000010000cossin00sincos

)()]([ 1z zRR (3.22)

)()()()]()()([ 11 χ−θ−ρ−=ρθχ −−yxzzxy RRRRRR=R (3.23)

Datorită faptului că matricea de rotaţie este ortogonală şi ortonormată, inversa unei matrice de rotaţieeste egală cu transpusa acesteia.

3.2.3 Sisteme de coordonate

Pentru reprezentarea unui punct în spaţiul 3D se va alege un anumit sistem de

coordonate. Iată sistemul direct (fig.3.11): mâna dreaptă arată cu degetul arătător axa Ox, cu degetul mijlociu axa Oy, iar cu degetul mare axa Oz.

Sistemul indirect (sau al mâinii stângi) va avea axa Ox opusă. Cu alte cuvinte dacă privim planul xOy al unui sistem direct atunci axa Oz este în direcţia observatorului. În sistemul indirect axa Oz este în direcţie opusă (fig.3.129).

Pentru a repera un punct P al spaţiului, decidem să adoptăm sistemul direct, în care vom utiliza trei sisteme de coordonate: carteziene, sferice şi cilindrice. (fig3.13).

Poziţia lui P se specifică în coordonate sferice prin precizarea razei R, a unghiului φp (latitudinea) şi a unghiului θ p (longitudinea), cu precizarea că:

Fig.3.11. Sistemul mâinii

Fig. 3.12 Sistemul observatorului

R∈[0, ∞ ), θ∈[0,2π), φ∈[−π/2,π/2] Trecerea de la coordonate carteziene la sferice se face astfel:

- indirect - - direct -

Page 68: Note de Curs

Grafică Inginereasca-note de curs

72

222 zyxR ++= ⎪⎩

⎪⎨

+=

πππ

θkxyarctg )/(

2/32/

dacădacădacă

00,00,0

≠⟨=⟩=

xyxyx

unde k=0 pentru x > 0,y > 0;k=1 pentru x < 0; k=2 pentru x >0,y< 0;

( )⎪⎩

⎪⎨

≠+⟩=+⟨=+

+

−=

00,00,0

/2/2/

22

22

22

22 yxzyxzyx

dacădacădacă

yxzarctgππ

ϕ

Fig.3.13 Sisteme de coordonate: a) carteziene; b) sferice: c) cilindrice

Formulele de trecere de la coordonate sferice la carteziene sunt:

x = R cos θ cos φ; y = R sin θ cos φ; z = R sin φ.

Coordonatele cilindrice ale unui punct P sunt: cota(z), raza (R) şi unghiul (θ) cu: z ∈R, R∈[0, ∞ ), θ∈[0,2π). Trecerea din coordonate carteziene în cilindrice se realizează prin relaţiile: R= 22 yx + ; z=z; θ - după aceeaşi relaţie ca la coordonatele sferice, iar trecerea inversă, de la coordonate cilindrice la carteziene, este dată prin:

x = R cos θ; y =R sin θ; z = z.

3.3 Transformarea sistemelor de referinţă Interpretarea relaţiilor de transformări geometrice prezentate până acum a 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 mulţimi de puncte ale acestora (vârfuri) şi ele pot fi deplasate, reorientate sau redimensionate prin aplicarea transformărilor geometrice corespunzătoare.

O altă interpretare care se poate da operaţiilor de transformări geometrice este aceea de schimbare a sistemului de referinţă.

Se consideră sistemul de referinţă Oxyz şi un nou sistem de referinţă O’x’y’z’, a

cărui origine O’ este determinată în sistemul Oxyz prin coordonatele x0,y0,z0 ale

Page 69: Note de Curs

Grafică Inginereasca-note de curs

73

centrului O’. Sistemul de referinţă Oxyz este definit de versorii (vectori unitate) i, j, k, iar sistemul de referinţă O’x’y’z’ de versorii i’, j’, k’.

Axa O’x’ are cosinuşii directori c11, c12, c13 faţă de sistemul de referinţă Oxyz; axa O’y’ are cosinuşii directori c21, c22, c23 faţă de sistemul de referinţă Oxyz; axa O’z’ are cosinuşii directori c31, c32, c33 faţă de sistemul de referinţă Oxyz.

Matricea de transformare care descrie poziţionarea sistemului O’x’y’z’ relativ la sistemul de referinţă Oxyz este:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000zcccycrcxccc

0332313

0322212

0312111

M (3.24)

Fie un punct P definit prin coordonatele sale x,y,z în sistemul de referinţă Oxyz. Se demonstreză [Drag57], [Sab81], că în sistemul de referinţă O’x’y’z’ acest punct (notat P’) are coordonatele x’,y’,z’, care se obţin înmulţirea matricei -1M (care este inversa matricei M care defineşte poziţionarea sistemului O’x’y’z’ în sistemul Oxyz) cu matricea P de reprezentare a punctului P în sistemul de coordonate iniţial:

PM=P' -1 (3.25) Transformarea inversă, a unui punct P’(x’,y’,z’) din sistemul de referinţă

O’x’y’z’ în punctul P(x,y,z) în sistemul de referinţă Oxyz se obţine prin înmulţire cu matricea de transformare M:

MP'=P (3.26) Se poate urmări cu mai multă uşurinţă această modalitate de transformare într-un

caz simplu. Se consideră un sistem de referinţă Oxyz şi un alt sistem de referinţă O’x’y’z’ care are originea O’(x0,y0,z0) şi aceeaşi orientare a axelor de coordonate ca şi sistemul Oxyz.

Poziţionarea sistemului de referinţă O’x’y’z’ relativ la sistemul Oxyz este definită de matricea de transformare M; poziţionarea sistemului de referinţă Oxyz relativ la sistemul O’x’y’z’ este definită de matricea de transformare inversă -1M :

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000z100y010x001

0

0

0

M , ⎥⎥⎥⎥

⎢⎢⎢⎢

−−−

=

1000z100y010x001

0

0

0

-1M

Submatricea de rotaţie componentă a matricei M este matricea unitate, dat fiind că sistemul de referinţă O’x’y’z’ are axele cu aceeaşi orientare ca şi sistemul de referinţă. Într-adevăr, cosinuşii directori ai axelor O’x’,O’y’,O’z’ faţă de axele sistemului de referinţă Oxyz sunt (1,0,0), (0,1,0), (0,0,1) şi matricea de rotaţie este matricea unitate.

Un punct oarecare P(x,y,z) în sistemul de referinţă Oxyz, se transformă în punctul P’(x’,y’,z’) în sistemul de referinţă O’x’y’z’ printr-o translaţie cu –x0,–y0,–z0, deci :

Page 70: Note de Curs

Grafică Inginereasca-note de curs

74

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−

=

⎥⎥⎥⎥

⎢⎢⎢⎢

= −

1zyx

1000z100y010x001

1'z'y'x

;0

0

0

PMP' 1

Particularizarea pentru O’(4,2,0) şi P(6,3,0) este reprezentată în Fig. 3.14. Punctul P’(2,1,0) este transformatul punctului P în sistemul de referinţă O'x'y'z'.

În concluzie, aplicarea unei transformări definită printr-o matrice M, asupra unei

mulţimi de puncte definite într-un sistem de referinţă Oxyz, poate fi interpretată în mai multe moduri:

Fiecare punct este modificat şi capătă o nouă poziţionare în sistemul de referinţă Oxyz, conform cu matricea de transformare M.

Fiecare punct este transformat din sistemul de referinţă iniţial Oxyz într-un nou sistem de referinţă, O’x’y’z’, a cărui poziţie şi orientare relativ la sistemul de referinţă Oxyz este descrisă de matricea M-1.

Fiecare punct este transformat din sistemul de referinţă iniţial Oxyz într-un nou sistem de referinţă, O’x’y’z’. Poziţia şi orientarea sistemului Oxyz relativ la sistemul de referinţă O’x’y’z’ este descrisă de matricea M.

Şi încă o precizare: un sistem de referinţă nu este “materializat” în nici un fel într-un sistem grafic (în software sau hardware), ci este o convenţie cunoscută de programator sau utilizator. Trecerea de la un sistem de referinţă la altul se efectuează prin transformări aplicate punctelor (obiectelor): modificarea coordonatelor acestora le transferă dintr-un sistem de referinţă în altul. În acest sens, orice transformare geometrică poate fi considerată ca o schimbare a sistemului de referinţă. Dar, după cum se va observa în continuare, transformările geometrice sunt uneori considerate ca modificări ale obiectelor, iar în alte situaţii, ca schimbare a sistemului de referinţă. Este normal ca un începător în practica programării sistemelor grafice să pună o justificată întrebare: cum se poate şti care este interpretarea corectă a unei transformări? Răspunsul este că ambele interpretări sunt corecte, dar se alege aceea care permite urmărirea cea mai directă a unui raţionament pentru calculul unor transformări complexe. Nu există “reţete” unice şi sigure care să poată fi aplicate fără greşeală în orice situaţie, deci experienţa de proiectare îşi spune întotdeauna cuvântul.

x

y

z

O x'

y'

z'

O'

P(6,3,0) P'(2,1,0)

Fig.3.14 Transformarea sistemelor de referinţă.

Page 71: Note de Curs

Grafică Inginereasca-note de curs

75

În dezvoltarea sistemelor de vizualizare se folosesc, totuşi, câteva sisteme de referinţă bine definite, care permit specificarea cea mai simplă şi eficientă a operaţiilor 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 lucrării.

Sistemele de referinţă intermediare, care apar în descrierea unor transformări complexe, sunt interpretări ale operaţiilor de transformări geometrice care permit urmărirea unui raţionament de calcul. Exemplul următor evidenţiază acest aspect.

Exemplul 3.2 Se consideră sistemul de coordonate Oxyz şi o matrice de transformare RX(π/2)

care realizează o rotaţie cu unghiul π/2 în raport cu axa x:

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

1000001001000001

)2/(XR

Această transformare poate fi interpretată ca o transformare prin rotaţie cu 90° în raport cu axa x a fiecărui punct P(x,y,z), în punctul transformat P’(x’,y’,z’). În Fig.3.15 (a) este considerat punctul P(0,1,1), care se transformă în punctul P’(0,-1,1).

În Fig. 3.15(b) este reprezentată transformarea echivalentă a sistemului de coordonate Oxyz în sistemul de coordonate O’x’y’z’ folosind matricea de transformare inversă corespunzătoare, RX(-π/2): axa y se transformă în axa z’, iar axa z se transformă în axa –y’. Punctul P, de coordonate 0,1,1 în sistemul Oxyz, se transformă în punctul P’ de coordonate 0,-1,1 în sistemul O’x’y’z’.

Se pot verifica uşor rotaţiile cu un unghi de π/2 în raport cu celelalte axe de coordonate. Rotaţia cu π/2 faţă de axa y transformă sistemul de coordonate într-un sistem în care axa z se schimbă în axa x, iar axa x se schimbă în axa –z. Rotaţia cu π/2 faţă de axa z transformă sistemul de coordonate într-un sistem în care axa x se schimbă în axa y, iar axa y se transformă în axa –x.

Pentru deducerea matricelor unor transformări complexe se procedează prin

reducerea acestora la cazuri mai simple, pentru care se cunosc expresiile de calcul,

Fig. 3.15 Rotaţie cu π/2 în raport cu axa x. (a) Rotaţia punctelor cu π/2. (b) Rotaţia sistemului de coordonate cu -π/2.

y

x O

z

P(0,1,1)

x’ O’

y’

P’(0,-1,1)

z’

(b)

x

O

z

y

(a)

P(0,1,1)

P’(0,-1,1)

Page 72: Note de Curs

Grafică Inginereasca-note de curs

76

folosind transformări primitive succesive. Iniţial se aplică o transformare ajutătoare pentru aducerea obiectelor într-o poziţie sau sistem de referinţă adecvat, se execută transformarea dorită, după care se revine la poziţia sau sistemul de referinţă iniţial prin transformarea inversă celei aplicate iniţial.

Câteva exemple prezentate în continuare vor preciza acest mod de realizare a transformărilor geometrice compuse.

3.3.1 Rotaţia faţă de o axă paralelă cu una din axele sistemului de referinţă

Un exemplu ilustrativ de compunere a transformărilor geometrice este calculul

rotaţiei în raport cu o axă paralelă cu una din axele sistemului de referinţă. Se consideră o dreaptă d paralelă cu axa z a sistemului, care intersectează planul

Oxy în punctul I(tx,ty,0). Transformarea de rotaţie a obiectelor faţă de această axă nu poate fi realizată folosind matricea dedusă în paragraful precedent (relaţia 3.10), care presupune rotaţia faţă de o axă a sistemului de coordonate.

De aceea, se aplică mai întâi tuturor punctelor o transformare ajutătoare, translaţia cu T(– tx,– ty,0).Acestă transformare poate fi intrepretată în două moduri: ca o schimbare a sistemului de referinţă Oxyz în sistemul O’x’y’z’ , în care punctul I este transformat în punctul I’(0,0,0), sau ca o modificare a poziţiei tuturor punctelor din spaţiu, prin care punctul I este adus în originea sistemului de referinţă Oxyz.

x

y

O tx

ty I

y

O I O x x

y

I O

y

O

I O

x

),,( 0tt yx −−T )(ρZR ),,( 0tt yxT

(b)

(a)

x

y

O tx

ty I

y

O

I O’ O

x

y’

x’

x

y

O

O’ O

y’

x’

y

O

I O

x

),,( 0tt yx −−T )(ρzR ),,( 0tt yxT

Fig. 3.16 Rotaţia faţă de o dreaptă paralelă ca axa z a sistemului de referinţă: (a) considerând transformarea sistemelor de referinţă;

(b) considerând transformarea punctelor.

Page 73: Note de Curs

Grafică Inginereasca-note de curs

77

Dacă se consideră prima interpretare, operaţiile se continuă în noul sistem de referinţă O’x’y’z’, în care dreapta d se suprapune peste axa z’, deci se poate obţine rotaţia dorită cu un unghi ρ folosind matricea de rotaţie 3.10. După aceasta, se revine la sistemul de referinţă iniţial Oxyz, printr-o transformare inversă, T(tx, ty, 0).

Rezultă matricea compusă de rotaţie 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( yxyx −−ρ= TRTR Zd

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−−

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ρρρ−ρ

⎥⎥⎥⎥

⎢⎢⎢⎢

=

10000100t010t001

1000010000cossin00sincos

10000100t010t001

y

x

y

x

dR

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡ρ−ρ−ρρρ+ρ−ρ−ρ

=

10000100

sint)cos1(t0cossinsint)cos1(t0sincos

xy

yx

dR (3.27)

Acest proces este descris în Fig. 3.7 (a) pentru un unghi de 30 grade, cu reprezentarea unei proiecţii în planul Oxy.

În Fig. 3.7 (b) se prezintă aceleaşi transformări succesive necesare pentru realizarea rotaţiei în raport cu o dreaptă paralelă cu axa z a sistemului, considerând că transformarea iniţială T(-tx,-ty,0) transformă toate punctele din sistemul de referinţă Oxyz, astfel încât punctul I se suprapune peste originea O. Se remarcă faptul că, în această situaţie, este doar o diferenţă de interpretare, operaţiile şi rezultatul acestora fiind identic.

3.3.2 Scalarea faţă de un punct oarecare în spaţiu

Matricea de scalare din relaţia 3.4 efectuează scalarea faţă de originea sistemului de coordonate, prin care componentele x, y, z ale vectorului de poziţie OP al punctului P sunt multiplicate fiecare cu factorul de scalare corespunzător. Se poate defini o scalare faţă de un punct fix )z,y,x(F fff din spaţiu, prin care componentele vectorului FP sunt multiplicate cu factorii de scalare corespunzători.

Matricea de scalare faţă de un punct oarecare se poate deduce printr-o metodă asemănătoare celei prezentate anterior, prin compunerea a trei transformări elementare deja definite. 1. Se execută o translaţie cu )z,y,x( fff −−−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( zyxS . 3. Se efectuează o translaţie inversă celei aplicate la punctul 1, deci cu matricea

)z,y,x( fffT . Rezultă matricea de scalare cu factorii de scară zyx s,s,s faţă de un punct fix din

spaţiu )z,y,x(F fff : )z,y,x()s,s,s()z,y,x( fffzyxfff −−−= TSTSF

Page 74: Note de Curs

Grafică Inginereasca-note de curs

78

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000z100y010x001

10000s0000s0000s

1000z100y010x001

f

f

f

z

y

x

f

f

f

FS

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−

=

1000)s1(zs00)s1(y0s0)s1(x00s

zfz

yfy

xfx

FS (3.28)

3.3.3 Rotaţia faţă de o dreaptă oarecare în spaţiu

Urmărind un raţionament asemănător cu cele anterioare, se poate deduce matricea de rotaţie cu un unghi δ fată de o dreaptă oarecare D din spaţiu, dată printr-un punct D0(x0,y0,z0) şi vectorul unitate (versorul) d, având cosinuşii directori dx,dy,dz ( kjid zyx d+d+d= ). Paşii de transformare sunt următorii:

Translaţia cu matricea T(-x0,-y0,-z0), prin care punctul D0 ajunge în originea sistemului de referinţă.

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ă rotaţii în raport cu celelalte două axe.

Mai întâi se efectuează o rotaţe în raport cu axa x, cu un unghi α, astfel ca dreapta D să ajungă în planul Oxz. Pentru calculul unghiului α se consideră notaţiile din Fig. 3.8 (b).

OM este versorul dreptei D după translaţia efectuată în pasul precedent. Mx, My, Mz sunt intersecţiile planelor paralele cu planele sistemului de coordonate care trec prin punctul M, cu axele corespunzătoare (Mx este intersecţia planului paralel cu planul Oyz care trece prin M, cu axa x, etc.). Mxy, Myz, Mzx sunt proiecţiile punctului M pe planele Oxy, Oyz şi, respectiv, Ozx. Se pot scrie următoarele relaţii:

zzyyxx d=OM;d=OM;d=OM

2z

2yyzx d+d=d=MM

2z

2yyyzy

2z

2yzyzz d+dd=d/d=sin;d+dd=d/d=cos αα (3.29)

Rotaţia în raport cu axa x se efectuează în planul MMxyMzx. Punctul M, rotit cu unghiul α în planul MMxyMzx, se transformă în punctul M’ aflat în planul Ozx, pe dreapta MxMzx paralelă cu axa Oz, astfel că MMx = M’Mx = dyz.

A doua etapă pentru alinierea versorului OM al dreptei D cu axa z este o rotaţie cu unghiul β, efectuată în planul Ozx, în raport cu axa y. Pentru calculul unghiului β se urmăresc notaţiile din Fig. 3.8 (c). În triunghiul dreptunghic OM’Mx (unghiul drept în Mx) OMx= dx, OM’= 1, MxM’= dyz. Rezultă unghiul OM’Mx (notat unghiul β):

x2z

2yyz d=sin;d+d=d=cos ββ (3.30)

Page 75: Note de Curs

Grafică Inginereasca-note de curs

79

Rotaţia dreptei OM’ în planul Ozx faţă de axa Oy transformă punctul M’ în

punctul M’’ pe axa Oz printr-o rotaţie cu unghiul de valoare β în sens invers sensului pozitiv de rotaţie după axa y (a se revedea Fig. 3.17) Această transformare de aliniere a dreptei D cu axa z se exprimă matriceal astfel:

)()( αβ−= XYZ RRA 3. În acest pas se execută rotaţia dorită, cu unghiul δ în raport cu dreapta D, care

este aliniată cu axa z a sistemului, deci se poate scrie:

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡δδδ−δ

100001000cossin00sincos1

)(ZR

4. În pasul al patrulea se execută transformarea inversă celei de la pasul 2, deci cu o matrice )()( βα−=−

YX1

Z RRA . 5. În ultimul pas se execută transformarea de translaţie inversă, cu matricea

)z,y,x( 000T . Rezultă matricea compusă de rotaţie faţă de dreapta D cu unghiul δ:

)z,y,x()()()()()()z,y,x( 000000 −−−αβ−δβα−= TRRRRRTR XYZYXD (3.31) Valorile unghiurilor α şi β rezultă din cosinuşii directori ai axei de

rotaţie D şi au valorile date de relaţiile 3.29 şi 3.30.

3.4 Transformarea de modelare O scenă virtuală este compusă dintr-un număr oarecare de obiecte

tridimensionale amplasate în diferite poziţii în scenă. Tehnica de modelare a scenelor de dimensiuni mari (ca număr de obiecte sau ca volum ocupat de scenă) se bazează pe amplasarea modelelor obiectelor tridimensionale în sistemul de referinţă universal al scenei virtuale.

Fiecare obiect este modelat într-un sistem de referinţă local, prin alegerea celei mai convenabile origini şi orientări a axelor de coordonate ale acestuia. De exemplu, un cub se modelează cel mai convenabil într-un sistem de referinţă ales cu centrul în centrul cubului şi cu axele orientate paralel cu laturile cubului. Dacă se presupune că

Fig. 3.17 Alinierea dreptei D cu axa z.

y

x O

z

M

y

x

z

M dy

dz

Mxy

Mzx

Myz

Mz

Mx

My

dyz

M’

αO

y

x

z

M

dx

Mxy

Mx

dyz M’

O dyz

-β M’’

(a) (c) (b)

βMz

Myz

My

Mzx

Page 76: Note de Curs

Grafică Inginereasca-note de curs

80

latura cubului este egală cu 2 unităţi, atunci coordonatele vârfurilor cubului sunt (-1,-1,-1), (1,-1,-1), (1,1,-1), (-1,1,-1), (-1,-1,1), (1,-1,1), ( 1,1,1), (-1,1,1).

Modelul unui obiect, definit în sistemul de referinţă local, poate fi instanţiat (introdus) în scena virtuală printr-o transformare numită transformare de modelare (sau transformare de instanţiere). Mai mult, reprezentarea ierarhică a scenelor virtuale prin grafuri aciclice direcţionate, permite instanţierea de un număr oarecare de ori a fiecărui model, folosind matrice de transformare corespunzătoare. Acesta este modul cel mai frecvent de modelare a scenelor virtuale, care are suport în formatele şi limbajele de descriere a scenelor virtuale, cum este limbajul VRML.

În modelarea ierarhică a scenelor virtuale, operaţia de bază este transformarea de modelare, prin care toate punctele unui obiect (model tridimensional) sunt transformate din sistemul de referinţă local într-un alt sistem de referinţă, care poate fi sistemul de referinţă universal sau un alt sistem intermediar. Pentru început se consideră cea mai simplă transformare de modelare, dintr-un sistem de referinţă local în sistemul de referinţă universal.

În mod obişnuit, prima transformare care se aplică modelului este transformarea de scalare cu o matrice de scalare S(sx,sy,sz), executată în sistemul de referinţă local (faţă de originea acestuia), prin care obiectul este adus la dimensiunile dorite ale instanţei respective.

Poziţia unei instanţe a obiectului în scenă se defineşte printr-o matrice de transformare care conţine submatricea de rotaţie R, care defineşte orientarea sistemului de referinţă local O’x’y’z’ faţă de sistemul de referinţă universal Oxyz (al scenei virtuale) şi submatricea de translaţie T, care defineşte poziţia originii O’(x0,y0,z0) a sistemului de referinţă local în sistemul universal. Submatricea de rotaţie R poate fi specificată fie prin cosinuşii directori (c11, c12, c13), (c21, c22, c23), (c31, c32, c33) ai axelor sistemului local faţă de sistemul de referinţă universal, fie printr-o succesiune de rotaţii faţă de axele de coordonate ale sistemului de referinţă local:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

10000ccc0crc0ccc

332313

322212

312111

R sau )()()( ρθχ ZXY RRR=R

Rezultă matricea de transformare de modelare (instanţiere): )ss,s()z,y,x( z,yx000 SRTMI = (3.32)

Un punct P al obiectului în sistemul de referinţă model este transformat în punctul PI în sistemul de referinţă universal prin instanţierea:

PMP II = (3.33) Exemplul următor ilustrează crearea unei scene virtuale simple prin transformări

de instanţiere. Exemplul 3.3 Se consideră un cub ca latura de dimensiune 2, modelat într-un sistem de

referinţă local ales cu centrul în centrul cubului şi cu axele orientate paralel cu laturile cubului şi se construieşte o scenă virtuală (în sistemul de referinţă universal) în care se instanţiază patru obiecte pornind de la modelul cub.

Prima instanţiere este chiar cubul din sistemul de referinţă model, deci sistemul

Page 77: Note de Curs

Grafică Inginereasca-note de curs

81

de referinţă model are acelaşi centru şi aceeaşi orientare a axelor ca şi sistemul de referinţă universal; deci C1(0,0,0).

A doua instanţiere este un cub cu latura de 4 unităţi, cu orientarea sistemului de referinţă local cu axele de coordonate paralele cu axele sistemului de referinţă al scenei, amplasat cu centrul în punctul C2(0,-8,0).

A treia instanţiere este un paralelipiped dreptunghic, cu laturile de dimensiuni 4,2,4, amplasat cu centrul în poziţia C3(8,0,0). Sistemul de referinţă local are axa z’ paralelă cu axa z a sistemului universal, iar axele x’ şi y’ sunt rotite cu un unghi de π/4 faţă de axa x şi, respectiv, y a sistemului universal.

A patra instanţiere este un paralelipiped dreptunghic, cu laturile de dimensiuni 4,2,4, amplasat cu centrul în poziţia C4(-8,0,0). Sistemul de referinţă local are axa z’ paralelă cu axa z a sistemului universal, iar axele x’ şi y’ sunt rotite cu un unghi de -π/4 faţă de axa x şi, respectiv, y a sistemului universal.

Pentru crearea scenei se calculează pe rând cele trei matrice de instanţiere. Matricea de instanţiere M1 este chiar matricea identitate: M1 = I. Pentru calculul matricei de instanţiere M2, se deduc în mod foarte simplu

matricele S2=S(2,2,2), R2=I, şi T2=T(0,-8,0), deci: )2,2,2()0,8,0( STM 2 −= . Pentru calculul matricei de instanţiere M3, se poate scrie S3=S(2,1,2),

R3=RZ(π/4), T3=T(8,0,0), deci: )2,1,2()4/()0,0,8( SRTM Z3 π= . Pemtru calculul matricei de instanţiere M4, se poate scrie: S4=S(2,1,2),

R4=RZ(-π/4), T4=T(-8,0,0), )2,1,2()4/-()0,0,8-( SRTM Z4 π= . Scena virtuală virtuală rezultată este redată în Fig. 3.18. Axele de coordonate

reprezentate în imagine sunt axele sistemului de referinţă universal. În centrul sistemului de referinţă universal este reprezentat primul cub, cu aceleaşi dimensiuni ca cele ale modelului. Cubul din partea de jos a imaginii se obţine prin transformarea de instanţiere P2 = M2 P; paralelipipedul din dreapta se obţine prin transformarea de instanţiere P3 = M3 P; paralelipipedul din stânga se obţine prin transformarea de instanţiere P4 = M4 P.

Reprezentarea de mai jos conţine şi o transformare de proiecţie perspectivă,

pentru percepţia adâncimii care va fi explicată ulterior. Una din feţele cubului (cea mai

Fig. 3.18 Scenă virtuală rezultată prin instanţierea mai multor obiecte.

Page 78: Note de Curs

Grafică Inginereasca-note de curs

82

apropiată de observator) este desenată ca suprafaţă de o culoare gri; celelalte feţe ale cubului sunt reprezentate numai prin muchiile lor (reprezentare numită “cadru de sârmă”, wireframe) 3.5 Alte transformări geometrice în spaţiu

Printre alte transformări în spaţiul tridimensional care se pot aplica obiectelor,

cele mai importante sunt transformarea de simetrie şi transformarea de forfecare. Transformarea de simetrie. O transformare de simetrie (oglindire) a unui

punct P faţă de un plan π calculează un punct P’ aflat pe o dreaptă Δ perpendiculară pe planul π, la o distanţă egală cu distanţa lui P faţă de planul dat. Pentru cazul particular în care planul de simetrie este unul din planele sistemului de coordonate, simetricul unui punct este punctul care are coordonatele pe cele două axe ale planului egale şi coordonata pe cealaltă axă a sistemului de coordonate cu valoare negată.

Se pot deduce simplu matricele de transformare de simetrie relative la planele sistemului de referinţă:

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

=

⎥⎥⎥⎥

⎢⎢⎢⎢

−=

1000010000100001

,

1000010000100001

,

1000010000100001

ZXYZXY SSS (3.34)

Transformarea de simetrie faţă de un plan oarecare se poate calcula folosind o secvenţă de transformări elementare (E3.2).

Dacă se consideră transformarea de simetrie ca o transformare aplicată unui sistem de coordonate dat, sistemul de coordonate rezultat are convenţia de orientare a axelor inversă faţă de convenţia iniţială. De exemplu, sistemul drept Oxyz se transformă prin simetria Sxy într-un sistem de coordonate orientat după regula mâinii stângi (Fig. 3.19).

Transformarea de forfecare (shear) este o transformare care modifică forma şi

dimensiunea obiectului transformat. Transformările de forfecare cele mai simple sunt cele definite faţă axele sistemului de coordonate.

Forfecarea după axa x a sistemului de coordonate modifică un punct P(x,y,z) în punctul P’(x’,y’,z’), astfel că:

y

x O

z

y’

x’ O’

z’

SXY

Fig. 3.19 Transformarea de simetrie SXY transformă sistemul de coordonate drept Oxyz în sistemul de coordonate stâng O’x’y’z’.

Page 79: Note de Curs

Grafică Inginereasca-note de curs

83

z'z;y'y;bzayx'x ==++= În forma matriceală în coordonate omogene, forfecarea după axa x se scrie

astfel:

XFPP'= , unde ⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000010000100ba1

)b,a(XF (3.35)

În mod similar se definesc matricele de forfecare pe axele y şi z:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

100001000d1c0001

)d,c(YF , ⎥⎥⎥⎥

⎢⎢⎢⎢

=

100001fe00100001

)f,e(ZF (3.36)

Transformarea de forfecare este folosită în definirea sistemelor de proiecţie.

3.6 Transformări geometrice în plan

Uneori sunt necesare transformări geometrice în planul bidimensional. Exprimarea matriceală unitară a transaformărilor geometrice în plan se poate face într-un sistem de coordonate omogene definit în mod asemănător sistemului de coordonate omogene în spaţiu: unui punct P(x,y) în plan îi corespunde un punct P(X,Y,w), cu relaţiile între coordonate: w/Yy;w/Xx == , unde factorul de scară w este diferit de zero. Transformările geometrice în planul bidimensional pot fi definite prin matrice de transformare de dimensiune 3x3. Pentru transformările geometrice primitive în plan, matricele de transformare se deduc simplu, ca o particularizare a transformărilor geometrice spaţiale. Acestea au următoarele expresii: Translaţia cu valorile tx şi ty:

⎥⎥⎥

⎢⎢⎢

⎡==

100t10t01

)t,t( unde ,)t,t( y

x

yxyx TPTP' (3.37)

Scalarea faţă de origine, cu factorii de scară sx, sy:

⎥⎥⎥

⎢⎢⎢

⎡==

1000s000s

)s,s( unde ,)s,s( y

x

yxyx SPSP' (3.38)

Rotaţia faţă de origine cu un unghi θ:

⎥⎥⎥

⎢⎢⎢

⎡θθθ−

=θθ=1000cossin0sinθcos

)( unde ,)( R PRP' (3.39)

Transformări complexe în plan se pot defini, la fel ca şi în spaţiu, prin compunerea (produs) de matrice de transformări primitive. Toate transformările între sisteme de referinţă în plan pot fi considerate cazuri particulare ale transformărilor corespunzătoare în spaţiu.

Page 80: Note de Curs

Grafică Inginereasca-note de curs

84

Capitolul 4 4.1. OBIECTE GRAFICE 4.1.1 Obiecte elementare Din punct de vedere informatic, un sistem grafic poate fi definit complet dacă se precizează obiectele grafice elementare care îl compun şi operaţiile pe care le putem aplica acestora. Obiectele ce pot face parte dintr-un sistem grafic sunt descrise în continuare prin modalitatea de definire si construcţie. Punctul - obiect elementar ce poate fi definit prin coordonatele sale (xp, yp, zp). Segmentul - este o mulţime de puncte situate pe o dreaptă cuprinse intre două puncte numite extremităţi. Dacă | PQ | este segmentul cu P(xmin, ymin, zmin) şi Q (xmax, ymax, zmax) atunci … X∈ |PQ | X= (x, y, z) rezultă: xmin ≤ x ≤ xmax, ymin ≤ y ≤ ymax, zmin ≤ z ≤ zmax. Cercul în spaţiul R3 poate fi definit cu ajutorul a trei puncte: două care să fie extremităţile unui diametru al cercului şi cel de-al treilea pe circumferinţă pentru a defini planul cercului. Centrul cercului, raza şi ecuaţia planului ce conţine cercul pot fi uşor calculate numai din coordonatele acestor trei puncte. Elipsa. Un mod de a defini o elipsă prin puncte în 3D este bazat pe metoda distanţei constante faţă de cele două puncte denumite focare. O elipsă poate fi definită si prin trei puncte care pot fi: două puncte care reprezintă focarele elipsei iar al treilea punct se găseşte oriunde pe circumferinţă, dar ales astfel ca cele trei puncte să nu fie coliniare. Cele trei puncte definesc planul elipsei, lungimea focală şi curba eliptică. Polilinii. Poliliniile în 3D sunt o generalizare a celor din 2D. Ele pot fi definite cu ajutorul a n vârfuri (xi , yi, zi) … i =1,..,n. segmentele ce compun polilinia nu trebuie să fie situate în acelaşi plan. Spline. Curbele spline 3D sunt curbe în 3D ce aproximează o polininie, deci este suficient să dăm cele n puncte(xi , yi, zi) … i =1,..,n, iar formula din 2D se generalizează pentru 3D. Triunghi şi suprafeţe poligonale. Suprafaţa poligonală este aria cuprinsă între muchiile unui poligon ( muchii situate în acelaşi plan). Singurul poligon la care muchiile sunt situate totdeauna în acelaşi plan este triunghiul. De aceea suprafeţele poligonale se reprezintă ca fiind o alăturare de suprafeţe triunghiulare din acelaşi plan. Sfera. O secţiune dintr-o sferă este un cerc, oricare ar fi planul de secţiune. De aceea sfera se va trasa cu ajutorul cercului. Sfera poate fi definită în 3D prin două puncte: unul este centrul sferei iar celălalt este un punct oarecare de pe suprafaţa sferei; sau de două puncte, extremităţile diametrului secţiunii maximale. Elipsoid, sferoid şi suprafeţe cuadrice. Un elipsoid este o suprafaţă dată de ecuaţia:

,1222

=⎟⎠⎞

⎜⎝⎛ −

+⎟⎠⎞

⎜⎝⎛ −

+⎟⎠⎞

⎜⎝⎛ −

czz

byy

axx ccc

Page 81: Note de Curs

Grafică Inginereasca-note de curs

85

unde C(xc, yc, zc) este centrul elipsoidului, iar a, b, c sunt parametrii reprezentând dimensiunile elipsoidului pe semiaxele Ox, Oy, Oz. Dacă doi dintre parametrii a, b, sau c sunt egali, atunci elipsoidul se numeşte sferoid, iar dacă toţi cei trei parametri sunt egali atunci se obţine sfera. Pământul este de exemplu aproximat cu un sferoid. Suprafeţele cuadrice sunt generalizări ale sferelor şi elipsoizilor. Ele au ecuaţia: .0222 =+++++++++ lkzhygxfxyezxdyzczbyax

Suprafeţe generate. Ecuaţiile suprafeţelor generate în 3D sunt: x = f(u, v) y = g(u, v) z = h(u, v)

unde u, v sunt parametrii suprafeţei curbilinii.

Parametrii u, v pot fi aleşi ca sistem de coordonate, iar curbele obţinute pentru u constant sau v constant pot fi trasate pe suprafaţă. Familia de curbe pentru u constant poate fi trasată ( ca şi cea pentru v constant) drept curbe spline, iar suprafaţa poate fi numită suprafaţă spline şi trasată cu ajutorul curbelor spline.

4.1.2. Parabole spline

O problemă frecventă în grafica asistată apare în procesul trasării interactive a

curbelor. Viteza de prelucrare a punctelor descrise de mâna umană cu un mouse pe ecran este mică, astfel încât curba apare discontinuă, înregistrând şi ezitările în trasare. Produsele de grafică, oferă instrumente care corectează aceste deficienţe, instrumente bazate pe folosirea unui set de puncte de control. Curba trasată interactiv va trece prin aceste puncte sau printr-o vecinătate controlată, asigurând şi proprietatea de netezime.

Parabola spline este o reuniune de arce parabolice obţinute cu ajutorul punctelor de control P1, P2,….,Pn: primul arc trece prin P1, P2, P3, următorul prin P2, P3, P4, iar ultimul trece prin punctele Pn-2, Pn-1, Pn,

Pentru a găsi formula unui arc parabolic considerăm ecuaţia y = ax2+ bx+ c şi înlocuim în aceasta coordonatele punctelor din plan prin care trece parabola: P1 = (x1,y1), P2 = (x2,y2), P3 = (x3,y3). Obţinem o mulţime de ecuaţii liniare pentru a,b,c:

3

2

1

yyy

cba

V =⋅ ,

unde V este matricea Vandermonde: 111

323

222

121

xxxxxx

V = .

Prin inversarea acestei matrice obţinem soluţia pentru a,b,c:

3

2

11

yyy

Vcba

−=

Din P2, P3 şi P4 obţinem parametrii celui de-al doilea arc parabolic a',b',c' . Trasând arcul din prima parabolă de la P1 la P2 şi arcul din cea de-a doua parabolă de la P2 la P3

Page 82: Note de Curs

Grafică Inginereasca-note de curs

86

ş.a.m.d. obţinem curba căutată. În P2 tangenta la primul arc are panta: m=2ax2+ b, iarla al doilea are panta: m'=2a'x2+b', însă acestea nu sunt în mod necesar egale. Trasarea curbei în această manieră produce o curbă nenetedă (dacă prima derivată nu este continuă). O mai bună aproximare este de a determina a, b, c şi apoi de a trasa arcul de la P1 la P2 iar apoi de a păstra panta m în P2. Următorul arc este determinat de panta m în P2 ; arcele următoare se determină în mod similar. Ecuaţiile de rezolvat în acest caz sunt:

⎪⎩

⎪⎨

+=++=++=

''2''''''

2

3233

2222

bxamcxbxaycxbxay

Şi în acest caz sistemul poate fi rezolvat algebric. O altă problemă care apare în legătură cu parabolele spline este cea a reflectării arcului. Această problemă este prezentată în fig. 4.1, în care ultimul arc îndeplineşte condiţia de pantă în P3 , dar poate fi orientat spre interior sau spre exterior.

Se observă că şi arcul reflectat îndeplineşte condiţiile cerute: trece prin P3, P4, iar panta tangentei este aceeaşi (m). Pentru a "reflecta" un arc putem descrie formulele astfel. Să presupunem că reflectăm arcul de la P3 la P4. Fiecare punct va fi transferat într-o nouă poziţie, punctul (x, y) va fi mutat în punctul (xrefl, yrefl ) unde:

( ) ( )

( ) ( )mM

MxymmxyMy

mMMxymxy

x

refl

refl

−−−−

=

−−−−

=

22

22

În aceste ecuaţii M este panta dreptei ce uneşte P2 cu P3 :

23

23

xxyyM

−−

=

Când trebuie reflectat un arc parabolic? Determinăm dacă un punct următor consecutiv se găseşte pe arcul precedent şi

dacă nu reflectăm arcul. Exemple de parabole spline sunt date în fig.1.25:

P2

P1

P4

P3

P1

P4

P3

Fig.4.1. Reflexia unui arc de parabolă spline

Fig. 1.25. Parabole spline

Page 83: Note de Curs

Grafică Inginereasca-note de curs

87

Capitolul 5

I. Sisteme de vizualizare Un sistem de vizualizare este definit printr-o colecţie de sisteme de referinţă,

convenţii de reprezentare şi relaţii (matriceale) de transformare care permit executarea unei succesiuni de transformări care au ca efect punerea în corespondenţă (mapping) a punctelor din sistemul de referinţă de modelare (modelling coordinate space) cu puncte ale suprafeţei de vizualizare (view surface).

Într-un sistem de vizualizare, generarea imaginii scenei virtuale este un proces complex care poate fi parcurs prin reprezentări în mai multe sisteme de referinţă, fiecare sistem de referinţă facilitând specificarea şi executarea anumitor operaţii (Fig. 5.1). În multe lucrări, generarea imaginii de mai este denumită şi vizualizarea sau redarea scenelor (viewing, rendering). Pe parcursul lucrării vor fi utilizaţi toţi aceşti termeni.

Obiectele tridimensionale componente ale scenei sunt modelate şi reprezentate în sisteme de referinţă locale (sau de modelare), care au originea şi orientarea alese cel mai convenabil pentru reprezentarea obiectelor respective.

Pentru construirea scenei, obiectele specificate în sistemul de referinţă de modelare sunt instanţiate prin aplicarea unei succesiuni de transformări geometrice, care constitue transformarea de modelare (descrisă în capitolul 3). Prin transformarea de modelare se obţine descrierea obiectelor într-un sistem de referinţă unic al scenei virtuale, numit sistemul de referinţă universal. În sistemul de referinţă universal mai sunt definite şi alte elemente necesare redării realiste a scenelor, cum sunt sursele de lumină sau traiectoriile de modificare a poziţiei obiectelor mobile în scenă.

În sistemul de referinţă universal se defineşte un sistem de referinţă de observare

Transformare de modelare

Transformare de observare

Transformare de normalizare

Transformare în ecran 3D

Fig. 5.1 Succesiunea operaţiilor de vizualizare.

Transformare de rastru

Definire obiecte

Sistem de referinţă

local

Definire sistem de referinţă

de observare

Sistem de referinţă universal

Definire proiecţie şi volum de vizualizare

Sistem de referinţă de observare

Decupare

Împărţire cu w

Calcul proiecţie

Sistem de referinţă normalizat

Sistem de referinţă ecran 3D

Afişare imagine

Sistem de referinţă

imagine

Page 84: Note de Curs

Grafică Inginereasca-note de curs

88

(view reference), care specifică punctul şi direcţia din care este privită (observată) scena. Este evident că, pentru aceeaşi scenă, imaginea care se redă pe display depinde de punctul şi direcţia din care este observată scena, deci de felul în care este definit sistemul de referinţă de observare (care mai este denumit şi sistem de referinţă ochi- eye coordinate space). Transformarea obiectelor din sistemul de referinţă universal în sistemul de referinţă de observare este numită transformare de observare (sau de vizualizare – view transform; s-a evitat, însă, această traducere, datorită suprautilizării termenului de vizualizare).

În sistemul de referinţă de observare se poate face o analogie simplă cu modul în care este privită o scenă reală prin ochiul uman sau printr-un aparat fotografic (cameră). Poziţia şi orientarea sistemului de referinţă de observare corespund poziţiei şi orientării ochiului sau a camerei într-o scenă reală. Dintr-un punct de observare dat, numai o parte a scenei poate fi văzută, restul aflându-se în spatele sau în părţile laterale ale direcţiei de observare. Partea vizibilă din scenă (reală sau virtuală) este definită ca volum de vizualizare (viewing volume), care, în general, este o piramidă (sau un trunchi de piramidă) cu centrul în punctul de observare şi cu direcţia dată de direcţia de observare. În redarea scenelor, deschiderea unghiulară a piramidei de vizualizare defineşte câmpul de vizualizare (field of view), care este o caracteristică importantă a sistemelor grafice.

Deşi există şi unele dispozitive de afişare tridimensională, majoritatea sistemelor grafice afişează imaginile pe o suprafaţă plană a unui dispozitiv de afişare (display). De aceea, în succesiunea operaţiilor de vizualizare a obiectelor sau a scenelor tridimensionale, este necesară introducerea unei proiecţii, care converteşte spaţiul tridimensional într-o reprezentare bidimensională. În general, proiecţiile transformă spaţiul Rn în spaţiul Rm, unde m < n.

Modul în care se realizează proiecţia obiectelor tridimensionale se defineşte în sistemul de referinţă de observare prin mai mulţi parametri, dintre care cei mai importanţi sunt: tipul proiecţiei şi planul de vizualizare (view plane). Intersecţia dintre planul de vizualizare şi piramida de vizualizare defineşte o regiune plană numită fereastră de vizualizare (view plane window) în care sunt reprezentate toate imaginile bidimensionale ale obiectelor (sau părţilor de obiecte) vizibile din scenă.

În grafica tridimensională există mai multe posibilităţi de definire a sistemelor de vizualizare, de la definiri simple, utile în mici programe grafice, până la definiri complete, care permit crearea simultană a mai multor imagini ale scenei, în ferestre de vizualizare diferite. În majoritatea acestor sisteme de vizualizare, din motive de eficienţă şi precizie a calculelor (care sunt explicate mai jos), transformarea de proiecţie se execută în două etape: prima etapă este o transformare de normalizare, care este o schimbare a sistemului de referinţă de la sistemul de referinţă de observare la sistemul de referinţă normalizat. Volumul de vizualizare definit în sistemul de referinţă de observare este transformat în sistemul de referinţă normalizat într-un volum canonic (în general, un paralelipiped dreptunghic).

În sistemul de referinţă normalizat (normalized coordinates) se execută decuparea obiectelor (clipping), astfel încât obiectele sau părţile din obiecte care se află în afara volumului de vizualizare (volumul canonic) sunt eliminate (ignorate pentru operaţiile următoare de redare, nu şterse din scenă).

Următoarea transformare geometrică este transformarea din sistemul normalizat în sistemul de referinţă ecran tridimensional (three-dimensional sceen), prin care fereastra definită în planul de vizualizare este transformată într-o regiune

Page 85: Note de Curs

Grafică Inginereasca-note de curs

89

corespunzătoare zonei de afişare pe display, numită poartă (viewport), iar coordonata z se păstrează nemodificată. În sistemul de referinţă ecran 3D se calculează coordonatele tridimensionale ale punctelor din coordonatele omogene prin împărţirea cu w, după care se execută transformarea de rastru (rasterization). Transformarea de rastru calculează mulţimea pixelilor care aparţin unui segment sau poligon dat prin coordonatele vârfurilor. Prin această transformare (care se mai numeşte şi conversie de baleiere – scan conversion) spaţiul bidimensional continuu al porţii de afişare este convertit în spaţiul bidimensional discret al imaginii. În general, concomitent cu transformarea de rastru sunt executate şi alte operaţii: eliminarea suprafeţelor ascunse (hidden surface removal), umbrirea (shading), texturarea (texturing).

Aceasta este succesiunea cea mai generală a operaţiilor de vizualizare a scenelor, care este descrisă şi utilizată în momentul de faţă în grafică şi realitatea virtuală. Trebuie însă remarcat faptul că evoluţia tehnologică, deosebit de spectaculoasă în acest domeniu, a modificat, uneori substanţial, modul de abordare a generării imaginii obiectelor tridimensionale. De exemplu, posibilitatea de implementare eficientă (uneori chiar în hardware) a operaţiei de comparare a adâncimii punctelor a impus utilizarea algoritmului cunoscut sub numele de algoritm Z-buffer şi a condus la ignorarea completă a altor algoritmi de eliminare a suprafeţelor ascunse, care în sistemele mai vechi aveau o mare importanţă şi implicaţie asupra întregii succesiuni de operaţii grafice. Se pot da numeroase exemple de modul în care schimbările tehnologice au influienţat abordarea graficii tridimensionale, şi, probabil, astfel de influienţe vor continua să apară şi în viitor. De aceea, lucrarea îşi propune să prezinte aspectele esenţiale ale graficii utilizate în realitate virtuală, mai puţin influienţate de contextul tehnologic de moment.

5.1 Transformarea de observare

Transformarea de observare este analogă cu poziţionarea unei camere

fotografice sau de înregistrare, prin care se observă o anumită zonă din scena virtuală. În sistemul de referinţă universal sunt reprezentate toate obiectele (modelele) scenei virtuale, iar în fiecare cadru al imaginii (frame), este generată imaginea acelor obiecte din scenă care sunt vizibile din punctul de observare curent (view point).

Transformarea de observare este, aşadar, o schimbare a sistemului de coordonate de la sistemul de referinţă universal la sistemul de referinţă de observare (view coordinate). În majoritatea aplicaţiilor de realitate virtuală (simulatoare, aplicaţii în arhitectură, etc) scena virtuală reprezentată în sistemul de referinţă universal este menţinută într-o poziţie constantă (cel mult existând anumite obiecte mobile în scenă), iar observatorul este cel care îşi modifică poziţia şi orientarea, şi în funcţie de acestea se redă imaginea corespunzătoare pe ecran. Direcţia de observare a scenei este, în majoritatea sistemelor de vizualizare, direcţia axei z a sistemului de referinţă de observare.

Localizarea şi orientarea sistemului de referinţă de observare OVxVyVzV în raport cu sistemul de referinţă universal Oxyz poate fi descrisă printr-o matrice de transformare M de forma generală:

Page 86: Note de Curs

Grafică Inginereasca-note de curs

90

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

==

1000zcccycccxccc

10000ccc0ccc0ccc

1000z100y010x001

V332313

V322212

V312111

332313

322212

312111

V

V

v

VV RTM (5.1)

Matricea componentă TV este matricea de translaţie a sistemului de referinţă de observare în raport cu sistemul de referinţă universal: VVV z,y,x sunt coordonatele punctului de observare OV în sistemul Oxzy. Matricea de rotaţie RV reprezintă orientarea sistemului de referinţă de observare faţă de sistemul de referinţă universal: coeficienţii c11, c12, c13 sunt cosinuşii directori ai axei OVxV faţă de axele Ox, Oy, respectiv Oz; coeficienţii c21, c22, c23 sunt cosinuşii directori ai axei OVyV faţă de axele Ox, Oy, respectiv Oz; coeficienţii c31, c32, c33 sunt cosinuşii directori ai axei OVzV faţă de axele Ox, Oy, respectiv Oz.

Fiind dată matricea de poziţionare şi orientare a sistemului de referinţă observator relativ la sistemul de referinţă universal M, un punct oarecare P(x,z,y) din sistemul Oxyz se transformă în punctul PV(xV,yV,zV) în sistemul de referinţă observator prin înmulţire cu matricea inversă, deci:

PMPTRPMP V1

V1

V1

V === −−− (5.2) unde matricea de transformare de observare MV este inversa matricii de localizare a sistemului de referinţă de observare relativ la sistemul de referinţă universal:

1V

−= MM . Matricea de rotaţie mai poate fi precizată şi printr-o succesiune de rotaţii în

raport cu axele sistemului de referinţă universal. Cea mai obişnuită convenţie pentru ordinea de specificare a rotaţiilor este: ruliu cu unghiul ρ (după axa z), tangaj cu unghiul θ (după axa x) şi giraţie cu unghiul χ (faţă de axa y). În această situaţie:

)()()( ρθχ= ZXYV RRRR şi rezultă:

PTRRRPTRP YXZ1

V-1VV )z,y,x()()()( vvV −−−χ−θ−ρ−== − (5.3)

În aceste relaţii de transformare de observare s-a presupus că sistemul de

referinţă de observare este tot un sistem drept, la fel ca şi sistemul de referinţă universal. Există însă şi sisteme de vizualizare în care se defineşte sistemul de referinţă de observare ca un sistem orientat după regula mâinii stângi. Pentru schimbarea sistemului de referinţă de observare drept în sistem de referinţă stâng, se adaugă o transformare de oglindire (simetrie), de exemplu cu matricea SXY, iar matricea de transformare de observare devine M’V, unde:

VXYV MS=M' Dat fiind că nu există o predilecţie certă pentru una din aceste convenţii posibile

(sistem de referinţă de observare drept sau stâng), este necesar să fie precizată de fiecare dată convenţia folosită, ceea ce se va face şi pe parcursul acestei lucrări.

În deducerea relaţiilor 4.2 şi 4.3 s-a presupus că este cunoscută matricea M de localizare a sistemului de referinţă de observare faţă de sistemul de referinţă universal şi atunci matricea de transformare de observare MV se calculează ca matrice inversă a acesteia. Există situaţii în care matricea M nu este cunoscută şi atunci matricea de transformare de observare MV (sau M’V) trebuie să fie calculată prin diferite transformări geometrice şi raţionamente. În exemplul următor se urmăreşte un

Page 87: Note de Curs

Grafică Inginereasca-note de curs

91

raţionament de calcul al transformării de observare, pentru o anumită cerinţă de observare a scenei.

Exemplul Se poate defini un sistem de referinţă de observare pornind de la alte condiţii

decât cele prezentate mai sus. De exemplu, se cere definirea matricii de transformare de observare în situaţia în care obiectul care trebuie să fie văzut se află în centrul sistemului de referinţă universal, iar punctul de observare este un punct dat în spaţiul tridimensional, E(xE, yE, zE).

Pentru ca obiectul aflat în centrul sistemului de referinţă universal să fie văzut din punctul E dat, se defineşte sistemul de referinţă de observare drept cu centrul în punctul E, şi cu axa zV orientată pe dreapta OE (cu sensul de la O către E). Direcţia de observare într-un sistem de referinţă drept este definită (în majoritatea sistemelor de vizualizare) în sens invers direcţiei axei z, deci către centrul O.

Calculele de transformare se efectuează mai uşor dacă se dau coordonatele sferice ale punctului E: distanţa μ a punctului E faţă de origine şi unghiurile θ şi φ (Fig. 5.2). Coordonatele carteziene ale punctului E pot fi calculate în funcţe de coordonatele sferice:

φμ=θφμ=θφμ=

coszcossinycossinx

E

E

E

Pentru transformarea unui obiect din sistemul de referinţă universal în sistemul de referinţă de observare astfel definit, sunt necesare trei transformări elementare. În Fig. 5.2 sunt reprezentate primele două transformări componente ale transformării de observare.

Translaţia T1 = T(–xE, –yE, –zE) transformă sistemul de referinţă universal într-

un sistem de referinţă cu centrul în punctul E şi cu axele x’, y’, z’ paralele cu axele sistemului de referinţă universal.

x

y

E

θ

φ y’

z z’

x’

Exy

(a)

x

y

E

θ

y’

z z’

x’

Exy

(b)

Fig. 5.2 Transformarea de observare: (a) translaţia (b) rotaţia în raport cu axa z’.

Page 88: Note de Curs

Grafică Inginereasca-note de curs

92

⎥⎥⎥⎥

⎢⎢⎢⎢

φμ−φθμ−φθμ−

=

1000cos100

sinsin010sincos001

1T

Orientarea sistemului de referinţă de observare astfel încât axa z’ să se suprapună peste dreapta OE se obţine prin două rotaţii.

Prima rotaţie se efectuează în raport cu axa z’ cu un unghi de 90° – θ în sens negativ, astfel încât noua axă x’’ obţinută să fie normală la planul care trece prin axa z şi punctul E (planul OEExy) (Fig. 5.2(b)). Această operaţie este echivalentă cu o rotaţie în sens direct aplicată asupra punctelor, deci cu matricea R2 = RZ(90°– θ), unde

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡θθθ−θ

=

1000010000sincos00cossin

2R

După această rotaţie, sistemul observator are axa x’’ perpendiculară pe planul planul OEExy şi axa Ez’’ în planul OEExy.

A doua rotaţie este o rotaţie a sistemului de coordonate Ex’’y’’z’’ în sens negativ cu un unghi egal cu φ în raport cu axa Ex’’, pentru a suprapune axa Ez’’ peste dreapta OE (Fig. 5.3(a)). Acestă rotaţie este echivalentă cu o rotaţie inversă aplicată obiectelor, deci cu matricea R3 = RX(φ ):

⎥⎥⎥⎥

⎢⎢⎢⎢

φφφ−φ

=

10000cossin00sincos00001

3R

Rezultă matricea de transformare de observare:

)z,y,x()90()( EEE −−−θ−°φ= TRRM ZXV

Fig. 5.3Transformarea de observare: (c) rotaţia în raport cu axa x’’(d) sistemul de referinţă rezultat

(c) (d)

x

y

E φ

y’’

z z’’

x’’

Exy x

y

E

yV

z zV

xV O

Page 89: Note de Curs

Grafică Inginereasca-note de curs

93

⎥⎥⎥⎥

⎢⎢⎢⎢

μ−φφθφθφ−φθφθ

θ−θ

=

1000 cossinsin sin cos

0sincossin cos cos00cossin

VM

Transformarea unui punct P(x,y,z) din sistemul de referinţă universal în punctul P(xV,yV,zV) în sistemul de referinţă observator se obţine astfel:

[ ] [ ]TTVVV 1zyx1zyx VM=

În Fig. 5.4 este reprezentată imaginea unui cub cu centrul în origine şi laturile egale cu 2 şi paralele cu axele de coordonate, observat din punctul E(10,10,10). Pentru punctul E:

'4554,36sin,33cos

45,22sin,22cos

310

o

o

=φ=φ=φ

=θ=θ=θ

Matricea de transformare de observare are valoarea:

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

−−

=

1000310333333

0366666002222

VM

Centrul O al sistemului de referinţă universal se transformă în punctul ( )39-,0,0'O în sistemul de referinţă de observare, iar vârful cubului P(1,1,1), se

transformă în punctul ( )310-,0,0'P . Direcţia de observare trece printr-un vârf al cubului şi prin centrul lui.

ν

5.2 Transformarea de proiecţie

Proiecţia unui obiect tridimensional pe un plan (numit plan de proiecţie sau plan de vizualizare – view plane) este formată din mulţimea punctelor de intersecţie între acest plan şi dreptele numite proiectori, care pornesc dintr-un punct fix numit centru de

x y

z

Fig. 5.4 Exemplu de observare către centrul sistemului de referinţă universal.

Page 90: Note de Curs

Grafică Inginereasca-note de curs

94

proiecţie şi trec prin fiecare punct al obiectului. În funcţie de distanţa centrului de proiecţie faţă de planul de proiecţie, proiecţiile

plane se clasifică în proiecţii perspectivă şi proiecţii paralele. În proiecţiile perspectivă centrul de proiecţie se află la distanţă finită faţă de planul de vizualizare, iar în proiecţiile paralele centrul de proiecţie este la infinit. În cazul proiecţiilor paralele, proiectorii sunt drepte paralele şi au o direcţie comună, numită direcţie de proiecţie.

În grafica tridimensională se foloseşte cel mai frecvent proiecţia perspectivă, deoarece această proiecţie redă cel mai bine efectul de descreştere a dimensiunilor obiectelor odată cu creşterea distanţei acestora faţă de observator.

Modul de definire a punctului de observare al scenei, al centrului de proiecţie şi al planului de vizualizare depind de sistemul de vizualizare folosit. Un studiu atent al sistemelor de vizualizare este necesar din mai multe motive. Chiar dacă un utilizator nu trebuie să proiecteze el însuşi sistemul de vizualizare, exploatarea oricărui sistem necesită o înţelegere precisă a modului în care diferiţi parametri determină imaginea obţinută pe display. Combinaţiile posibile sunt în munăr atât de mare, încât şansa de a potrivi diferiţi parametri ai unui sistem de vizualizare, fără a fi cunoscute condiţiile în care lucrează acesta, este infimă. 5.3 Proiecţia paralelă

În proiecţia paralelă, centrul de proiecţie este la infinit, iar toate dreptele de proiecţie sunt paralele între ele, având o direcţie numită direcţia de proiecţie.

Proiecţiile paralele sunt foarte rar folosite în grafica destinată sistemelor de realitate virtuală, dat fiind că imaginea rezultată nu dă informaţii asupra distanţei obiectelor în scenă.

Planul de proiecţie al unei proiecţii paralele poate fi perpendicular pe direcţia de proiecţie, şi atunci proiecţia se numeşte proiecţie ortografică, sau poate avea o inclinare oarecare faţă de direcţia de proiecţie, şi atunci proiecţia se numeşte proiecţie oblică.

Dintre proiecţiile ortografice, cele mai utilizate sunt proiecţiile ortografice în care planul de proiecţie este unul din planurile sistemului de coordonate. Proiecţiile ortografice sunt folosite frecvent în desenul tehnic şi, de asemenea, ca o etapă intermediară în definirea sistemelor de vizualizare normalizate, care vor fi prezentate în paragraful următor. Matricea de transformare de proiecţie ortografică în planul z = 0 are următoarea expresie:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000000000100001

ZP (5.4)

Un punct P(x,y,z) se transformă în punctul P’(x,y,0) prin proiecţie ortografică în planul z=0, care are aceleaşi coordonate x şi y, iar coordonata z are valoarea zero.

În mod similar, se definesc matricile de proiecţie ortografică în planele x = 0 şi y = 0:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000010000100000

XP , ⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000010000000001

YP (5.5)

Page 91: Note de Curs

Grafică Inginereasca-note de curs

95

5.4 Proiecţia perspectivă Există mai multe modalităţi de definire a unei proiecţii perspectivă, de la o

definire minimală, prin care se poate realiza proiecţia punctelor din spaţiu pe un plan, până la definirea adoptată în sisteme de vizualizare complexe, în care se specifică volumul de vizualizare, centrul de proiecţie şi alţi parametri. În continuare, vor fi prezentate câteva sisteme de vizualizare cu proiecţie perspectivă, începând cu cel mai simplu sistem şi până la sistemul complet de vizualizare care se conformează standardelor GKS şi PHIGS.

Proiecţia perspectivă se poate defini mai intuitiv pornind de la sistemul de observare considerat ca un sistem de referinţă stâng. Centrul de proiecţie se fixează în centrul sistemului de referinţă de observare OV, direcţia de observare (de privire) este în sensul pozitiv al axei OVzV, iar planul de vizualizare π este un plan perpendicular pe axa OVzV, la distanţa d faţă de centru (Fig. 5.5(a)).

Punctul P(xV,yV,zV) în sistemul de referinţă de observare se proiectează în

punctul P’(xP,yP,zP), aflat la intersecţia dreptei OVP cu planul de vizualizare. Din triunghiurile asemenea OVP’A şi OVPB, rezultă:

V

VP z

ydy =

În mod asemănător se poate deduce valoarea lui xP:

V

VP z

xdx = (5.6)

Aceste relaţii se pot exprima matriceal prin definirea matricei de proiecţie perspectivă MP astfel:

Fig. 5.5 Proiecţia perspectivă definită prin centrul de proiecţie OV şi planul de proiecţie π perpendicular pe axa OVzV.

π

yV

zV

OV

xV

P’

P

A

(a) Sistem de referinţă de observare stâng

B

yV

yP

zV

d

yV

– zV

OV

xV

P’

P

A

(b) Sistem de referinţă de observare drept

B

yV

yP

zV

d zV

Direcţia de observare Direcţia de observare

π

Page 92: Note de Curs

Grafică Inginereasca-note de curs

96

⎥⎥⎥⎥

⎢⎢⎢⎢

=

0d/100010000100001

PM (5.7)

Transformarea de proiecţie se poate scrie atunci:

PM=P' P , ⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

V

V

V

V

P

P

P

P

wZYX

0d/100010000100001

wZYX

Rezultă:

⎪⎪⎩

⎪⎪⎨

====

d/ZwZZYYXX

VP

VP

VP

VP

şi ⎪⎩

⎪⎨

========

dw/ZzzydZ/Ydw/YyzxdZ/Xdw/Xx

PPP

VVVVPPP

VVVVPPP

(5.8)

Se observă că expresiile lui xP şi yP şi zP obţinute prin calcul matriceal sunt identice cu cele din relaţiile 4.6, rezultate din construcţia geometrică prezentată în Fig 5.5(a). Proiecţia perspectivă înseamnă deci o împărţire a coordonatelor x şi y cu distanţa z, şi, într-adevăr, în proiecţia perspectivă imaginea unui obiect este cu atât mai mică cu cît se află la distanţă mai mare de punctul de observare.

În acest sistem de vizualizare simplu s-a definit sistemul de referinţă de observare ca un sistem stâng. Se poate defini acest sistem ca un sistem de referinţă drept, iar direcţia de observare îndreptată spre –zV. Planul de vizualizare este poziţionat perpendicular pe axa z, la distanţă egală cu d faţă de origine (Fig.5.5(b)), d având valoare negativă. Urmând un raţionament asemănotor cu cel de mai sus, rezultă matricea de proiecţie perspectivă cu aceeaşi expresie 4.7, în care d are o valoare negativă. Coordonatele punctului transformat sunt date de relaţiile 4.8. Trebuie precizat că în această convenţie se proiectează pe planul de vizualizare punctele aflate în direcţia de observare, deci cu zV negativ.

Se remarcă echivalenţa rezultatelor obţinute, iar convenţia de sistem de referinţă de observare stâng este utilă doar pentru a se urmări mai uşor raţionamentul de calcul.

5.5 Sistemul de referinţă normalizat

Sistemul de proiecţie simplu definit mai sus, în care toate obiectele din scenă

sunt proiectate pe planul de vizualizare, are mai multe inconveniente şi nu poate fi folosit decât în aplicaţii foarte simple, în care se proiectează obiecte aflate tot timpul în câmpul de observare. Nu aceasta este situaţia imaginilor generate în realitatea virtuală, în care se explorează o scenă virtuală de dimensiuni mari, din care numai o parte este vizibilă şi deci redată pe ecran.

Transformarea de proiecţie perspectivă este o transformare costisitoare, datorită faptului că necesită operaţii de împărţire, care consumă timp de calcul ridicat, dacă este executată prin program, sau circuite complexe, dacă este implementată hardware. Execuţia ei pentru toate obiectele scenei, inclusiv pentru cele care nu sunt vizibile, deci nu sunt reprezentate pe display şi nu necesită coordonatele în planul de vizualizare, este costisitoare şi inutilă. În plus, operaţia de decupare (clipping) a părţilor din obiectele

Page 93: Note de Curs

Grafică Inginereasca-note de curs

97

tridimensionale care nu sunt vizibile dintr-un anumit punct de observare, nu se poate executa eficient după proiecţie şi este necesară execuţia ei înainte de proiectarea coordonatelor în planul de vizualizare. Asupra acestui aspect se va reveni cu ocazia descrierii operaţiei de decupare.

Este evident că, pentru redarea eficientă a scenelor tridimensionale, este necesară definirea unui volum de vizualizare (view volume), cunoscut sub numele de piramida de vizualizare sau trunchiul de piramidă de vizualizare (frustum). Trunchiul de piramidă de vizualizare se defineşte în sistemul de referinţă de observare. În forma cea mai simplă, trunchiul de piramidă de vizualizare este mărginit de patru plane laterale care trec prin punctul de observare OV şi de două plane perpendiculare pe axa OVzV, planul apropiat (near) pe care se execută proiecţia, şi planul depărtat (far). În figura Fig. 5.6 este prezentat volumul de vizualizare într-un sistem de referinţă de observare stâng şi direcţia de observare către zV pozitiv.

Intersecţia dintre cele patru plane laterale şi planul de vizualizare (care, în această definiţie, este şi planul apropiat de vizibilitate) determină o suprafaţă dreptunghiulară ABCD în planul de vizualizare în care vor fi proiectate toate obiectele vizibile ale scenei. Această suprafaţă este fereastra de vizualizare (view plane window). Ecuaţiile celor şase plane ale trunchiului de piramidă regulată sunt:

⎪⎪⎩

⎪⎪⎨

==

±=±=

fzdz

dzhydzgx

V

V

VV

VV

(5.9)

unde: 2g – dimensiunea laturii orizontale a ferestrei de vizualizare (latura AB) 2h – dimensiunea laturii verticale a ferestrei de vizualizare (latura BC) d – distanţa planului de vizualizare şi a planului apropiat

Fig. 5.6 Definirea trunchiului de piramidă de vizualizare (frustum) în sistemul de referinţă de observare stâng.

zV

xV

yV

OV

zV = f

zV = d

xV = g zV/d

yV = h zV/d

A

B

D C

Direcţia de observare

Page 94: Note de Curs

Grafică Inginereasca-note de curs

98

f – distanţa planului depărtat. Semnificaţia volumului de vizualizare este evidentă: dintre toate obiectele din

scena virtuală, sunt vizibile şi redate în fereastra de vizualizare numai acele obiecte sau părţi din obiecte care sunt cuprinse în acest volum. Trunchiul de piramidă de vizualizare defineşte în acest fel şi volumul de decupare (clipping), operaţie care se execută într-unul din sistemele de referinţă care se definesc în cadrul transformării de proiecţie, şi anume sistemul de referinţă normalizat. Acest sistem de referinţă se mai numeşte şi sistem de referinţă canonic. Motivele pentru care decuparea se efectuează cel mai eficient în sistemul de referinţă normalizat vor fi explicate ulterior.

Sistemul de referinţă normalizat este un sistem de coordonate tridimensional în care trunchiul de piramidă de vizualizare se transformă într-un volum canonic, care, în general, este un paralelipiped dreptunghic. Pentru sistemul de proiecţie definit în acest paragraf, volumul canonic este un paralelipiped dreptunghic cu latura bazei egală cu 2 şi înălţimea 1 (după axa zN).

Introducerea acestui nou sistem de referinţă permite abordarea transformării de proiecţie perspectivă în două etape: o transformare din sistemul de referinţă de observare în sistemul de referinţă normalizat (numită transformare de normalizare), urmată de calculul proiecţiei prin împărţirea cu w a coordonatelor omogene. Între cele două etape ale transformării de proiecţie perspectivă se execută o operaţie importantă în grafica tridimensională, decuparea obiectelor relativ la volumul de vizualizare normalizat (volumul canonic).

Pentru transformarea de normalizare (transformarea de la sistemul de referinţă de observare la sistemul de referinţă normalizat), se impun următoarele cerinţe:

Se normalizează coordonata zN, care reprezintă adâncimea, astfel încât să se obţină precizie maximă în operaţiile de comparaţie a adâncimii punctelor.

Liniile din sistemul de referinţă observator trebuie să se transforme în linii în sistemul de referinţă normalizat.

Suprafeţele plane din sistemul de referinţă observator trebuie să se transforme în suprafeţe plane în sistemul de referinţă normalizat.

S-a demonstrat [New81] că aceste cerinţe sunt satisfăcute de transformarea: VN b/z+a=z

unde a şi b sunt constante. Aceste constante se determină din următoarele constrângeri: Se alege b < 0, astfel ca zN să crească atunci când creşte zV. Această condiţie

conservă noţiunea intuitivă de adâncime: un punct are coordonata zN cu atât mai mare cu cât este mai departe de observator.

Se normalizează domeniul de variaţie al lui zN, astfel ca domeniul zV∈[d,f] să se transforme în domeniul zN∈[0,1].

Rezultă următoarele relaţii care definesc transformarea de normalizare:

⎪⎪⎪⎪

⎪⎪⎪⎪

⎟⎟⎠

⎞⎜⎜⎝

⎛−

−=

=

=

VN

V

VN

V

VN

zd1

dffz

zhyd

y

zgxd

x

(5.10)

Page 95: Note de Curs

Grafică Inginereasca-note de curs

99

Coordonatele omogene ale unui punct în sistemul normalizat au expresiile:

⎪⎪⎩

⎪⎪⎨

=−−−=

==

VN

VN

VN

VN

zwd)df/(fd)f/(fzZ

hydYgxdX

(5.11)

Din aceste expresii se deduce matricea de transformare de normalizare MN care efectuează transformarea de la sistemul de referinţă observator la sistemul de referinţă normalizat:

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−=

0100d)df/(fd) f/(f00

00h/d0000g/d

NM , ⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

1zyx

wZYX

V

V

V

N

N

N

N

NM (5.12)

Matricea de transformare de normalizare MN poate fi exprimată ca un produs de două matrice astfel:

Fig. 5.7 Etapele transformării de normalizare.

zV

yV

OV

Volumul de vizualizare

d

f

h

y’

z’ O’

d

d

MN1

MN2

zN

yN

1

1

– 1

(b) (a)

(c)

(a) Volumul de vizibilitate în sistemul de referinţă observator.

(b) Scalarea care transformă volumul de vizibilitate în trunchi de piramidă regulată cu unghil la vârful piramidei de 90 grade.

(c) Volumul de vizibilitate canonic în sistemul de referinţă normalizat tridimensional.

Page 96: Note de Curs

Grafică Inginereasca-note de curs

100

N1N2N MMM =

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−=

1000010000h/d0000g/d

0100d)df/(fd)f/(f00

00100001

Această reprezentare permite analiza mai detaliată a transformării de normalizare. Sistemul de referinţă normalizat astfel definit este un sistem de referinţă stâng. Matricea MN1 este o matrice de scalare neuniformă prin care trunchiul de piramidă de vizualizare este transformat într-un trunchi de piramidă regulată cu unghiul la vârful piramidei de 90°. Matricea MN2 transformă acest trunchi de piramidă regulată în volumul canonic, care este un paralelipiped dreptunghic (Fig. 5.7).

În sistemul de referinţă normalizat se execută operaţia de decupare a obiectelor în coordonate normalizate omogene. În urma acestei operaţii, din totalitatea obiectelor scenei virtuale sunt reţinute numai acele obiecte sau părţi (rezultate prin decupare) aflate în interiorul volumului de vizualizare canonic, ceea ce înseamnă că, înainte de transformarea de normalizare, acestea se aflau în interiorul trunchiului de piramidă de vizualizare.

Din coordonatele omogene XN, YN, ZN , wN se pot deduce coordonatele xN, yN şi zN ale punctului în sistemul de referinţă normalizat tridimensional:

⎟⎟⎠

⎞⎜⎜⎝

⎛−

−======

VNNN

V

VNNN

V

VNNN z

d1df

fwZz;zhyd

wYy;zgxd

wXx

S-au obţinut, evident, expresii identice cu cele din relaţiile 4.10, de la care s-a pornit pentru definirea transformării de proiecţie perspectivă.

Coordonatele xN şi yN în sistemul de referinţă normalizat reprezintă coordonatele proiecţiei ortografice în planul zN = 0 (care este planul de vizualizare) a punctului corespunzător. Este de remarcat faptul că transformarea de proiecţie perspectivă din sistemul de referinţă observator a devenit o transformare de proiecţie ortografică în sistemul de referinţă normalizat. Dar aceaste operaţii de trecere de la coordonate omogene la coordonate tridimensionale şi proiecţia ortografică nu se efectuează în sistemul normalizat ci într-un alt sistem de referinţă, sistemul ecran 3D, obţinut prin transformarea fereastrei de vizualizare în poartă de afişare.

Unghiul dintre planele laterale ale piramidei de vizualizare (care trec prin axa OVyV şi au ecuaţiile xV = ±g zV/d ) se numeşte unghi de vizualizare pe orizontală (horizontal field of view– fovx). Unghiul dintre planele piramidei de vizualizare care trec prin axa OVxV se numeşte unghi de vizualizare pe verticală (vertical field of view – fovy). Valorile acestora se deduc din parametrii de proiecţie perspectivă:

dh

arctg2=fovy,dg

arctg2=fovx (5.13)

Valorile unghiurilor de vizualizare variază pentru diferite sisteme grafice în funcţie de dispozitivele de afişare folosite.

O altă convenţie de definire a unui sistem de vizualizare este aceea de a considera sistemul de referinţă de observare ca un sistem drept, iar direcţia de observare şi volumul de vizualizare îndreptate către zV negativ. Urmărind un raţionament asemănător celui de mai sus, se obţine aceeaşi expresie a matricii de normalizare (relaţia 5.12), în care valorile d şi f au valori negative, iar sistemul de referinţă normalizat

Page 97: Note de Curs

Grafică Inginereasca-note de curs

101

rezultat este un sistem de referinţă stâng. Exemplu .

(e) xV = 2 yV = 2 zV = 20 χ = 30° θ = ρ = 0

(f) xV = 2 yV = 2 zV = 20 χ = – 30° θ = ρ = 0

(a) xV = 2 yV = 2 zV = 20 χ = θ = ρ = 0

(b) xV = 2 yV = –2 zV = 20 χ = θ = ρ = 0

x

(c) xV = – 2 yV = 2 zV = 20 χ = θ = ρ = 0

(d) xV = – 2 yV = – 2 zV = 20 χ = θ = ρ = 0

x

Fig. 5.8 Transformări de proiecţie perspectivă pentru diferite puncte şi direcţii de observare a scenei

Page 98: Note de Curs

Grafică Inginereasca-note de curs

102

Se reia scena virtuală din Exemplul anterior. Imaginile din figura de mai jos corespund obiectelor instanţiate în scena virtuală. Axele de coordonate reprezentate sunt axele sistemului de referinţă universal. Sistemul de referinţă de observare este un sistem de referinţă drept, iar direcţia de observare îndreptată către zV negativ. Originea OV are valori diferite în diferitele imagini ale figurii, aşa cum este indicat pentru fiecare dintre ele, şi orientare dată prin unghiurile de giraţie, tangaj, ruliu (χ ,θ, ρ).

Transformarea de perspectivă este definită prin parametrii: d = –1, f = –40, g = 1, h = 1. Succesiunea de transformări efectuate pentru obţinerea acestor imagini este:

Transformarea de modelare, diferită pentru fiecare din cuburi, cu matricele M1, M2, M3, M4 calculate. După transformarea de modelare (instanţiere), toate obiectele sunt reprezentate în sistemul de referinţă universal şi, în continuare, vor fi supuse toate aceloraşi transformări.

Transformarea de observare cu matricea: )z,y,x()()()( VVV −−−χ−θ−ρ−= TRRRM YXZV ,

cu valorile parametrilor xV, yV, zV, χ, θ, ρ corespunzătoare fiecărei imagini redate. Transformarea de normalizare cu matricea:

⎥⎥⎥⎥

⎢⎢⎢⎢

−−

=

01001.0251.02500

00100001

NM

Imaginile generate pe ecran mai necesită şi alte transformări grafice, pe lângă cele prezentate până acum: transformarea în coordonate ecran 3D, prin care se efectuează o corespondenţă între fereastra de vizualizare şi zona de afişare alocată pe ecran (numită poartă –viewport), precum şi o transformare de rastru, prin care se generează mulţimea pixelilor afişaţi pe ecran. Aceste transformări vor fi descrise paragrafele următoare

În acest sistem de proiecţie perspectivă s-a presupus că planul de vizualizare şi planul de vizibilitate apropiată coincid. Deducerea matricii de normalizare pentru cazul general, în care cele două plane sunt diferite, este lăsată ca un exerciţiu pentru cursanţi. De asemenea, tot ca un exerciţiu, se poate deduce matricea de normalizare în situaţia în care centrul ferestrei de vizualizare nu se află pe axa zV.

Prin specificarea sistemului de referinţă de observare, a volumului de vizualizare şi a sistemului de proiecţie (tipul de proiecţie, centrul de proiecţie, direcţia de observare, fereastra de vizualizare) s-a definit un sistem de vizualizare care poate fi folosit pentru redarea obiectelor şi a scenelor tridimensionale. Acest sistem este destul de flexibil şi poate acoperi un număr mare de aplicaţii de grafică proiectivă (CAD- Computer Aided Design) şi unele aplicaţii de realitate virtuală neimersivă de tip desktop, în care mediul grafic este generat pe monitorul unui calculator.

Dar restricţiile impuse acestui sistem de vizualizare (de exemplu, s-a considerat că centrul de proiecţie coincide cu centrul sistemului de referinţă de observare) nu permit utilizarea lui în sisteme de realitate virtuală imersive sau semi-imersive în care este necesar un câmp de vizualizare de dimensiune mare. Astfel de situaţii se pot defini în sistemul de vizualizare standard PHIGS.

5.6 Sistemul de vizualizare standard Imaginea generată pe un monitor sau proiectată de un proiector pe un ecran

poate acoperi un câmp de vizualizare tipic de 35-45° vertical-orizontal. Pentru câmpuri

Page 99: Note de Curs

Grafică Inginereasca-note de curs

103

de vizualizare mai mari se folosesc imagini multicanal, în care fiecare canal reprezintă un volum de vizualizare care se proiectează în fereastra de vizualizare a acestuia. Mai multe canale de imagine, care generează imagini pe monitoare juxtapuse sau proiectate pe un ecran de dimensiuni corespunzătoare, permit obţinerea unor cîmpuri de vizualizare extinse în sistemele de realitate virtuală imersive.

Pentru generarea imaginilor multicanal se utilizează un sistem de vizualizare care permite definirea tuturor parametrilor necesari pentru generarea simultană a mai multor ferestre de vizualizare. Un astfel de sistem de vizualizare este cel definit în standardele GKS şi PHIGS, şi va fi descris în continuare.

În sistemul de vizualizare standard PHIGS, sistemul de referinţă observator (numit view reference coordinate –VRC) este definit prin punctul de observare VRP (view reference point), iar centrul de proiecţie este diferit de acesta şi este specificat prin punctul PRP (projection reference point). Planul de vizualizare (pe care se execută proiecţia imaginii) nu este în mod necesar perpendicular pe linia care uneşte centrul de proiecţie cu centrul ferestrei de vizualizare, ceea ce permite realizarea proiecţiilor oblice. Fereastra de vizualizare este poziţionată în orice loc în planul de vizualizare, ceea se permite definirea şi redarea simultană a mai multor imagini ale scenei.

Sistemul de vizualizare PHIGS se specifică în trei etape. În prima etapă se defineşte sistemul de referinţă de observare; în cea de-a doua etapă se defineşte transformarea de normalizare, iar în ultima etapă se defineşte transformarea fereastră-poartă.

5.7 Definirea sistemului de referinţă de observare

Sistemul de referinţă de observare se defineşte prin următorii parametri specificaţi în

sistemul de referinţă universal: Punctul de observare VRP (View Reference Point). Direcţia normală la planul de vizualizare, VPN (View Plane Normal). Un vector a cărui proiecţie determină sensul de prezentare a imaginii, VUP

(view up vector), şi care nu poate fi paralel cu vectorul VPN. Punctul VRP, împreună cu vectorii VPN şi VUV definesc sistemul de referinţă

de observare ca un sistem orientat după regula mâinii drepte, cu axele notate U, V, N. N este vectorul VPN, normal la planul de vizualizare, iar UV este un plan paralel cu planul de vizualizare (Fig. 4.8). Direcţia de observare este orientată în sensul negativ al vectorului VPN.

În planul de vizualizare se defineşte fereastra de vizualizare, care este un dreptunghi orientat cu laturile paralele cu axele u şi v ale unui sistem de referinţă bidimensional definit în acest plan. Acest sistem de referinţă are originea în punctul în care se proiectează (paralel cu direcţia VPN) centrul sistemului de referinţă de observare (VRP) pe planul de vizualizare. Direcţia axei v este paralelă cu proiecţia (după direcţia VPN) a vectorului VUV pe planul de vizualizare, astfel încât vectorul VUV specifică dacă scena este redată în direcţie verticală (în sus sau în jos) sau pe direcţie orizontală (spre dreapta sau spre stânga).

5.8 Definirea transformării de normalizare

Parametrii transformării de normalizare definesc corespondenţa între volumul de

vizualizare specificat în sistemul de referinţă observator şi volumul canonic în sistemul

Page 100: Note de Curs

Grafică Inginereasca-note de curs

104

de referinţă normalizat. Se specifică următorii parametri de definire a sistemului de referinţă normalizat relativ la sistemul de referinţă de observare:

Tipul proiecţiei (paralelă sau perspectivă). Centrul de proiecţie PRP (Projection Reference Point). Distanţa VPD (View Plane Distance) a planului de vizualizare faţă de centrul

sistemului de referinţă de observare, VRP. Distanţa planului apropiat (near) şi al planului depărtat de vizibilitate (far) faţă

de centrul sistemului de referinţă de observare. Limitele ferestrei de vizualizare, umin, umax, vmin, vmax. Planul de vizualizare este un plan paralel cu planul UV, aflat la distanţa dată de

valoarea VPD faţă de centrul sistemului de observare, VRP. În planul de vizualizare se defineşte sistemul de coordonate plan uv, în care fereastra de vizualizare este un dreptunghi între limitele umin, umax, vmin, vmax.Volumul de vizualizare se defineşte prin două plane paralele cu planul de vizualizare aflate la distanţele near şi far de centrul sistemului de referinţă observator VRP şi planele care trec prin centrul de proiecţie PRP şi laturile ferestrei de vizualizare.

Există două posibilităţi de poziţionare a centrului de proiecţie PRP faţă

de fereastra de vizualizare:

Fig. 5.9 Specificarea sistemului de vizualizare PHIGS în proiecţa perspectivă.

Planul apropiat

PRP

VRP

Planul de vizualizare

Fereastra de vizualizare

Planul depărtat

V

U

VPN

VPD

near

far

(umax, vmax)

(umin, vmin)

Direcţia de observare

Page 101: Note de Curs

Grafică Inginereasca-note de curs

105

Dacă linia care uneşte centrul de proiecţie cu centrul ferestrei de vizualizare este

paralelă cu vectorul VPN, normal la planul de vizualizare, atunci se obţine o proiecţie perspectivă normală, echivalentă celei descrise anterior (Fig. 5.10(a)).

Dacă punctul PRP nu se află pe linia paralelă cu vectorul VPN care trece prin centrul ferestrei de vizualizare, atunci proiecţia este o proiecţie oblică (Fig. 5.10(b)).

Implementarea sistemului de vizualizare PHIGS se face prin transformări geometrice succesive, la fel ca în

exemplele prezentate până acum. Trebuie precizat că în sistemul PHIGS standard sistemul de referinţă de observare UVN este sistem drept, iar volumul de vizualizare şi direcţia de observare sunt orientate către axa – N.

O primă transformare geometrică este o schimbare de sistem de referinţă din sistemul de referinţă de observare UVN într-un sistem de referinţă notat Oxyz, cu centrul în centrul de proiecţie PRP şi cu axele paralele cu axele sistemului UVN (s-a ales această denumire pentru simplificarea notaţiilor, dar acest sistem nu este sistemul de referinţă universal pentru care, în mod obişnuit, s-a folosit notaţia Oxyz). Această transformare se efectuează printr-o translaţie inversă celei definite de vectorul de poziţie al punctului PRP.

Ca urmare a acestei transformări se modifică corespunzător valorile VPD, near, far, umin, umax, vmin, vmax. Fie d, n, f, xmin, xmax, ymin, respectiv ymax, valorile rezultate după translaţie. Aceste valori sunt numere reale şi pot fi pozitive sau negative. Matricea de transformare de normalizare pornind din acest sistem Oxyz, se poate descompune în produs de trei matrice:

MN = MN2 MN1MN0 Matricele MN1 şi MN2 au semnificaţii asemănătoare cu matricele dezvoltate

pentru sistemul de vizualizare precedent. Cealaltă transformare componentă, MN0, este o transformare de forfecare, prin care linia centrală a volumului de vizualizare (cea care uneşte centrul de proiecţie PRP cu centrul ferestrei de vizualizare, Fig. 4.10) se suprapune cu aza z a sistemului.

Transformarea de forfecare modifică valorile coordonatelor x şi y cu valori

PRP

VPN Planul de vizualizare

Fereastra de vizualizare

(a) PRP

VPN Planul de vizualizare

Fereastra de vizualizare

(b)

Fig. 5.10 (a) Proiecţia normală (b) Proiecţie oblică.

Page 102: Note de Curs

Grafică Inginereasca-note de curs

106

proporţionale cu z. Este simplu de observat că matricea:

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡+−+−

=

100001000d2)yy(100d2)xx(01

minmax

minmax

N0M (4.14)

Fig. 5.11 Transformare de forfecare în sistemul de vizualizare standard.

– z

y

Axa volumului de vizualizare

Volumul de vizualizare

d

n

f

ymin

ymax

Planul apropiat

Planul de vizualizare

Planul depărtat

(0, ymax, d)

(0, ymin, d)

PRP

– (xmax+xmin)/2, (ymax–ymin)/2, d

– (xmax+xmin)/2, –(ymax–ymin)/2, d

(a) Situaţia după translaţia punctului PRP în origine

(b) Situaţia după transformarea de forfecare. Volumul de vizualizare este simetric, şi axa acestuia suprapusă peste axa z.

Forfecare

Page 103: Note de Curs

Grafică Inginereasca-note de curs

107

efectuează o simetrizare a volumului de vizualizare. De exemplu, intersecţiile muchiilor orizontale ale ferestrei de vizualizare cu planul x = 0 se transformă astfel:

[ ] [ ] Tminmaxminmax

Tmax 1d2)yy(2)x(x1dy0 −+−=N0M

[ ] [ ] Tminmaxminmax

Tmin 1d2)yy(2)x(x1dy0 −−+−=N0M

A doua transformare componentă este transformarea de scalare MN1, prin care

volumul de vizualizare este transformat într-un volum simetric, cu unghiul de la vârful piramidei de 90°:

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−

=

1000010000)yy(d20000)xx(d2

minmax

minmax

N1M (5.14)

De exemplu, transformarea compusă MN1MN0 aplicată punctului din centrul ferestrei de vizualizare, îl transformă într-un punct aflat pe axa z negativă (d este negativ):

[ ] [ ]TTminmaxminmax 1d00=1d2/)y+y(2/)x+x(N0N1MM

Ultima componentă a transformării de normalizare transformă volumul de vizualizare în volum canonic (paralelipiped dreptunghic). Matricea acestei transformări, MN2, este asemănătoare matricei descrise în paragraful precedent, dar se ţine seama de faptul că planul de vizibilitate apropiat nu mai coincide cu planul de vizualizare:

⎥⎥⎥⎥

⎢⎢⎢⎢

−−−=

0100n)nf/(fn)f/(f00

00100001

N2M (5.15)

Sistemul normalizat astfel definit este un sistem de referinţă stâng. În acest sistem se efectuează operaţiile de decupare a obiectelor, după care secvenţa transformărilor necesare pentru generarea imaginii continuă cu transformarea în sistemul de referinţă ecran 3D.

5.9 Sistemul de referinţă ecran 3D

Transformarea în sistemul de referinţă ecran 3D efectuează o corespondenţă

între fereastra din planul de vizualizare şi zona de afişare alocată pe display numită poartă de afişare (viewport). Fereastra de vizualizare este definită într-un sistem de referinţă bidimensional în planul zN = 0 al sistemului de referinţă normalizat. Poarta de afişare este definită într-un sistem de referinţă bidimensional în planul zS = 0 al sistemului de referinţă ecran 3D şi este, în general, o zonă rectangulară de dimensiuni egale cu numărul de pixeli corespunzători pe orizontală şi pe verticală a zonei afişate. (Fig. 5.12). Transformarea din sistemul de referinţă normalizat în sistemul ecran 3D lasă coordonata z nemodificată. Sistemul de referinţă ecran 3D astfel definit este un sistem de referinţă stâng, la fel ca şi sistemul de referinţă normalizat.

Page 104: Note de Curs

Grafică Inginereasca-note de curs

108

Pentru definirea transformării în sistemul de referinţă ecran 3D, se calculează

mai întâi coordonatele centrului CF al ferestrei şi ale centrului CP al porţii:

2)yy(y;2)xx(x

2)yy(y;2)xx(x

minPmaxPCPminPmaxPCP

minmaxCFminmaxCF

+=+=

+=+=

(5.16) Corespondenţa dintre coordonatele unui punct P(xN, yN) din fereastră cu ale

punctului P’(xS, yS) în poarta de afişare se formulează matematic astfel:

minmax

minPmaxP

CFS

CPS

minmax

minPmaxP

CFN

CPS

yyyy

yyyy

;xxxx

xxxx

−−

=−−

−−

=−−

Se definesc factorii de scalare ai transformării:

1syyyy

s

xxxx

s

z

minmax

minPmaxPy

minmax

minPmaxPx

=−−

=

−−

=

(5.17)

Rezultă:

NS

CFyCPNyCFyCPS

CFxCPNxCFNxCPS

zz

ysyys)yy(syyxsxxs)xx(sxx

=

−+=−+=−+=−+=

(5.18)

Se poate deduce matricea de transformare ecran 3D prin compunerea a trei transformări succesive. Mai întâi se execută o translaţie, astfel ca centrul CF al ferestrei să ajungă în origine, deci cu matricea de translaţie T(–xCF , –yCF ,0). Fereastra centrată în origine se scalează cu factorii de scară sx, sy, definiţi de relaţia 5.17, astfel încât fereastra să ajungă la dimensiunea porţii, iar coordonata z se lasă nemodificată. Matricea de scalare este deci S(sx, sy, sz). Ultima transformare necesară este o translaţie, prin care centrul porţii este adus în punctul CP, deci cu matricea de translaţie T(xCP, yCP, 0). Rezultă matricea de transformare din sistemul de referinţă normalizat în sistemul de referinţă ecran 3D:

Fig. 5.12 Transformarea de la fereastra de vizualizare la poarta de afişare.

xN

yN

xmin xS

yS

xmax

ymin

ymax

xPmax

yPmax

yPmin

xPmin

P yN

xN

P’

xS

yS

CF yCF

xCF xCP

yCP CP

Page 105: Note de Curs

Grafică Inginereasca-note de curs

109

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−−

=

⎥⎥⎥⎥

⎢⎢⎢⎢

⎡−−

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

N

N

N

N

S

S

S

S

CFyCPy

CFxCPx

CF

CF

y

x

CP

CP

wZYX

wZYX

;

10000100

ysy0s0xsx00s

10000100y010x001

1000010000s0000s

10000100

y010x001

NSNS

NS

MM

M

(5.19)

Din aceste relaţii rezultă ZS = ZN şi wS = wN. În sistemul de referinţă ecran 3D se trece de la coordonatele omogene XS, YS, ZS, wS, la coordonatele tridimensionale xS, yS, zS prin împărţirea cu wS.

Planul zS = 0 din sistemul de referinţă ecran 3D este planul de proiecţie. Coordonatele xS şi yS reprezintă coordonatele proiecţiei ortografice în planul zS = 0 (care este planul de porţii de afişare). Transformarea de proiecţie perspectivă din sistemul de referinţă de observare a devenit o transformare de proiecţie ortografică în sistemul de referinţă ecran 3D. Coordonata zS în sistemul de referinţă ecran 3D este utilizată în algoritmii de eliminare a suprafeţelor ascunse. Volumul de vizualizare în sistemul ecran 3D este un paralelipiped dreptunghic cu baza un dreptunghi de dimensiuni egale cu dimensiunile porţii afişate şi înălţimea egală cu 1 (zS ∈ [0,1]) (Fig. 5.13).

5.10 Decuparea obiectelor Într-un sistem în care este definit punctul de observare şi un volum de

vizualizare, nu interesează decât obiectele din interiorul acestui volum, a căror proiecţie se generează în fereastra de vizualizare. De aceea, în vizualizarea scenelor tridimensionale, se execută operaţia de decupare la volumul de vizualizare, prin care se reţin numai obiectele sau părţile din obiecte cuprinse în acest volum.

Operaţia de decupare la volumul de vizualizare poate fi definită astfel: fiind dat un obiect tridimensional şi un volum de vizualizare, pot exista trei posibilităţi:

Obiectul este complet în interiorul volumului şi, în acest caz, el este proiectat în fereastră şi redat pe display.

Obiectul este complet în afara volumului de vizualizare şi, în acest caz, el poate fi ignorat.

Fig. 5.13 Volumul de vizualizare în sistemul de referinţă ecran 3D

zS

xS

yS

1 0

Poarta de afişare

Page 106: Note de Curs

Grafică Inginereasca-note de curs

110

Obiectul intersectează volumul de vizualizare; în acest caz se decupează obiectul şi partea vizibilă (cuprinsă în interiorul volumului) este proiectată în fereastra de vizualizare şi redată pe display.

Decuparea obiectelor tridimensionale la volumul de vizualizare se execută în sistemul de referinţă normalizat în coordonate omogene, înainte de împărţirea cu w.

Operaţia de decupare în spaţiul tridimensional reprezintă o extindere a decupării în planul bidimensional, de aceea se va prezenta mai întâi decuparea în plan.

5.11 Decuparea în plan

Fiind dat un poligon oarecare în plan şi o regiune de decupare, problema

decupării poligonului este de a reţine numai acea parte din poligon care se află în interiorul regiunii de decupare. Se consideră cazul cel mai frecvent întâlnit, în care regiunea de decupare este un dreptunghi cu laturile paralele cu axele de coordonate. Această regiune de decupare corespunde ferestrei de vizualizare.

Majoritatea algoritmilor de decupare, atât în plan cât şi în spaţiu, se bazează pe algoritmul de decupare Sutherland-Hodgman. Algoritmul Sutherland-Hodgman împarte planul bidimensional în nouă regiuni, după poziţia faţă de regiunea dreptunghiulară de decupare dată prin ecuaţiile a patru drepte: x = xmin; x = xmax; y = ymin; y = ymax. (Fig. 5.14).

Fiecărei regiuni îi corespunde un cod de vizibilitate (cunoscut sub numele de cod Sutherland-Cohen) reprezentat pe 4 biţi, b0, b1, b2, b3, definiţi astfel:

b0 = semn(x – xmin) b1 = semn(xmax–x) b2 = semn(y – ymin) b3 = semn(ymax–y) În continuare codurile de vizibilitate se reprezintă ca o secvenţă de cifre binare. Un poligon oarecare din plan poate fi complet inclus în regiunea de decupare,

Fig. 5.14 Codurile de vizibilitate Sutherland-Cohen.

0000

0010

0100

0001

1000

1001

0101

0110

1010

x = xmin x = xmax

y = ymax

y = ymin

y

x

Page 107: Note de Curs

Grafică Inginereasca-note de curs

111

poate fi complet în afara regiunii de decupare sau o poate intersecta. Folosind codurile de vizibilitate ale vârfurilor poligonului se pot identifica direct (fără să se execute calcule de intersecţii) două situaţii ale poligonului faţă de regiunea de decupare:

Acceptare sigură. Dacă toate vârfurile poligonului se află în regiunea de decupare, atunci polinomul este vizibil în întregime. Fie c1, c2, …., cn, codurile de vizibilitate ale celor n vârfuri ale poligonului şi SC rezultatul reuniunii acestor coduri (operaţia OR inclusiv): SC = c1| c2 |…| cn. Dacă SC = 0, atunci poligonul este sigur vizibil (Fig. 5.15 (a)).

Rejecţie sigură. Dacă toate vârfurile unui poligon se află într-unul din semiplanele invizibile (x < xmin; x > xmax; y < ymin; y > ymax.), atunci tot poligonul este sigur invizibil. Pentru efectuarea testului de rejecţie sigură se calculează intersecţia codurilor de vizibilitate (operaţia AND): PC = c1 & c2 &…& cn. Dacă PC are valoare diferită de 0, atunci poligonul este sigur invizibil deoarece toate punctele se află în semiplanul invizibil corespunzător unui bit diferit de 0 din codul PC (Fig. 5.15 (b)).

Dacă nu este îndeplinită nici condiţia de acceptare sigură, nici condiţia de rejecţie sigură, atunci decuparea se calculează prin intersecţia laturilor poligonului cu dreptele care mărginesc regiunea de decupare (Fig. 5.15 (c)).

Dreapta (infinită) corespunzătoare unei laturi a regiunii de decupare împarte planul în două semiplane: semiplanul (regiunea) vizibil, care se află de aceeaşi parte a dreptei ca şi regiunea de decupare, şi semiplanul invizibil, care se află de partea opusă faţă de regiunea de decupare. De exemplu, pentru latura x = xmin, semiplanul x < xmin, este invizibil iar semiplanul x ≥ xmin este vizibil.

În algoritmul de decupare Sutherland-Hodgman, decuparea unui poligon faţă de o regiune dată se efectuează într-un număr de paşi egal cu numărul de laturi ale regiunii de decupare. În fiecare pas se decupează poligonul (iniţial sau provenit dintr-un pas anterior) cu o latură a regiunii de decupare: se elimină acea porţiune din poligon care se află în semiplanul invizibil corespunzător laturii şi se reţine numai porţiunea vizibilă.

(a) Acceptare sigură SC = 0000

1010

0010

(b) Rejecţie sigură PC = 0010

0010

1010

0110

Fig. 5.15 Teste de vizibilitate pentru decuparea în plan.

(c) Decupare prin intersecţie SC = 1111, PC = 0000

1000

0100

00100001

Page 108: Note de Curs

Grafică Inginereasca-note de curs

112

Poligonul se reprezintă printr-o listă ordonată de vârfuri V1V2…Vn, şi fiecare

pereche de două vârfuri consecutive (Vi V i+1), pentru i < n, şi (VnV1) reprezintă o latură a poligonului ca un segment de dreaptă orientat (vector).

În fiecare pas de decupare se porneşte de la un poligon dat printr-o listă ordonată de vârfuri şi se creează lista vârfurilor poligonului rezultat prin decupare relativ la dreapta suport a unei laturi a regiunii de decupare. Iniţial, lista vârfurilor poligonului rezultat este considerată vidă. Un segment orientat ViVj se poate afla într-una din patru situaţii posibile faţă de o latură de decupare (Fig. 5.16).

Dacă ambele vârfuri se află în semiplanul vizibil corespunzător laturii de decupare, atunci se adaugă în listă vârful Vj (Fig. 5.16 (a)).

Dacă ambele vârfuri se află în semiplanul invizibil, atunci nu se adaugă nici un vârf în listă (Fig. 5.16 (b)).

Dacă primul vârf al segmentului (Vi) se află în semiplanul vizibil, iar al doilea (Vj) se află în semiplanul invizibil (segmentul este orientat de la semiplanul vizibil către semiplanul invizibil), atunci se calculează intersecţia I dintre segment şi dreapta de decupare şi se adaugă intersecţia I în listă (Fig. 5.16(c)).

Dacă primul vârf al segmentului (Vi) se află în semiplanul invizibil, iar al doilea (Vj) se află în semiplanul vizibil (segmentul este orientat de la semiplanul invizibil către semiplanul vizibil), atunci se calculează intersecţia I dintre segment şi dreapta de decupare în lista vârfurilor se adaugă intersecţia I şi apoi vârful Vj (Fig. 5.16 (d)).

În primul pas, poligonul iniţial V1V2…Vn se decupează relativ la latura x

= xmin prin parcurgerea în ordine a tuturor segmentelor orientate ale poligonului (Fig. 5.17(a)). Poligonul rezultat se decupează relativ la următoarea latură a regiunii de decupare (Fig. 5.17 (b)). După parcurgerea unui număr de paşi egal cu numărul de laturi

Vi

Vj

Semiplanul invizibil

(a) Vi vizibil, Vj vizibil Se adaugă Vj

Semiplanul vizibil

Vi

Vj

Semiplanul invizibil

(b) Vi invizibil, Vj invizibil Nu se adaugă nici un vârf

Semiplanul vizibil

Vi

Vj

Semiplanul invizibil

(d) Vi invizibil, Vj vizibil Se adaugă I, Vj

I

Semiplanul vizibil

Vi

Vj

Semiplanul invizibil

(c) Vi vizibil, Vj invizibil Se adaugă I

I

Fig. 5.16 Intersecţia dintre o latură a poligonului şi o dreaptă de decupare.

Semiplanul vizibil

Page 109: Note de Curs

Grafică Inginereasca-note de curs

113

ale regiunii de decupare se obţine poligonul complet decupat (Fig. 5.17(d)). În Fig.5.17 este ilustrat algoritmul de decupare Sutherland-Hodgman al unui

poligon convex relativ la o regiune de decupare rectangulară, dar acest algoritm poate fi folosit în cazul general, al decupării oricărui tip de poligon (convex, concav sau cu găuri) relativ la o regiune de decupare oarecare.

Decuparea (în plan sau în spaţiu) poate fi executată în orice operaţie care

necesită construirea de poligoare sau obiecte tridimensionale noi prin calcul, pornind de la obiecte de bază, care sunt intersectate cu alte obiecte sau suprafeţe.

În generarea imaginilor bidimensionale, decuparea, ca operaţie componentă a secvenţei de transformări de vizualizare, se efectuează relativ la fereastra de vizualizare, care este o regiune rectangulară. Poligoanele sau liniile rezultate, limitate la dimensiunea ferestrei, sunt transformate în sistemul de referinţă al porţii de afişare şi redate pe display. Dacă nu se efectuează decuparea poligoanelor la limitele ferestrei, coordonatele vârfurilor în sistemul de referinţă al porţii de afişare depăşesc limitele porţii, iar rezultatul conversiei de rastru este incorect.

Se poate efectua o decupare a poligoanelor şi liniilor şi în poarta de afişare, prin testul individual al coordonatelor fiecărui pixel şi rejectarea acelora care nu se încadrează în limitele porţii de afişare. Acesta este însă un procedeu deosebit de costisitor ca timp de execuţie şi nu se pune problema utilizării lui în grafica interactivă şi în realitatea virtuală

x = xmin

Semiplan invizibil

Semiplan vizibil

V3

V2

V1

I1

I2

(a) Poligonul V1V2V3V4 decupat în semiplanul x ≥ xmin

x = xmin

Semiplan vizibil

V4

Semiplan invizibil

V3

V1

I1

I2

(b) Poligonul I1I2V3V4V1 decupat în semiplanul x ≤ xmax

I4

I3

Fig. 5.17 (a), (b) Decuparea relativ la laturile verticale ale regiunii de decupare în algoritmul Sutherland-Hodgman.

Page 110: Note de Curs

Grafică Inginereasca-note de curs

114

.

5.12 Decuparea suprafeţelor relativ la volumul de vizualizare Algoritmii de decupare a obiectelor în spaţiul tridimensional pot fi consideraţi ca

o extensie a algoritmilor de decupare din plan, prin înlocuirea regiunii de decupare plane cu un volum de decupare şi efectuarea calculelor de intersecţie a unei suprafeţe în spaţiu cu planele volumului de decupare.

Decuparea la volumul de vizualizare este un caz particular al decupării spaţiale, în care volumul de decupare este volumul de vizualizare (trunchiul de piramidă de vizualizare) definit în sistemul de referinţă de observare.

În continuare se analizează modul de execuţie a decupării pentru sistemul de vizualizare definit în sectiunea precedentă (Fig. 5.5) şi se va evidenţia de ce decuparea se execută cel mai eficient în sistemul de referinţă normalizat, afirmaţie care nu a fost încă motivată.

Volumul de decupare se defineşte prin şase plane în sistemul de referinţă de observare, ale căror ecuaţii sunt date de relaţiile 5.9.

Fiecare plan împarte spaţiul tridimensional în două semispaţii, semispaţiul vizibil, aflat de aceeaşi parte a planului ca şi volumul de decupare, şi semispaţiul invizibil, în partea opusă a volumului. Decuparea unei suprafeţe în raport cu acest plan se efectuează asemănător cu decuparea unui poligon faţă de o latură de decupare: fiecare latură orientată introduce zero, unul sau două vârfuri în lista se vârfuri a suprafeţei rezultate, în funcţie de orientare şi de intersecţia ei cu planul. Un vârf este vizibil în raport cu un plan dacă se află în semispaţiul vizibil determinat de planul dat. De exemplu, un vârf este vizibil în raport cu planul dhz=y VV , dacă yV ≤ hzV/d (Fig. 5.16 (a)).

V4

y = ymin

Semiplan invizibil

I4

Semiplan vizibil

V3

V1

I1

I2

(c) Poligonul I2V3 I3 I4V1 decupat în semiplanul y ≥ ymin

I1

I2 I3 I6 I5

y = ymax

Semiplan invizibil I4

Semiplan vizibil

I5

V1

I1

I2

(d) Poligonul I2I5 I6 I3I4V1 decupat în semiplanul y ≥ ymin

I1

I2 I3

I6

I8 I7

Fig. 5.17 (c), (d) Decuparea relativ la laturile orizontale ale regiunii de decupare în algoritmul Sutherland-Hodgman.

Poligonul rezultat este: I5 I6 I3I7 I8 I1 I2

Page 111: Note de Curs

Grafică Inginereasca-note de curs

115

În mod asemănător, decuparea relativ la celelate plane ale volumului de decupare necesită testele:

fz;dz;zdgx;z

dgx;z

dhy VVVVVVVV ≤≥−≥≤−≥ (5.20)

Aceste teste implică operaţii asupra coordonatelor vârfurilor, operaţii care în formă matriceală înseamnă înmulţirea cu matricea MN1, componentă a matricei de normalizare. Aşa cum se poate observa în Fig. 5.18(b), matricea MN1 transformă sistemul de referinţă de observare într-un sistem de referinţă O’x’y’z’, în care volumul de vizualizare (deci volumul de decupare) este un trunchi de piramidă regulată cu unghiul de la vârful piramidei de 90°. Relaţiile 5.20 de testare a vizibilităţii unui punct în sistemul de referinţă de observare sunt echivalente cu următoarele relaţii în sistemul O’x’y’z’:

x’ ≤ z’; x’ ≥ – z’; y’≤ z’; y’ ≥ – z’; z’ ≤ f; z’ ≥ d (5.21)

yV = hzV/d

yV

zV

yV = – hzV/d

zV = d zV = f

y’ = z’

y’

z’

z’ = d z’ = f

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000010000dh0000dg

N1M

zN

yN

zN = 1 zN = 0

yN = – 1

yN = 1

(a) (b)

⎥⎥⎥⎥

⎢⎢⎢⎢

=

0100d)-(ffd-)d-f(f00

00100001

N2M

(c)

(a) Volumul de decupare în sist. ref. de observare (b) Volumul de decupare în sist. O’x’y’z’ (c) Volumul de decupare în sist. ref. normalizat

Fig. 5.18 Volumul de decupare în sistemul de vizualizare. (proiecţie în planul x = 0)

Page 112: Note de Curs

Grafică Inginereasca-note de curs

116

Dacă s-ar executa decuparea în sistemul de referinţă intermediar O’x’y’z’, atunci toate punctele din sistemul de referinţă de observare se transformă mai întâi cu matricea MN1, pentru trecerea în sistemul O’x’y’z’, apoi se execută decuparea, iar după decupare, vârfurile vizibile se transformă cu matricea MN2, pentru trecere în sistemul de referinţă normalizat şi proiecţie în fereastra de vizualizare (Fig. 5.16(c)). Aplicarea separată a două transformări, mai întâi prin matricea MN1 şi apoi prin matricea MN2 este costisitoarte şi nenecesară, dat fiind că decuparea se poate face direct în sistemul normalizat (Fig. 5.16 (c)).

În sistemul de referinţă normalizat volumul de decupare este un paralelipiped dreptunghic cu suprafeţele paralele cu planele sistemului de coordonate. Testele de vizibilitate ale unui punct în raport cu planele volumului de decupare sunt:

xN ≤ 1; xN ≥ – 1; yN ≤ 1; yN ≥ – 1; zN ≤ 1; zN ≥ 0; (5.22)

Aceste teste se pot efectua direct în coordonatele omogene în sistemul normalizat, fără să mai fie necesară împărţirea cu wN:

XN ≤ wN ; XN ≥ – wN ; YN ≤ wN ; YN ≥ – wN ;

(5.23) ZN ≤ wN ; ZN ≥ 0; Codul de vizibilitate C al unui vârf în coordonate normalizate omogene se

exprimă pe 6 biţi şi fiecare bit se poziţionează în funcţie de rezultatul unuia din testele din relaţia 5.23:

b0 = semn(XN – wN) b1 = semn(wN –XN) b2 = semn(YN – wN) b3 = semn(wN –YN) b4 = semn(ZN – wN) b5 = semn(ZN) Spaţiul omogen normalizat se împarte în 27 de regiuni după poziţia lor faţă de

planele care definesc volumul canonic de vizualizare. În interiorul volumului canonic, toate punctele au codul de vizibilitate cu toţi biţii egali cu 0 (C = 000000). În toate celelalte regiuni, codul de vizibilitate este diferit de 0, având unul sau mai mulţi biţi egali cu 1.

Algoritmul Sutherland-Hodgman de decupare în spaţiu se desfăşoară în mod asemănător cu algoritmul de decupare în plan. Pentru o suprafaţă dată prin vârfurile ei în spaţiu, decuparea relativ la un volumul dat prin ecuaţiile planelor sale se efectuează în modul următor:

Se calculează codurile de vizibilitate ale vârfurilor suprafeţei. Se efectuează testele de acceptare şi rejecţie sigură. Pentru suprafeţele care nu

îndeplinesc nici unul din aceste teste se continuă cu decuparea prin intersecţia cu volumul de decupare.

Decuparea prin intersecţie a unei suprafeţe se efectuează într-un număr de paşi egal cu numărul de plane ale volumului de decupare. În fiecare pas se obţine o nouă suprafaţă, din care a fost eliminată porţiunea invizibilă în raport cu planul de decupare respectiv.

După efectuarea decupării, se calculează coordonatele xN, yN, zN ale vârfurilor suprafeţelor vizibile rezultate (prin împărţirea cu wN), iar toate celelalte vârfuri (ale

Page 113: Note de Curs

Grafică Inginereasca-note de curs

117

suprafeţelor invizibile) sunt ignorate. Acest lucru înseamnă că operaţia de împărţire omogenă se execută pentru un număr strict necesar de vârfuri, ceea ce reprezintă un câştig în viteza de execuţie.

Se pune problema dacă nu ar fi mai simplu să fie efectuată decuparea în plan, deci după calculul proiecţiilor suprafeţelor, dat fiind că algoritmul de decupare în plan este mai simplu. Acest lucru ar însemna ca toate suprafeţele să fie proiectate pe planul de vizualizare, după care să se efectueze decuparea relativ la fereastra de vizualizare. Această soluţie este însă inacceptabilă, datorită faptului că în fereastra se proiecţe se proiectează atât punctele (vârfuri ale suprafeţelor) aflate în volumul de vizualizare, cât şi cele aflate într-un volum simetric cu acesta faţă de planul zV = 0, care se află în spatele observatorului. Tratarea tuturor acestor suprafeţe proiectate în fereastra de vizualizare dar invizibile, consumă un timp de execuţie în mod inutil. De aceea, decuparea obiectelor la volumul de vizualizare nu se poate executa corect şi eficient decât în spaţiul tridimensional, şi anume în coordonate normalizate omogene.

5.13 Eliminarea obiectelor aflate în exteriorul volumului de vizualizare

Se poate detalia modul de execuţie a decupării relativ la volumul de vizualizare.

Algoritmul de bază se referă la decuparea unei suprafeţe în spaţiu, dată ca o succesiune de vârfuri şi, implicit, o succesiune de segmente de dreaptă orientate (laturile suprafeţei), relativ la un volum de decupare, care este volumul canonic în coordonate omogene normalizate.

Decuparea punctelor în spaţiu este un simplu test de vizibilitate (ecuaţiile 5.23), iar decuparea unei linii este un caz particular (cu n = 2) al algoritmului de decupare a unei suprafeţe.

Decuparea unui obiect tridimensional, modelat ca o colecţie de feţe (suprafeţe plane) se reduce la decuparea fiecărei feţe în parte, iar obiectul rezultat este compus din toate feţele sale vizibile şi părţile rezultate prin decupare.

O creştere a eficienţei în operaţia de decupare se poate obţine folosind teste de rejecţie şi de acceptare sigură nu numai pentru fiecare suprafaţă în parte, dar şi pentru un obiect tridimensional în întregime.

Procedeul de calcul al reuniunii (SC) şi al intersecţiei (PC) codurilor de vizibilitate ale unui obiect tridimensional depinde de modul de reprezentare al acestuia. Pentru obiectele tridimensionale modelate prin feţe date ca listă de indecşi la vârfuri se calculează direct valorile SC şi PC ale celor N vârfuri ale obiectului. Pentru obiecte reprezentate prin feţe separate, se pot colecta codurile de vizibilitate ale feţelor componente şi calcula reunuinea SC şi intersecţia PC.

Ce anume se execută în fiecare din situaţii depinde, evident, de modul de organizare al programului şi de biblioteca grafică folosită. În orice caz, dacă obiectul este sigur invizibil, atunci se abandonează toate operaţiile referitoare la acest obiect şi se trece la obiectul următor.

Selecţia obiectelor, adică identificarea obiectelor potenţial vizibile pentru redarea imaginii acestora şi eliminarea obiectelor sigur invizibile (culling), este o resursă puternică de creştere a eficienţei de redare a scenelor virtuale. În scenele virtuale de dimensiuni mari, care conţin un număr mare de obiecte, în fiecare cadru de imagine sunt vizibile şi deci trebuie să fie prelucrate un număr mult mai mic obiecte decât numărul total de obiecte ale scenei. De aceea, identificarea cât mai devreme posibil a

Page 114: Note de Curs

Grafică Inginereasca-note de curs

118

obiectelor sigur invizibile şi eliminarea lor conduce la reducerea substanţială a timpului de redare a scenei. În redarea scenelor complexe, acest procedeu se implementează mai eficient decât modul simplu descris mai sus prin definirea volumului de delimitare a obiectelor.

5.14 Volumul de delimitare

Volumul de delimitare (bounding box) al unui obiect sau al unui grup de obiecte

(ierarhie de obiecte) este un volum definit cât mai simplu, care include toate vârfurile obiectelor şi are dimensiuni minime. Se folosesc ca volume de delimitare paralelipipede dreptunghice sau sfere.

Fiind dat un obiect cu un volum de delimitare, testul de eliminare (culling) se efectuează asupra volumului de delimitare: se calculează intersecţia codurilor de vizibilitate ale vârfurilor volumului de delimitare şi, dacă este diferită de zero, atunci volumul de delimitare şi implicit, întregul obiect este invizibil şi abandonat.

Această modalitate de reprezentare şi prelucrare a obiectelor este aproape unanim adoptată în realitatea virtuală, datorită execuţiei eficiente a testului: decizia de eliminare a unui obiect se poate lua prin considerarea unui număr de opt vârfuri, în locul unui număr foarte mare de vârfuri cât are un obiect în mod obişnuit.

Volumul de delimitare al unui obiect se defineşte în sistemul de referinţă local (de modelare) al obiectului, ca un paralelipiped dreptunghic cu muchiile paralele cu axele de coordonate. Un astfel de paralelipiped se poate specifica prin coordonatele a două vârfuri opuse (xmin, ymin, zmin) şi (xmax, ymax, zmax). Vârfurile lui sunt transformate din sistemul de referinţă local în alte sisteme de referinţă (universal, de observare, etc.), la fel ca şi vârfurile obiectului. Calculul codurilor de vizibilitate şi testul de eliminare se poate efectua în sistemul de referinţă de observare sau în alt sistem de referinţă (sistemul normalizat) dacă biblioteca grafică permite accesul la coordonatele în acest sistem.

În Fig. 5.19 sunt reprezentate trei obiecte în poziţii diferite faţă de volumul de vizualizare. Volumul de delimitare al primului obiect este complet exterior faţă de volumul de vizualizare şi obiectul corespunzător (“ceainic” – teapot) este ignorat pentru punctul de observare dat. Cel de-al doilea obiect (icosaedru) este complet vizibil, volumul său de delimitare fiind inclus în volumul de vizualizare. Pentru cel de-al treilea obiect (sferă reprezentată wireframe), volumul de delimitare intersectează volumul de vizualizare şi trebuie să fie executată decuparea suprafeţelor sale relativ la volumul de vizualizare.

În scenele virtuale modelate ierarhic se construiesc volume de delimitare la fiecare nivel de ierarhie şi obiectele sau grupurile de obiecte sunt selectate pe baza testului de eliminare efectuat asupra volumului de delimitare corespunzător.

Page 115: Note de Curs

Grafică Inginereasca-note de curs

119

5.15 Detecţia coliziunii Detecţia coliziunii este un aspect important în modelarea mediului virtual, prin

faptul că simulează un aspect realist al mediului: obiectele reale nu pot trece unele prin altele; atunci când un obiect se atinge de un altul există un răspuns de coliziune: deformarea obiectelor, schimbarea traiectoriei de deplasare, explozia, etc. La interacţiunea dintre utilizator şi obiectele virtuale se pot produce forţe, vibraţii, şi alte reacţii tactile care sunt prelucrate în sistem.

Detecţia coliziunii se poate calcula aproximativ, folosind volumele de delimitare, sau exact, prin considerarea tuturor punctelor obiectelor. Dat fiind că volumul de delimitare depăşeste în multe puncte suprafaţa de frontieră a obiectului, calculul aproximativ al coliziunii introduce coliziuni false între obiecte: nu obiectele s-au atins ci volumele lor de delimitare.

Generarea exactă a coliziunii se calculează ca a doua etapă după calculul aproximativ al coliziunii. Dacă două obiecte au volumele de delimitare disjuncte, atunci ele sigur nu se ating. Dacă două obiecte au volume de delimitare care se ating sau interpătrund, atunci se calculează coliziunea exactă prin considerarea tuturor punctelor obiectelor.

zV

xV

yV

OV

Fig. 5.19 Eliminarea obiectelor (culling) pe baza volumului de delimitare (bounding box).

Page 116: Note de Curs

Grafică Inginereasca-note de curs

120

Capitolul 6

Modelare grafica 6.1. Introducere Aplicabilitatea modelãrii in domeniul ingineriei

Modelarea tridimensionalã şi reprezentarea graficã a modelelor constiutie practic nucleul programelor pentru CAD/CAM. Avand la dispozitie imagini tridimensionale, inginerul poate proiecta subansamble, ansambluri sau componente spre exemplu, şi poate verifica modul în care sunt compatibile diferite componente ale unui subansamblu, modul în care mai multe echipamente functioneazã într-un complex de echipamente, fãrã a fi necesarã realizarea fizicã a acestora.

Aplicabilitatea modelãrii în inginerie şi domeniile conexe ale acesteia, se bazeazã pe prelucrarea informaţiilor obtinute prin metode specifice.

Aria de utilizare se întinde de la scopuri didactice pana la prelucrari complexe de imagini ce permit extragerea de informaţii suplimentare de mare valoare.

Aceste obiective implicã mai multe etape : �realizarea investigaţiilor imagistice specifice; �procesarea imaginilor pentru extragerea informaţiilor utile; �interpretarea şi prelucrarea rezultatelor procesãrii în conformitate cu obiectivele propuse; �generarea unui model al corpului de proiectat care sã raspunda cerinţelor, fiind reprezentat grafic pe monitor în mod high details; �analiza prin Metoda Elementelor Finite a comportãrii pieselor, în vederea determinãrii stãrii de tensiuni pentru diferite tipuri de solicitãri în structura mecanica asupra cãreia s-au aplicat.

6.2. Conceptul de model şi modelare 6.2.1 Conceptul de model

În domeniul ştiinţifico-tehnic, modelul se considerã a fi un sistem abstract sau material cu ajutorul cãruia pot fi studiate indirect proprietãţile unui alt sistem, mai complex (sistemul sursã), cu care modelul prezintã o analogie limitatã şi orientatã.

Modelul este o reprezentare a aspectelor esenţiale ale unui sistem (real sau virtual).

Necesitatea construcţiei modelului este determinatã de cele mai multe ori de necesitatea studiului, construcţiei sau conducerii unui sistem (real sau virtual), în condiţiile imposibilitãţii efectuãrii acestor activitãţi asupra sistemului dat, din motive economice, ecologice, de complexitate, de accesibilitate, de periculozitate etc.

Sistemul, real sau virtual, de la care se porneşte (obiectul investigaţiei) este sursa informaţiilor necesare modelãrii şi este numit sistem sursã.

Definirea modelului trebuie sã ţinã seama de urmãtoarele: �reprezentarea sã fie simplificatã, oferind deci şi posibilitãţi de studiu mai

simple pentru beneficiarul modelului; gradul de simplificare trebuie privit prin prisma

Page 117: Note de Curs

Grafică Inginereasca-note de curs

121

posibilitãţii de construire a modelului, precum şi prin cea a posibilitãţii de utilizare a acestuia în scopul propus;

•relevarea trãsãturilor caracteristice, care diferenţiazã sistemul studiat de alte sisteme;

•reţinerea doar a acelor trãsãturi care sunt adecvate scopului. Construirea modelelor şi simularea se constituie în metode moderne,

cvasigeneralizate de cunoaştere a unor sisteme sursã, cu tehnici, procedee şi mijloace specifice. Modelele sunt utilizate la ora actualã în toate disciplinele ştiinţifico-tehnice.

Generalizarea utilizãrii modelelor se datoreazã, în principal, urmãtoarelelor avantaje:

•au o accesibilitate, pentru studiu, mai ridicatã decât a sistemelor sursã; •necesitã costuri mai mici pentru realizare şi testare; •necesitã mai puţin timp pentru realizare şi testare; •schimbãrile în structura modelului sunt uşor de implementat; •schimbãrile de comportament sunt mai simplu de izolat, înţeles şi comunicat; •permit, fãrã probleme, experimentãri, indiferent de periculozitatea mediului în care fiinţeazã sistemul sursã; •pot oferi informaţii şi asupra unor sisteme care nu sunt realizate, sau nu pot fi

executate cu tehnologiile existente. Calitatea unui model este exprimatã, în primul rând, de fidelitatea cu care

modelul reproduce comportamentul cunoscut al sistemului modelat. Comportamentul modelului este relevat prin funcţionare, deci în cadrul operaţiilor conexe modelãrii, care ţin de simulare. Fidelitatea depinde de urmãtoarele:

•corectitudinea cu care s-a efectuat aprecierea a ceea ce este esenţial, relevant pentru scopul urmãrit; •procedeele de constituire a modelului; •calitatea şi cantitatea cunoştinţelor disponibile care au putut fi utilizate. Cele de mai sus se pot constitui în criterii de fidelitate, cu ajutorul cãrora pot fi

diferenţiate calitativ modelele unui sistem sursã. Aceste criterii influenţeazã parcurgerea etapelor construirii modelului.

Calitatea unui model mai este determinatã şi de alte aspecte: simplitatea, inteligibilitatea, costul etc. Funcţionarea (comportamentul) sistemului sursã reprezintã obiectul interesului

cercetãtorului; pentru cunoaşterea acesteia se iniţiazã procesul de modelare. În general, prin relevarea acesteia, este implicit relevatã şi structura configuraţiei geometrico-spaţiale a sistemului sursã mecanic sau mecatronic (la roboţii industriali spre exemplu). De foarte multe ori, configuraţiile geometrico-spaţiale iau forma unor structuri de rezistenţã pentru susţinerea componentelor funcţionale, dar pot exista şicazuri în care acestea nu sunt relevante funcţional, fiind totuşi elemente ale unui sistem sursã. Definitivarea completã a acestor configuraţii geometrico-spaţiale se realizeazã prin procedeele şi tehnicile de modelare geometricã. Modelul geometric rezultat face parte dintr-un subset de modele (în sens general), ataşat celui care relevã esenţa funcţional-comportamentalã.

Criteriile de clasificare cunoscute se referã la aceastã din urmã esenţã şi diferenţiazã modelele, cu observaţia cã, în afara celor prezentate în continuare, pot exista şi altele, funcţie de specificitatea domeniului din care face parte sistemul sursã.

Page 118: Note de Curs

Grafică Inginereasca-note de curs

122

În funcţie de materialitatea lor, modelele pot fi abstracte (teoretice, matematice) sau materiale (fizice, replici).

A. Modelele abstracte pot fi diferenţiate funcţie de modul de abordare de cãtre cel care modeleazã şi de profunzimea cunoştinţelor sale despre sistemul sursã:

a) în funcţie de forma de prezentare, care poate fi: •clasicã (exprimatã prin relaţii matematice): •matematic-analitice, la care sunt luate în considerare cunoştinţe despre

proprietãţile sistemului sursã atât din punct de vedere calitativ, cât şi cantitativ; pentru a construi modelele se porneşte, de obicei, de la legi fizice care se pot concretiza în relaţii matematice;

•matematic-analogice, care utilizeazã o presupusã analogie cu un sistem cu legi fizice cunoscute, caz în care modelul se bazeazã pe un ansamblu de ipoteze din care pot fi deduse consecinţe comportamentale ale modelului;

•exprimatã prin mulţimi de date corelate de intrare şi de ieşire; •descriptivã, legatã într-o anumitã mãsurã şi de o prognozã comportamentalã,

destinatã sã explice comportamentul sistemului sursã (raspunde la întrebarea cum este? sau cum va fi?); este cel mai des utilizatã în medicinã;

b) în funcţie de aspectul care intereseazã al sistemului sursã: •modele la care se urmãreşte compoziţia, structura internã a sistemului de

modelat; modelul este numit uneori conceptual; el se referã la variabilele caracteristice ale sistemului sursã;

•modelele la care intereseazã doar comportamentul, în sensul cunoaşterii intrãrilor şi ieşirilor corespunzãtoare ale sistemului (sistem considerat cutie neagrã); este denumit şi model informaţional, pentru cã la construirea modelului se ţine seama doar de informaţii, sub forma unor valori concrete ale unor variabile de intrare/ieşire (pe baza acestora se pot desfãşura operaţii de conducere ale sistemului sursã, modelul servind acestui scop);

•modelele hibride, la care participã ambele aspecte. Modelul conceptual este, deci, o construcţie de legãturi logico-matematice între variabilele definitorii ale sistemului sursã, pe când cel informaţional se

bazeazã pe informaţii care sunt oferite în exterior în timpul funcţionãrii. În practicã se preferã modelele hibride, în care se realizeazã un echilibru adecvat între aspectul informaţional şi aspectul conceptual.

B. Modelele materiale (fizice, concrete, substanţiale, replici) permit rezolvarea pe cale experimentalã a unor probleme care nu pot fi rezolvate pe cale analiticã, logico-matematicã, fie datoritã necunoaşterii metodelor de calcul adecvate, fie datoritã gradului mare de complexitate a acestora, conducând la activitãţi mult prea laborioase şi costisitoare.

Funcţie de natura acestor modele, se disting: a) modele similare, de aceeaşi naturã cu sistemul sursã, care diferã de acesta din

urmã doar prin numãrul sau valoarea dimensiunilor sau caracteristicilor; se bazeazã pe teoria similitudinii, fiind utilizate frecvent în inginerie (construcţii de clãdiri/drumuri/poduri, construcţii de maşini, hidrotehnicã/pneumotehnicã); în domenii specifice, precum hidraulica sau aerodinamica; nu se poate concepe nici un studiu serios fãrã a se apela la astfel de modele, care poartã uzual denumirea de machete; au fost chiar dezvoltate tehnici de modelare prin similitudine distincte, adecvate unor subdomenii din hidraulicã şi aerodinamicã.

Page 119: Note de Curs

Grafică Inginereasca-note de curs

123

b) modele analoage, bazate pe fenomene diferite de cele din sistemul sursã, dar la care relaţiile matematice care descriu comportamentul modelului au aceeaşi formã cu cele care guverneazã sistemul sursã. 6.2.2 Conceptul de modelare

În sens restrâns, modelarea reprezintã activitatea de elaborare propriu-zisã a modelului unui sistem sursã; activitãţile desfãşurate în acest scop sunt materializate şi prin:

•tehnici şi proceduri de identificare; •tehnici de simulare; •tehnici şi proceduri complementare. Etapele prin care se realizeazã, la modul clasic, modelarea, în sens restrâns sunt,

în general, urmãtoarele: a) construirea modelului pe bazã:

•analiza preliminare a sistemului sursã în vederea evidenţierii parametrilor relevanţi şi a legãturilor funcţionale dintre ei; •stabilirea unei structuri a modelului; •stabilirea valorilor parametrilor definitorii ai modelului;

b) analiza modelului prin simulare; c) compararea rezultatelor analizei cu datele de comportare a sistemului sursã în condiţii echivalente; d) corectarea modelului, în sensul apropierii comportamentului de cel al sistemului sursã. În sens mai larg, prin modelare se înţelege metoda de studiu bazatã pe utilizarea

modelelor, metodã la care apeleazã, la ora actualã, majoritatea cercetãrilor din toate domeniile tehnice (şi nu numai). În ultimã instanţã, în aceastã semnificaţie metoda cuprinde conţinutul teoriei generale a modelãrii.

6.3. Metode şi mijloace pentru realizarea formelor complexe în modelarea geometricã 6.3.1 Introducere

Funcţie de structurile de date şi de informaţiile de model stocate, sistemele 3D sunt clasificate în:

• Orientate pe muchii (wireframe); •Orientate pe suprafeţe (surface model); •Orientate pe volume (solid model). Dintre acestea, modelele solide (orientate pe volume) înmagazineazã cea mai

completã descriere geometricã. Cu toate acestea, modelatoarele de solide sunt încã destul de complicat de utilizat, în general, şi sunt limitate atât în complexitate cât şi în acurateţea geometriei. Acestea sunt probabil motivele pentru care modelarea de solide nu este încã tehnica exclusivã în sistemele CAD industriale.

Modelele solide pot fi obţinute prin urmãtoarele tehnici mai frecvente: •Geometria constructiva a solidelor (CSG),

Page 120: Note de Curs

Grafică Inginereasca-note de curs

124

• Prin frontiere (B-rep), •Prin enumerare spaţialã (octree…), •Prin baleiere (sweeping etc.), •Analitic (ASM – Analytic Solid Model), •Parametric/procedural. La conceperea lor, formele modelelor solide pot fi gândite în termenii unor

forme geometrice elementare (primitive de tipul prismã, cilindru, sferã, con etc.), sau în termenii unor forme elementare din punct de vedere al generãrii tehnologice (de rotaţie, extrudate etc.).

Formele geometrice elementare necesare construirii unor obiecte complexe, pot fi obţinute utilizând accesul la forme primitive standard puse la dispoziţie de sistemul de proiectare (modelator). Aceste primitive standard trebuie sã fie parametrizate, în sensul cã utilizatorul poate modifica una sau mai multe dimensiuni.

Utilizarea doar a formelor primitive standard poate limita aplicabilitatea sistemului. De aceea sistemele CAD oferã utilizatorului posibilitatea de a defini, dupã necesitãţi, entitãţi geometrice elementare. Se pot, astfel, crea suprafeţe pornind de la curbe, sau volume pornind de la suprafeţe. Cea mai simplã metodã este atribuirea de grosimi formelor plane (procedeu echivalent extrudãrii).

O problemã în metoda de generare utilizând primitive este numãrul mare de operaţii booleene standard. Acest lucru este deseori considerat un ezavantaj, din cauza complexitãţii şi a costului ridicat al operaţiilor booleene.

Pe de altã parte, operaţia manualã de grupare a unor feţe orientate coerent pentru a obţine un solid este laborioasã şi împotriva spiritului general al CAD, astfel încât s-au elaborat operatori speciali pentru a asista crearea modelelor solide.

Un astfel de operator special, aplicat unor suprafeţe convenabil create, este cel de îngroşare (thicken). Acest operator ia o suprafaţã de bazã, defineşte o suprafaţã offset a sa şi apoi închide spaţiul dintre ele cu o bandã lateralã. Acest operator este potrivit pentru pentru obiectele care au suprafeţele superioarã şi inferioarã (suprafeţele legate cu o bandã) similare.

Suprafaţa care închide corpul (banda), poate fi riglatã sau poate fi complexã, de tip loft-at, ce ţine seama şi de direcţiile normalelor celor douã suprafeţe iniţiale (bazã şi offset), pentru asigurarea seamainuitãţii (evitarea muchiilor acuţite). 6.3.2 Tehnici de descriere a modelelor geometrice 3D

Modelele de solide trebuie sã satisfacã un grup de cerinţe: • Validitatea: sã existe un obiect real corespunzãtor oricãrui model posibil creat; • Universalitatea: sã se poatã crea un model pentru orice obiect 3D; • Unicitatea interpretãrii: unei reprezentãri concrete îi corespunde doar un singur obiect; • Unicitatea expresiei (neambiguitatea): unui obiect 3D îi corespunde doar un singur model; • Caracterul complet: toate operaţiile suportate sã fie aplicabile tuturor reprezentãrilor (sã genereze în toate cazurile entitãţi valide ca operanzi pentru toate operaţiile); • Conciziunea: informaţia conţinutã în model sã fie minimã.

Page 121: Note de Curs

Grafică Inginereasca-note de curs

125

6.3.2.1 Modelarea prin frontiere (B-rep)

Modelele 3D construite prin enumerarea feţelor ce separã obiectele de restul mediului (obiecte definite prin învelişul lor) se numesc modele prin frontiere B-rep (Boundary-representation). Modelul memoreazã şi poziţia interiorului obiectului faţã de feţe. Tehnica este avantajoasã pentru vizualizãri dar nu este bine adaptatã pentru unele operaţii analitice, precum calculul centrului de greutate sau al momentelor de inerţie.

În figura 1.b este reprezentat schematic modelul B-rep al obiectului din figura 1.a.

Modelele prin frontiere au dificultãţi în respectarea cerinţelor pentru modele

solide valide. Pot apãrea feţe flotante, cu muchii ce aparţin doar unei feţe. Într-un model corect, o muchie se aflã la întâlnirea a douã şi numai a douã feţe. O altã problemã este compatibilitatea: suprafaţa generatã trebuie sã fie fizic posibilã. Sunt excluse auto-intersectãrile şi ambiguitãţile de orientare. Normalele celor douã feţe ce se întâlnesc într-o muchie trebuie sã fie orientate compatibil. De exemplu, un corp de tip bandã Moebius are probleme de acest tip.

Din cauza acestor probleme potenţiale, utilizatorul va avea acces doar la nivelul unei interfeţe tip CSG. 6.3.2.2 Modelarea prin geometria constructivã a solidelor (CSG)

Modelele complexe se pot crea grupând componente mai simple, denumite sub-obiecte sau primitive. Exemple de sub-obiecte frecvente sunt: cuburi, conuri, cilindri, sfere. În tehnica de geometrie constructivã a obiectelor – CSG, modelul este

Page 122: Note de Curs

Grafică Inginereasca-note de curs

126

reprezentat printr-un arbore (sau graf pentru modelele complexe). La capetele ramurilor arborelui se aflã obiecte primitive exprimabile parametric, iar în noduri operatori pe mulţimi. Fiecãrui nod îi corespunde un sub-obiect (chiar dacã nu este calculat).

Tehnica CSG este avantajoasã în cazul modificãrii geometriei, dar nu este adaptatã vizualizãrii. De aceea, se pãstreazã în memorie douã versiuni de model, una CSG şi una B-rep, pentru vizualizare. În figura 1.c este prezentat modelul CSG al obiectului din figura 1.a. Modelul rezultã printr-o reuniune şi o diferenţã aplicate pornind de la forme geometrice simple.

Principalele avantaje ale modelãrii CSG sunt validitatea inerentã, unicitatea interpretãrii, caracterul complet, consecvenţa şi conciziunea.

Principalul dezavantaj este complexitatea calculelor pentru evaluarea arborelui CSG în vederea vizualizãrii. Acest lucru face ca editarea interactivã sã fie rar întâlnitã în sistemele CSG. Un alt dezavantaj este imposibilitatea reprezentãrii tuturor obiectelor fizice, de exemplu a celor cu suprafeţe curbe cu formã liberã. 6.3.2.3 Modelarea prin enumerare spaţialã

Spaţiul modelului este divizat în elemente de volum, asemãnãtor cazului imaginilor 2D, descrise prin muţimea de pixeli constituenţi (bit-mapped). Elementul de volum unitar echivalent unui pixel este voxelul (volume element).

Un obiect solid este descris prin fanioane care indicã elementele de volum ocupate. Deoarece enumerarea tuturor punctelor din volum ar consuma memorie enormã, se utilizeazã unitãţi speciale. S-a dezvoltat o metodã de divizare recursivã, cunoscutã sub numele de quadtree 2D şi octree în 3D. Un mare avantaj al acestei metode este posibilitatea de descriere a obiectelor complexe neregulate, de tipul celor existente în naturã. 6.3.2.4 Modelarea prin baleiere

Este o tehnicã utilã în primul rând, pentru obiecte bidimensionale: solide cu grosime constantã sau cu simetrie axialã. Solidele din prima clasã rezultã prin baleiere rectilinie (tip extrudare), iar din a doua clasã – prin baleiere circularã (corpuri de revoluţie).

Baleierea constã în deplasarea unui punct, a unui segment sau a unei suprafeţe, pe o anumitã traiectorie. Pentru forme complexe, traiectoria este o curbã complexã.

Metoda este utilizatã mai ales pentru obţinerea unor elemnte ce urmeazã a fi incluse în scheme CSG sau B-rep. Nu existã modelatoare pure prin baleiere din cauza limitelor metodei.

6.3.2.5 Modelarea analiticã (ASM)

Tehnica ASM este asemãnãtoare formulãrilor izoparametrice tridimensionale din analiza cu elemente finite (FEA). Este adecvatã descrierii modelelor cu forme complexe şi calculelor proprietãţilor volumetrice. Exemple tipice sunt hiper-peticele parametrice tricubice (generalizare a peticelor bidimensionale - bicubice). Un hiperpetic este o aplicaţie a unui domeniu cubic unitar parametric descris de u, v, şi w, într-un solid descris de x, y şi z în spaţiul modelului (cartezian). Orice obiect va putea fi reprezentat ca un ansamblu de hiperpetice cvasi-disjuncte, prin divizarea sa convenabilã.

Page 123: Note de Curs

Grafică Inginereasca-note de curs

127

6.3.2.6 Modelarea prin instanţierea primitivelor

Metoda prin instanţierea primitivelor se bazeazã pe reprezentarea parametricã a obiectelor singulare. Un obiect va fi descris de modelul generator al întregii clase (familii) şi de valorile parametrilor ce definesc obiectul particular (instanţa). Pentru prelucrãri mecanice sau operaţii analitice, metoda este avantajoasã pentru descrierea porţiunilor din obiecte, dar interfaţa cu utilizatorul este complexã. 6.3.3 Metoda booleeanã de creare a modelelor solide utilizând forme geometrice elementare

Metoda dominantã pentru crearea de modele solide se bazeazã pe operaţii booleene. Utilizarea operaţiilor booleene este o metodã generalã şi nu presupune o structurã internã particularã a modelatorului de solide, asa cum este geometria constructvã a solidelor sau reprezentarea prin frontiere. Figura 2 prezintã operaţiile booleene fundamentale exemplificate pe un set de douã corpuri prismatice. În figura 3 este prezentat un exemplu de creare a unui corp prin acestã metodã, comparativ cu metoda orientatã pe prelucrare (tehnologie).

Aceastã tehnicã de construire forţeazã utilizatorul sã gândeascã în termenii teoriei mulţimilor din matematicã în sisteme de coordonate tridimensionale cu obiecte primitive. Creearea unei fante într-un bloc, de exemplu, cere poziţionarea relativã a douã prisme în mod convenabil în spaţiul 3D şi aplicarea funcţiei diferenţã pentru extragerea unei pãrţi din blocul de bazã. Asemãnãtor se pot obţine obiecte complexe prin operaţii de tip reuniune sau intersecţie.

Page 124: Note de Curs

Grafică Inginereasca-note de curs

128

Operaţiile booleene se folosesc şi pentru operaţii utilitare precum verificarea coliziunilor (prin testarea intersectãrilor) şi generarea secţiunilor (prin intersecţii şi diferenţe). 6.3.4 Metoda de creare a modelelor solide orientatã pe prelucrare

În opoziţie cu crearea prin operaţii booleene cu primitive geometrice, metoda orientatã pe prelucrare este bazatã pe comenzi de nivel înalt orientate cãtre procesul de fabricaţie, precum comenzile echivalente procedeelor tehnologice de: extrudare, strunjire, frezare, gãurire sau perforare. Aceastã metodã este mai aproape de modul de gândire al proiectantului. Principiul este utilizat de sistemele de modelare prin caracteristici (feature-based modeling).

În figura 3.b este prezentat acelaşi obiect ca în figura 3.a, dar exemplificând obţinerea lui prin metoda orientatã pe prelucrare.

În general, principiul este de a utiliza rotirea şi translatarea profilurilor plane pentru crearea şi modificarea modelelor. Profilul poate fi vãzut ca geometria sculei sau, mai exact, ca secţiune prin sculã. Translatarea sau rotirea unui profil este interpretatã ca o operaţie de modelare ce are efecte similare asupra formei obiectului cu o operaţie de prelucrare corespunzãtoare ce mişcã scula faţã de semifabricat (sau invers). De notat cã extrudarea, strunjirea, frezarea etc, ca şi comenzi de proiectare, nu determinã tehnologia de fabricaţie utilizatã în realitate.

Pentru a face mai naturalã utilizarea acestei metode, s-a introdus conceptul de spaţiu de lucru. Spaţiul de lucru este un plan în spaţiul 3D utilizat pentru construirea profilurilor. Selectarea unui spaţiu de lucru produce automat o transformare a vederii pentru a putea utiliza comenzi normale 2D pentru construirea de profiluri în spaţiul 3D. Transformarea are loc astfel încât planul de lucru sã devinã perpendicular pe direcţia de privire. Pentru obţinerea unor piese complexe, cum ar fi piuliţe, roţi dinţate, arcuri elicoidale etc, se utilizeazã transformãri suprapuse (simultane), combianate cu metodele obişnuite de modelare.

Page 125: Note de Curs

Grafică Inginereasca-note de curs

129

Etapele principale sunt: 1. Definirea secţiunii P a sculei prin metode simple 2D, utilizând conceptul de plan de lucru; 2. Alegerea funcţiei de comandã, prelucrea asociatã care defineşte mişcarea sculei; mişcãri simple pot fi suprapuse pentru a defini transformãri complexe; Se aplicã, apoi, metodele de modelare cunoscute (operaţii booleene, sweeping,

lofting etc.), pentru a realiza intern operaţiile tip prelucrare. 6.3.5 Reprezentarea obiectelor utilizând curbe

Una din principalele probleme în compartimentul de proiectare a produselor este proiectarea formei acestora. Este necesarã o tehnicã simplã de descriere a formei oricãror obiecte.

În cazul formelor simple, este suficientã utilizarea unor entitãţi analitice puncte, segmente de dreaptã, cercuri şi arce de cerc, conice şi arce de conice (elipse, parabole, hiperbolice). Pentru forme mai complexe, este necesarã utilizarea unor entitãţi sintetice (curbe spline şi Bezier). Este neraţioanlã descrierea obiectelor complexe perin mulţimi de puncte (enumerare). Acest mod de reprezentare ar necesita o capacitate enormã de memorare. Dezavantajul specific este urmãtorul: o modificare a obiectului (de exemplu prin rotire, sculare, deformare), ar fi extrem de dificilã, dacã nu chiar imposibilã. Este mult mai avantajos sã se fixeze nişte puncte de referinţã şi sã se genereze (sintetizeze) curbe între ele (figura 4), care sã aproximeze forma obiectului de reprezentat.

6.3.5.1 Curbe spline

Ideea entitãţilor sintetice a condus la aplicarea metodelor de interpolare: se cautã o funcţie continuã, care în anumite puncte de sprijin, ia valori date. Pe lângã condiţiile de a trece prin puncte (sau cât mai aproape de ele), se mai introduce şi condiţia ca douã curbe ce se întâlnesc într-un punct sã realizeze un anumit grad de netezime, pentru a evita puncte singulare. Matematic, se pune condiţia ca primele n derivate a celor douã

Page 126: Note de Curs

Grafică Inginereasca-note de curs

130

funcţii ce se întâlnesc sã fie continue în acel punct. De exemplu, pentru cazul a trei puncte se poate utiliza un polinom de gradul doi, deci o funcţie de tipul: f(x)= a. x2 + b. x + c .

Punerea condiţiilor ca funcţia sã treacã prin cele trei puncte, conduce la un sistem de trei ecuaţii cu trei necunoscute: a, b şi c. Acest sistem este determinat: existã un singur polinom cu proprietãţile cerute. De regulã, acest polinom are un mare dezavantaj: gradul creşte cu creşterea numãrului de puncte. Prin aceasta se ajunge la o comportare nedoritã a funcţiei între punctele de trecere: tendinţa spre oscilaţii (figura 4, curba Lagrange/Newton). Aceastã tendinţã puternicã de oscilaţie a curbei de interpolare între punctele date nu este de neglijat la metodele clasice precum Newton sau Langrange.

În cazul utilizãrii funcţiilor spline acest fenomen nu apare, din cauzã cã acestea sunt polinoame definite pe subdomenii. Între fiecare douã puncte vecine, numite noduri, se defineşte câte o funcţie grad mai mic.

S-a dovedit cã funcţiile spline cubice sunt potrivite pentru majoritatea aplicaţiilor. Polinoamele utilizate pe intervale între douã puncte succesive sunt de grad maxim trei, independent de numãrul punctelor. Pentru a obţine coeficienţii polinoamelor, trebuie rezolvate sisteme de ecuaţii. Condiţiile impuse (trecerea prin punctele date şi netezimea la traversãri), generează ecuaţiile sistemului. Pentru asigurarea unicitãţii soluţiilor mai sunt necesare încă douã condiţii, care se pot obţine obişnuit, în trei moduri, pe baza unor condiţii la limitã. De exemplu, se pot descrie valorile primei derivate (tangenta), la capetele domeniului (în primul şi în ultimul punct). Mai frecvent se întâlneşte curba spline naturalã, în cazul căreia derivatele de ordinul doi sunt nule la captele intervalului. Curbele spline pot fi astfel asemănate cu segmente de dreaptã. În a treia variantã, curba spline periodicã, se pune condiţia ca derivatele de ordinul întâi şi cele de ordinul doi sã aibã aceleaşi valori la cele douã capete ale intervalului. Astfel de curbe spline vor putea fi alãturate succesiv generând o curbã periodicã. 6.3.5.2 Curbe Bezier

Un tip mai interesant de curbe pentru interpolare sunt curbele Bezier. Aceste curbe nu mai au impusã condiţia de a trece prin punctele date, cu excepţia primului şi ultimului punct. Celelalte puncte servesc la seamarolul formei curbei. Curbele Bezier au, seamarar curbelor spline, avantajul cã se scriu mai uşor condiţiile de netezime.

Panta tangentei în primul respectiv în ultimul punct depinde de al doilea respectiv de penultimul punct. Întreaga curbã are forma:

în care p0,…,pn sunt punctele de trecere, iar b0n(t),…,bnn(t) sunt polinoamele Bernstein de ordinul n, definite prin:

Existã o formulã de recurenţã care leagã polinoamele Bernstein de diferite

grade: bin(t) = t . bi-1,n-1 (t) + (1-t) . bi,n-1 (t) şi care este utilizatã de algoritmul de Casteljau pentru a obţine puncte pe segmentele Bezier prin interpolãri liniare repetate.

Page 127: Note de Curs

Grafică Inginereasca-note de curs

131

Forma unei curbe Bezier poate fi uşor seamarolatã. Ea încearcã sã se apropie de poligonul ce trece prin punctele de seamarol, denumit poligon de seamarol. Curba va fi întodeauna în interiorul înfãşurãtoarei convexe a tuturor punctelor (figura 5).

Creşterea numãrului de puncte de control duce la creşterea numãrului şi gradului

polinoamelor necesare. Acest lucru face ca mici modificãri ale punctelor de control sã producã mari modificãri ale întregii curbe. De asemenea cresc resursele necesare calculãrii polinoamelor. Pentru eliminarea dezavantajelor menţionate, se alãturã (concateneazã) mai multe curbe Bezier de ordin scãzut. Aceastã alãturare este foarte simplã la curbele Bezier, putându-se menţine netezimea (figura 6).

Ambele curbe din figura 6 sunt ansamblate din douã segmente de gradul trei. Punctele a, b, c, şi d realizeazã segmentul 1, punctele d, e, f, şi g – segmentul 2.

Se observã cã o trecere linã între segmente în punctul d, se obţine dacã punctele c, d şi e sunt coliniare. Acest lucru se întâmplã pentru cã tangenta la curba Bezier în punctul de capãt se suprapune peste segmentul de capãt.

Utilizarea unei succesiuni de curbe Bezier de ordin mic reduce volumul de calcule, dar se menţine influenţa modificãrii unui punct de control asupra întregii curbe, chiar dacã efectul este mai mic. Motivul rezidã în natura polinoamelor Bernstein (figura 7, pentru ordinul 3). Cu excepţia punctelor de capãt (t = 0 şi t = 1), valorile polinoamelor sunt nenule. Curba rezultantã se obţine prin suprapunerea tuturor polinoamelor Bernstein, multiplicate cu coordonatele x şi y ale punctelor. Prin aceasta o modificare a unui punct de seamarol are efect asupra întregii curbe. Din figurã se mai observã şi faptul cã rezultanta va trece prin punctele de capãt.

Pentru t = 0 existã b03 = 1, celelalte valori fiind nule, deci intervine doar primul punct, cu ponderea 1. De asemenea, b33 = 1 pentru t = 1 celelalte trei valori fiind nule, deci influenţã are doar ultimul punct, cu ponderea 1.

Page 128: Note de Curs

Grafică Inginereasca-note de curs

132

Page 129: Note de Curs

Grafică Inginereasca-note de curs

133

Dacã vectorii punctelor sunt exprimaţi în coordonate omogene se obţin curbele Bezier raţionale, cu coordonatele punctelor exprimate ca rapoarte de polinoame în t. Se aduce astfel un grad suplimentar de libertate în obţinerea formei curbelor, prin alegerea convenabilã a coordonatei omogene a fiecãrui vector. De exemplu, reprezentarea conicelor (arce de cerc, de elipsã etc. ) nu se poate face exact utilizând curbe Bezier obişnuite, dar este posibilã prin curbe Bezier raţionale. 6.3.5.3 Curbe B-spline

Cele douã tipuri de curbe analizate nu convin în totalitate pentru reprezentãri geometrice. Idealul ar suma avantajul curbelor spline cubice cu cele ale curbelor Bezier şi ar evita dezavantajele acestora, pe cât posibil.

O soluţie practicã o constituie curbele B-spline, a cãror formã aminteşte curbele Bezier:

unde B0,k (t),…,Bn,k (t) sunt funcţiile de bazã B-spline, definite recursiv:

Ordinul curbei (k) este independent de numărul punctelor (n), ceea ce rezolvã un

dezavantaj al curbelor Bezier. O deosebire esenţialã între curbele Bezier şi B-spline se evidenţiază comparând

figurile 7 şi 8. Toate funcţiile sunt nenule doar pentru puţine valori ale variabilei t. Din acestã cauzã, modificarea unui punct va avea efect doar în porţiunile de curbã din vecinătatea sa.

Page 130: Note de Curs

Grafică Inginereasca-note de curs

134

Uneori este necesarã renunţarea la netezime în anumite puncte ale curbei,

dorindu-se prezenţa unor discontinuitãţi. Curbele Bezier permit acest lucru dacã se concateneazã mai multe curbe. Curbele B-spline permit o cale mai simplã de introducere a unor vârfuri:puncte de seamarol multiple, adicã puncte sccesive cu coordonate identice. Aceste puncte multiple genereazã în jurul lor un domeniu cu o curburã foarte mare (figura 9).

Prin modificarea ordinului k al unei curbe B-spline se poate influenţa forma întregii curbe,pentru k = 2 curba este poligonul ce leagã punctele ce definesc curba.

Creşterea ordinului face curba B-spline tot mai netedã, dar se departeazã tot mai mult de celelalte puncte. Pentru k = n+1, curba B-spline este identicã cu curba Bezier corespunzãtoare, deci curbele Bezier sunt un caz particular al curbelor B-spline.

În mod obişnuit, nodurile sunt uniform distribuite, obţinându-se curbele Bspline uniforme. Alegând în alt mod distribuţia nodurilor, se obţin curbe B-spline neuniforme, care aduc un grad de libertate suplimentar în obţinerea formei curbelor.

Dacã vectorii punctelor sunt exprimaţi în coordonate omogene,se obţin curbele B-spline raţionale (cu coordonatele punctelor exprimate ca rapoarte de polinoame). Se aduce un grad suplimentar de libertate în obţinerea formei curbelor, prin alegerea convenabilã a coordonatei omogene a fiecãrui vector.

Aplicând simultan o distribuţie neuniformã a nodurilor şi exprimarea vectorilor în coordonate omogene, se obţin cele mai complexe curbe Bspline: neuniforme raţionale (NURBS – Non-Uniform Rational B-spline).

Din cauza multelor proprietãţi pozitive, în principal seamarolul local, curbele B-spline au intrat puternic în domeniul modelãrii pentru CAD. Calculul lor nu este dificil, ele pot fi uşor extinse la mai multe dimensiuni (cum sunt suprafeţele).

Un domeniu neaşteptat de utilizare îl constituie reprezentarea textelor şi scrisului în programele de aplicaţii pentru procesare texte, tehnoredactare, graficã.

Avantajele sunt evidente. Caracterele individuale necesitã spaţiu redus dacã trebuie memorate doar punctele de seamarol. Mãrirea, micşorarea, rotirea şi alte

Page 131: Note de Curs

Grafică Inginereasca-note de curs

135

modificãri asemãnãtoare sunt uşor de realizat, deoarece trebuie modificate doar punctele modelului.

6.3.6 Obţinerea de suprafeţe pornind de la curbe

Existã douã clase de suprafeţe utilizate în proiectarea asistatã de calculator: •Suprafeţe plane •Petice Suprafeţele plane care, cu toate cã au limitări, permit realizarea de modele

robuste rezonabil de complexe. Modelele faţetate ce rezultã utilizează poligoane plane pentru a reprezenta inclusiv suprafeţe curbe, prin discretizare cu un grad de aproximare acceptat. Prin procesul de modelare se realizeazã generarea informaţiilor pentru interiorul unui petic, adicã generearea unor puncte ce pot fi apoi unite, pentru a rezulta un model wireframe, sau grupate pentru a forma poligoane (faţete), de obicei triunghiulare pentru o precizie suficient de bunã.

Peticele (patches) realizeazã descrierea geometricã a unor suprafeţe strâmbe. Peticele pot fi definite implicit prin funcţii de forma f(x,y,z) = 0, sau parametric.

Reprezentarea parametricã este mai utilã în CAD. Fiecare coordonatã este tratatã ca o funcţie de doi parametri, s şi t sau u şi v, de regulã cu limite normalizate: s, t�[ 0,1 ].

Din punct de vedere al modului de generare, se evidenţiazã douã clase de suprafeţe:

•obţinute prin interpolare •obţinute prin baleiere. În prima clasã se înscriu de exemplu, suprafeţele generate prin aplicaţie

bilinearã, lofting simplu sau dublu (Coons), peticele Bezier şi cele bicubice, iar în a doua clasã se încadreazã de exemplu, suprafeţele obţinute prin extrudare, sweeping şi cele de revoluţie.

Page 132: Note de Curs

Grafică Inginereasca-note de curs

136

Suprafeţele complexe ale modelelor vor fi realizate, de obicei, din mai multe petice alãturate. În acest caz se pun mai multe probleme pentru ca suprafeţele sã fie fizic realizabile:

• Compatibilitatea (coerenţa): normalele la suprafaţã de-a lungul muchiilor comune sã fie orientate corespunzãtor pentru cele douã petice; • Autointersectarea : peticele sã nu se autointersecteze şi nici unele cu altele; • Continuitatea: funcţionalitatea şi estetica cer continuitate de ordin superior (şi pentru derivate).

6.3.6.1 Aplicaţie biliniarã

Generarea unei suprafeţe pornind de la patru puncte se poate obţine prin aplicaţie bilinearã. Punctele Q ale peticului rezultat utilizând punctele P00, P01, P10, şi P11 se pot calcula, parametric, din ecuaţia matricealã:

suprafaţa rezultantã fiind riglatã.

O faţã planã se poate obţine prin interpolare, dacã toate vârfurile poligonului

definind faţa, sunt coplanare. Figura 10 prezintă o suprafaţã obţinutã utilizând patru din vârfurile unui cub.

6.3.6.2 Lofting

Prin lofting se realizeazã potrivirea unei porţiuni de suprafaţã (patch ), pe douã curbe parametrice limitatoare (frontierele), utilizînd interpolarea între douã funcţii parametrice opuse utilizate pentru sprijinirea pe cele douã frontiere.

Un caz particular este cel al suprafeţelor riglate (figura 11), cînd cele douã funcţii opuse depind de s respectiv 1 – s. Se realizeazã practic, o trecere linã de la o curbã limitã la cealaltã (figura 12). Punctele Q ale suprafeţei rezultate prin lofting linear pornind de la curbele C1 şi C2 (oricît de complexe) se pot calcula, în formã parametricã.

Page 133: Note de Curs

Grafică Inginereasca-note de curs

137

O generalizare simplã conduce la o operaţie care genereazã o suprafaţã care interpoleazã o familie de curbe parametrice paralele. Operaţia este aplicatã, de exemplu, pentru definirea suprafeţei din curbele ce definesc secţiunile succesive.

Este o operaţie de proiectare la nivel înalt, o metodã eficientã de a specifica mai mulţi coeficienţi simultan printr-o operaţie coerentã unicã şi geometric semnificativã şi intuitivã.

Conceptual, operaţia este aproape directã, dar aplicarea ei este relativ complicatã. Întâi trebuie stabilite corespondenţele parametrice între cele douã curbe.

Se pot normaliza cele douã curbe astfel încât ambele sã aibă parametrii pe

domeniul unitate (0,1), dar suprafaţa loft-atã definitã între douã curbe depinde de modul individual de parametrizare al celor douã curbe. De exemplu, fie douã cercuri de razã unitarã în planele z = 0 şi z = 1. Problemele apar dacã, de exemplu, cele douã cercuri sunt la fel parametrizate, dar în mod neuniform (pe lungimea arcului). Cilindrul rezultat va fi în mod corespunzãtor neuniform parametrizat. O situaţie mai gravã, pornind de la cele douã cercuri amintite anterior, apare dacã, de exemplu, cercurile sunt uniform parametrizate , dar diferã în fazã cu π rad. În acest caz, suprafaţa loftatã nu este cilindricã, cel puţin în sensul mecanic, ci conicã.

Page 134: Note de Curs

Grafică Inginereasca-note de curs

138

6.3.6.3 Suprafeţe de tip Coons

Suprafeţele Coons au apãrut din necesitatea de interpolare a unei suprafeţe netede rezematã pe patru curbe limitã legate (figura 13). O suprafaţã Coons realizeazã lofting pe douã direcţii neparalele.

Punctele Q ale peticului rezultat utilizãnd perechile de curbe limitã C(0,t),

C(1,t), şi C(s,0), C(s,1), ce se întîlnesc în punctele P00, P01, P10 şi P11, se pot calcula , parametric , din:

În multe situaţii de proiectare, caracteristicile critice ale unei suprafeţe sunt

curbele ce o limiteazã, interiorul fiind relativ sensibil în specificaţii. Aici se pot utiliza suprafeţe Coons. 6.3.6.4 Petice bicubice

Din cauza faptului cã expresiile analitice ale curbelor utilizate la construirea modelelor sunt rareori cunoscute (deseori rezultând din operaţii asupra entităţilor geometrice) şi cã, de regulã, se folosesc aproximări cubice (spline), se poate considera o clasã de petice cubice, ale căror puncte Q se pot calcula parametric din:

Coeficienţii aij depind de coordonatele vârfurilor petecului, de tangentele şi de

curburile în vârfuri.

Page 135: Note de Curs

Grafică Inginereasca-note de curs

139

6.3.6.5 Petice Bézier

Reprezintã o extensie a curbelor B-spline, utilizînd, pentru interpolare, douã seturi de funcţii de bazã Bernstein (Ô):

De exemplu, o bazã cuadraticã va conduce la:

Se observã cã matricea de continuitate conţine doar puncte. 6.3.6.6 Suprafeţe capac

Problema punerii de capace apare natural, ca rezultat al unor operaţii de tip extrudare, de exemplu. Problema generalã constã în definirea unei suprafeţe de închidere într-o regiune definitã de o singurã curbã închisã. Un exemplu simplu este închiderea la capete a unei construcţii cilindrice.

Modelele suprafeţelor capac se pot obţine prin generalizarea suprafeţelor Coons.

Existã câteva cazuri particulare interesante. Un astfel de caz apare când capacul este plan. Soluţia standard va fi un disc. Pentru forme mai complicate ale limitelor capacului, chiar concave, soluţiile se obţin mai dificil. Se poate apela, dacã este permis, la faţetarea regiunii capacului, încercând apoi construirea unui sistem spaţial de elemente triunghiulare (tesselare).

Problema generării modelelor suprafeţelor capac nu este încă rezolvatã satisfăcător. 6.3.6.7 Suprafeţe de revoluţie

Definirea suprafeţelor de revoluţie este larg utilizatã în situaţii practice, metoda fiind consideratã una din cele de bazã şi naturalã. Generarea se face prin baleiere circularã.

Matematic, utilizatorul specificã o curbã profil şi o axã de rotaţie ataşatã, apoi cere realizarea unei suprafeţe de revoluţie. Deoarece cercul este reprezentabil ca o curbã B-spline raţionalã, suprafaţa de revoluţie poate fi reprezentatã de tip B-spline dacã curba profil este curbã B-spline. Prin aceste reprezentãri, posibilitãţile proiectantului CAD sunt mari. El poate specifica un unghi de rotire a profilului mai mic decât 2� rad. Poate apoi combina suprafaţa sa cu alte suprafeţe pentru a obţine un obiect mai complex. Flexibilitatea are dezavantajele ei, deoarece, spre exemplu, proiectantul poate specifica un profil ce intersecteazã axa de rotaţie, rezultând un corp tip dublu con, având un singur punct în secţiunea corespunzãtoare intersecţiei. Un astfel de obiect este, evident, nerealizabil.

Page 136: Note de Curs

Grafică Inginereasca-note de curs

140

6.3.6.8 Suprafeţe extrudate

Operaţia de extrudare, inspiratã de procesul de prelucrare obişnuit, este înrădăcinata ca metodã de descriere a anumitor clase de suprafeţe. În sistemele de modelare care permit doare forme primitive şi combinaţiile lor booleene, nepermiţând suprafeţe cu formã liberã, operaţia de extrudare se poate implementa în manierã directã. O operaţie de extrudare este o baleiere rectilinie, caracterizatã de o formã profil. În general, profilul este definit de operaţii booleene între forme 2D. Formal, suprafaţa extrudatã este produsul vectorial al formei secţiunii transversale cu un segment ortogonal (figura 3). Un exemplu comun de corpuri cu suprafeţe în aceastã categorie îl constituie grinzile profilate.

O posibilitate de obţinere a suprafeţelor extrudate este definirea câte unei instanţe a profilului la fiecare capăt al liniei de extrudare şi apoi conectarea punctelor corespunzătoare prin segmente de dreaptã. Dacã profilul original este închis, rezultatul va fi un solid închis (lateral), cu secţiune constantã în orice plan perpendicular pe axa extrudării. Pentru profiluri curbe, suprafaţa extrudatã se poate obţine şi prin lofting, de obicei riglat, între cele douã instanţe ale curbelor profil de la capete.

O altã generalizare permite ca profilul sã fie definit într-un plan ce nu este perpendicular pe curba traiectorie. 6.3.6.9 Sweeping

Existã multe posibilităţi de generalizare a operaţiei de extrudare. Se poate generaliza direcţia de extrudare (baleiere) spre a fi de-a lungul unei curbe arbitrare în loc de o dreaptã normalã, rezultând operaţia sweeping. Un exemplu comun este obţinerea torului, definit ca un profil de regulã circular deplasat pe o traiectorie circularã.

Operaţia este o abstractizare a deplasării unei şaibe de grosime infinit de micã pe o barã curbã, astfel sã rãmânã perpendicularã pe tangenta la curba definitã de barã în punctul respectiv (figura 14). Acest tip de operaţie este foarte util pentru definirea unor forme care în esenţã pot fi gândite ca ţevi sau piese extrudate îndoite, cu profiluri complicate.

Page 137: Note de Curs

Grafică Inginereasca-note de curs

141

O altã generalizare utilã este cea în care profilul poate varia în funcţie de poziţia pe linia de sweeping. Pentru traiectorii rectilinii suprafaţa se poate obţine şi prin lofting. 6.3.6.10 Suprafeţe offset

Operatorul offset este important pentru procesul de definire a unui model spline al unei piese mecanice; de asemenea pentru obţinerea suprafeţelor necesare pentru definirea unui plan de referinţã pentru prelucrare. O suprafaţã offset în cea mai simplã formã (figura 15), este obţinutã prin translaţia geometricã a unei suprafeţe cu valoare datã (în mod uzual, pe direcţia normalei). De exemplu, cele douã capete ale unei bare profilate pot fi considerate, reciproc, obţinute prin offset. De notat cã suprafaţa offset se autointersecteazã şi formează bucle dacã originalul are raze de curburã mai mici decât distanţa offset. Dacã o suprafaţă se autoînvecineazã (nelocal), cu mai puţin decât de douã ori distanţa offset, suprafaţa ei offset se va autointersecta.

Suprafaţa offset este o noţiune naturalã în întocmirea tehnologiei pentru multe procedee de prelucrare. De exemplu, pentru frezarea unei suprafeţe cu frezã sfericã, operaţia de frezare este specificatã relativ la o suprafaţã pe care se plimbã centrul sculei, care este definitã ca o suprafaţã paralelã cu suprafaţa finalã (o distanţã constantã între cele douã suprafeţe – pe direcţia normalã la suprafaţa origine).

Suprafeţe offset apar şi în procesul de injectare de piese din mase plastice, când trebuie sã se ţină seama de contracţia materialului în faza de răcire. Nici un proces real nu poate tolera suprafeţe cu bucle sau autointersectate. Este necesarã detectarea şi eliminarea acestor fenomene. 6.3.6.11 Suprafeţe booleene şi ajustate/tãiate

Modele complexe se pot obţine prin operaţii booleene atât pentru corpuri doar cu elemente simple (figurile 2 şi 3), cît şi B-spline. De exemplu, un tub poate fi modelat ca diferenţã între doi cilindri, din care unul cu raza mai micã decât celãlalt.

Pentru implementarea algebrei volumetrice într-un sistem simplu, se poate memora o formã neevaluatã a unei expresii ce descrie operaţiile, urmând a se calcula intersecţiile analitice şi efectua evaluãrile expresiilor pe mãsurã ce sunt necesare (tehnica CSG).

Page 138: Note de Curs

Grafică Inginereasca-note de curs

142

Sarcina nu este simplã, dar este mai uşor de lucrat cu corpuri ale cãror limite nu sunt suprafeţe spline.

În cazul modelelor B-spline, este posibil sã fie necesare operaţii booleene pe corpuri incomplet specificate (neînchise, neregularizate). Ambiguităţile care apar ridicã probleme în rezolvare.

În cazul aplicãrii operaţiilor booleene pe corpuri definite de funcţii spline, se presupune, de obicei, cã se lucreazã cu o reprezentare a obiectelor prin frontiere.

Acest lucru complicã stabilirea poziţiei unui punct în spaţiu faţã de un obiect. De obicei, se considerã un punct ca fiind interior dacã este de acea parte faţã de suprafeţele limitã, definitã de normala interioarã.

Implementarea completã a operaţiilor booleene este complexã. Se porneşte de la faptul cã într-o reprezentare prin frontiere se cautã suprafeţele limitã ale obiectului rezultat.

Rezultatul poate fi calculat efectuând operaţiile booleene de bazã asupra elementelor limitã ale fiecãrui obiect implicat, conectând apoi, în mod corespunzãtor, elementele selectate.

Principala operaţie elementarã în efectuarea operaţiilor booleene este tãierea. Aceastã operaţie este utilã şi utilizatã independent, nu în cadrul unei operaţii

booleene. Devine necesarã acceptarea unui tip de date suprafaţã tãiatã/ajustatã. Matematic, pentru suprafeţe spline, modelul unei suprafeţe tăiate are un domeniu

restrâns al parametrilor. Restricţia impusã este uzual de forma unei curbe (B-spline), eventual un lanţ de segmente de dreaptã aproximând curba realã. În esenţã operaţia de tãiere este echivalentã cu determinarea curbei de intersecţie a douã suprafeţe. Se folosesc metode prin subdivizare sau incrementale pentru rezolvarea ecuaţiilor rezultante.

Deoarece operaţiile booleene între modelele corpurilor cu suprafeţe curbe necesitã calcule foarte complexe, mari consumatoare de timp, unele modelatoare de solide din programe CAD folosesc, în locul suprafeţelor curbe, suprafeţe faţetate. În acest caz, suprafeţele curbe sunt aproximate prin mulţimi de faţete plane.

Page 139: Note de Curs

Grafică Inginereasca-note de curs

143

Bibliografie [Ames97] A.L. Ames, D.R. Nadeau, şi J.L. Moreland, The VRML 2.0

Sourcebook, John Wiley & Sons Inc., New York, 1997. [Aur91] F. Aurenhammer, “Voronoi Diagrams- A Survei of Fundamental

Geometric Data Structure”, ACM Computing Survey, Vol. 23 Nr. 3, Sept. 1991.

[Azu97] R.T Azuma, “A survey of Augnented Reality”, Presence: Teleoperators and Virtual Environments, Vol. 6, Nr. 4, pp. 355-385, August 1997.

[Baciu99] Rodica Baciu şi D. Volovici, Sisteme de prelucrare grafică, Editura Albastră, Cluj-Napoca, 1999.

[Burd92] G. Burdea, J. Zhuang, E. Roskos, D. Silver şi N. Langrana, “A Portable Dextrous Master with Force Feedback”, Presence- Teleoperators and Virtual Environments, Vol. 1, Nr. 1, pp 18/27, March 1992.

[Burd93] G. Burdea, “Virtual Reality Systems and Applications”, Electro’93 International Conference, Short Course, Edison, NJ, April 1993.

[Burd94] G. Burdea şi P. Coiffet, La Réalité Virtuelle, Edition Hermes, Paris, 1994.

[Burd97] G. Burdea, Force and Touch Feedback for Virtual Reality, John Willey & Sons, Inc., New York, 1997.

[Dog88] D. Dogaru, Elemente de grafică 3D, Ed. Ştiinţifică şi Enciclopedică, Bucureşti, 1988.

[Fang95] Tsung-Pao Fang şi Les A. Piegl, “Delaunay Triangulation in Three Dimensions”, IEEE Computer Graphics and Applications, Vol. 15, Nr. 5, September 1995, pp. 62-69.

[Fjall93] Per-Olof Fjallstrom, “Evaluation of a Delaunay-based method for surface approximation”, Computer-Aided Design, Vol. 25, Nr. 11, November 1993, pp. 711-719.

[Foley90] J.D. Foley şi A. Van Dam, Computer Graphics: Principles and Practices, 2nd Edn, Addison-Wesley, Reading, Massachusetts, 1990.

[Giga93] M.A. Gigante, “Virtual Reality: Definitions, History and Applications”, Virtual Reality Systems, Academic Press, 1993.

[Gour71] H. Gouraud, Continous Shading of Curved Surfaces, IEE Trans. on Computers, C-20(6), June 1971, pp. 623-629.

[Ion99] Felicia Ionescu, Principiile Calculului Paralel, Editura Tehnică, Bucureşti 1999.

[Man95] C. Manetta şi R. Blade, “Glossary of Virtual Reality Terminology”, International Journal of Virtual Reality, Vol.1, Nr. 2, 1995.

[Mold96] Florica Moldoveanu, Zoea Racoviţă, Ş. Petrescu, G. Hera şi M. Zaharia, Grafica pe Calculator, Editura Teora, 1996.

[New81] W.M. Newman şi R.F. Sproull, Principles of Interactive Computer Graphics, McGraw-Hill, New Zork, 1981.

Page 140: Note de Curs

Grafică Inginereasca-note de curs

144

[Prep85] F.P. Preparata şi M.I. Shamos, Computational Geometry: an Introduction, Springer-Verlag, New-York, 1985.

[Rav 07} I.C. Raveica, Grafica asistata de calculator- note de curs Ed Alma Mater Bacau 2007

[Rav 07} I.C. Raveica, Grafica asistata de calculator- indrumar de laborator Ed Alma Mater Bacau 2007

[Rour93] Joseph O’Rourke, Computational Geometry in C, Cambridge University Press, Boston, Massachusetts, 1993.

[Sher92] B. Sherman şi P Judkins, Glimpses of Heaven, Vision of Hell: Virtual Reality and its implications, Hodder and Stoughton, London, 1992.

[Suth74] I.E. Sutherland şi G.W Hodgman, Reentrant Polygon Clipping, CACM, January 1974.

[Watt95] A. Watt, 3D Computer Graphics, Addison-Wesley, Reading, Massachusetts, 1995.

[Woo97] M. Woo, Jackie Neider şi T. Davis, OpenGL Programming Guide, OpenGL Architecture Review Board, Addison-Weslez Developres Press, Reading, Massachusetts, 1997.

Page 141: Note de Curs

Grafică Inginereasca-note de curs

145

Prefaţă ............................................................................................................................................................5

Metode tradiţionale de animaţie........................................................................................................7 Aplicaţii ale graficii pe calculator ....................................................................................................9 Limbaje şi biblioteci grafice.............................................................................................................15

i.2. Tehnologii de afisare .......................................................................................................................19 i.3. Soluţii CAD....................................................................................................................................23 i.4. Software specific ..........................................................................................................................26 i.5. MCAD şi modelare de solide ...................................................................................................29 i.6 Activităţi auxiliare.........................................................................................................................29

1. Bazele matematice ale graficii........................................................................................................31 Sisteme de referinţă tridimensionale .............................................................................................31 1.1. Elemente de geometrie ..............................................................................................................32

Capitolul 2 ..................................................................................................................................................38 2. Modelarea obiectelor .........................................................................................................................38 2.1 Modelarea poligonală a obiectelor..............................................................................................39

Reprezentarea poligoanelor ..............................................................................................................39 2.1.1Reprezentarea poliedrelor....................................................................................................41

2.2. Generarea modelului din descrierea matematică ..............................................................45 2.3. Generarea modelului prin baleiere spaţială ........................................................................45 2.4. Generarea modelului pornind de la o mulţime de puncte care aparţin suprafeţei de frontieră a obiectului ...........................................................................................................................46 2.5. Redarea imaginii obiectelor poligonale ...............................................................................47 2.6. Modelarea obiectelor prin reţele de petice..........................................................................48 2.7. Modelarea prin compunerea obiectelor................................................................................49 2.8. Modelarea prin divizarea spaţială ..........................................................................................50

Capitolul 3 ..................................................................................................................................................53 3. Transformari geometrice ..............................................................................................................53 Transformări geometrice în spaţiu .................................................................................................53

3.1. Transformări în plan...............................................................................................................53 3.2 Sistemul de coordonate omogene............................................................................................61

3.2.1. Compunerea transformărilor ............................................................................................64 3.2.2. Transformări inverse...........................................................................................................70 3.2.3 Sisteme de coordonate.........................................................................................................71

3.3 Transformarea sistemelor de referinţă ...................................................................................72 3.3.1 Rotaţia faţă de o axă paralelă cu una din axele sistemului de referinţă ..............76 3.3.2 Scalarea faţă de un punct oarecare în spaţiu ................................................................77 3.3.3 Rotaţia faţă de o dreaptă oarecare în spaţiu..................................................................78

3.4 Transformarea de modelare.......................................................................................................79 3.5 Alte transformări geometrice în spaţiu ..................................................................................82 3.6 Transformări geometrice în plan .............................................................................................83

Capitolul 4 ..................................................................................................................................................84 4.1. Obiecte grafice .............................................................................................................................84

4.1.1 Obiecte elementare ...............................................................................................................84 4.1.2. Parabole spline......................................................................................................................85

Capitolul 5 ..................................................................................................................................................87 I. Sisteme de vizualizare....................................................................................................................87

5.1 Transformarea de observare......................................................................................................89

Page 142: Note de Curs

Grafică Inginereasca-note de curs

146

5.2 Transformarea de proiecţie........................................................................................................93 5.3 Proiecţia paralelă...........................................................................................................................94 5.4 Proiecţia perspectivă....................................................................................................................95 5.5 Sistemul de referinţă normalizat..............................................................................................96 5.6 Sistemul de vizualizare standard ...........................................................................................102 5.7 Definirea sistemului de referinţă de observare .................................................................103 5.8 Definirea transformării de normalizare ...............................................................................103 5.9 Sistemul de referinţă ecran 3D...............................................................................................107 5.10 Decuparea obiectelor...............................................................................................................109 5.11 Decuparea în plan.....................................................................................................................110 5.12 Decuparea suprafeţelor relativ la volumul de vizualizare ..........................................114 5.13 Eliminarea obiectelor aflate în exteriorul volumului de vizualizare.....................117 5.14 Volumul de delimitare............................................................................................................118 5.15 Detecţia coliziunii ....................................................................................................................119

Capitolul 6 ................................................................................................................................................120 Modelare grafica ....................................................................................................................................120 6.1. Introducere.......................................................................................................................................120

Aplicabilitatea modelãrii in domeniul ingineriei.....................................................................120 6.2. Conceptul de model şi modelare ..............................................................................................120

6.2.1 Conceptul de model................................................................................................................120 6.2.2 Conceptul de modelare..........................................................................................................123

6.3. Metode şi mijloace pentru realizarea formelor complexe în modelarea geometricã......................................................................................................................................................................123

6.3.1 Introducere ................................................................................................................................123 6.3.2 Tehnici de descriere a modelelor geometrice 3D.........................................................124

6.3.2.1 Modelarea prin frontiere (B-rep)................................................................................125 6.3.2.2 Modelarea prin geometria constructivã a solidelor (CSG)................................125 6.3.2.3 Modelarea prin enumerare spaţialã ...........................................................................126 6.3.2.4 Modelarea prin baleiere.................................................................................................126 6.3.2.5 Modelarea analiticã (ASM)..........................................................................................126 6.3.2.6 Modelarea prin instanţierea primitivelor .................................................................127

6.3.3 Metoda booleeanã de creare a modelelor solide utilizând forme geometrice elementare ............................................................................................................................................127 6.3.4 Metoda de creare a modelelor solide orientatã pe prelucrare...................................128 6.3.5 Reprezentarea obiectelor utilizând curbe........................................................................129

6.3.5.1 Curbe spline ......................................................................................................................129 6.3.5.2 Curbe Bezier .....................................................................................................................130 6.3.5.3 Curbe B-spline..................................................................................................................133

6.3.6 Obţinerea de suprafeţe pornind de la curbe....................................................................135 6.3.6.1 Aplicaţie biliniarã............................................................................................................136 6.3.6.2 Lofting.................................................................................................................................136 6.3.6.3 Suprafeţe de tip Coons...................................................................................................138 6.3.6.4 Petice bicubice..................................................................................................................138 6.3.6.5 Petice Bézier .....................................................................................................................139 6.3.6.6 Suprafeţe capac ................................................................................................................139 6.3.6.7 Suprafeţe de revoluţie ....................................................................................................139 6.3.6.8 Suprafeţe extrudate .........................................................................................................140 6.3.6.9 Sweeping............................................................................................................................140

Page 143: Note de Curs

Grafică Inginereasca-note de curs

147

6.3.6.10 Suprafeţe offset..............................................................................................................141 6.3.6.11 Suprafeţe booleene şi ajustate/tãiate.......................................................................141

Bibliografie ..............................................................................................................................................143