Note de Curs

of 143 /143
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.

Embed Size (px)

description

Note

Transcript of Note de Curs

  • Grafic Inginereasca-note de curs

    5

    PREFATA

    Departe de a reprezenta doar o fascinaie, grafica pe calculator a ptruns n viaa noastr cotidian, de la jocurile computerizate la desenele animate, de la descoperirea formei unei funcii matematice, la proiectarea asistat. Dinamica aproape fr egal a acestui domeniu este strns legat de facilitile grafice ale calculatoarelor personale, de apariia i dezvoltarea unui soft specializat, uznd de interfee prietenoase cu utilizatorul. Exploatarea la un nivel nalt a performanelor mainii, nelegerea modalitii de realizare a diferitelor funcii 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 rmne un domeniu fundamental al cunotinelor inginereti. Reprezentarea prin desene a ideilor de rezolvare a soluiilor de principiu a pieselor i ansamblurilor proiectate, este una din sarcinile cele mai importante ale proiectantului. Este unanim recunoscut importana, n toate etapele procesului de proiectare-fabricaie, a desenului ca mijloc efectiv de comunicare a informaiilor. Posibilitatea de a folosi aceast abilitate de ctre calculator, a revoluionat modul n care acestea sunt folosite astzi n toate domeniile.

    n standardul ISO (International Standardization Office) se definete grafica pe calculator (computer graphics) ca metode i tehnici de conversie a datelor ctre i de la un dispozitiv grafic (display) prin intermediul calculatorului. n plus, se mai menioneaz c aceste metode reprezint modul cel mai puternic de comunicare ntre om i calculator.

    Informaia prezentat vizual este perceput de om n modul cel mai natural. Structuri complexe i relaiile ntre ele pot fi percepute ntr-un timp mai scurt, ntr-un numr mai mare i cu mai puine erori n prezentarea vizual dect n oricare alt mod de prezentare.

    Noiunea de grafic pe calculator este asimilat n cele mai multe referine din domeniu cu aceea de grafic generativ (sau sintez de imagine), avnd ca direcie de conversie i transformare a datelor aceea de a crea pe display imaginea unor obiecte a cror descriere este stocat n memoria calculatorului

    Aceste note de curs i propun tocmai o incursiune n acest domeniu att de tentant pentru muli. Aceste note de curs constituie un instrument concret de lucru pentru toi cei care sunt interesai n cunoaterea sau n aprofundarea problemelor legate de grafica pe calculator, n domeniul modelrii geometrice

    n aceast lucrare sunt tratate aa 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 reprezentrile grafice, iar transformrile studiate sunt cele care apar cel mai frecvent n aplicaiile pe calculator. Aceste transformri sunt grupate n funcie de spaiul 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 folosii n grafica pe calculator.

  • Grafic Inginereasca-note de curs

    6

    Totul ar rmne geometrie, mai mult sau mai puin abstract dac ar lipsi referirile la tehnicile de sugerare a realismului imaginilor grafice, ncepnd cu eliminarea aspectelor ce in de restriciile suportului de reprezentare, continund cu tehnicile de colorare i umbrire i terminnd cu animaia grafic.

    Interesul pentru problemele de perspectiva automat i pentru aplicarea lor n proiectare a umbrit, desigur n oarecare msur, studiul automatizrii 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 reprezentrile descriptive permite realizarea grafic pe calculator n tripl proiecie ortogonal a tuturor poziiilor sale caracteristice n spaiu, corespunztoare alfabetului descriptiv al punctului. Epurele obinute astfel automat reflect un desen ireproabil, cu balustrarea proieciilor, cu notarea lor i cu trasarea sau nu a liniilor de ordine.

    Studiul dreptei permite definirea sa att prin dou puncte ct i parametric sau ca intersecie de plane. Este realizat trasarea automat a urmelor i ale proieciilor dreptei, indiferent de modul de definire al dreptei sau de poziia 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 distane dintre elementele geometrice: punct, dreapt, plan sau determinarea bisectoarelor unui unghi a permis o transpunere a principalelor rezolvri 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 animaiei.

    Animaia nu a fost realizat cu uurin i n interval de timp foarte scurt. Mai multe persoane i-au adus contribuia la realizarea animaiei de astzi. n cele ce urmeaz sunt prezentate cteva jaloane din istoria animaiei.

    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 main pe care au denumit-o phenakitstoscope care produce o iluzie de micare, permind observatorului care privete pe un disc aflat n micare de rotaie (acest disc conine o mic fereastr) s observe secvenele de imagine de pe un alt disc aflat la rndul lui n micare de rotaie. Cnd cele dou discuri se rotesc cu turaii juste, sincronizarea ntre ferestre i imagine creeaz un efect de animaie.

    1834 Horner a dezvoltat construcia platoului phenakistoscope. 1872 Eadweard Muybridge a nceput studiul studierii fotografice a animalelor n

    micare. 1887 Thomas Edison a nceput cercetrile n domeniul micrii imaginilor. 1889 Thomas Edison a anunat construirea aparatului sau denumit kinetoscope 1889 George Eastman a nceput fabricarea benzii de film fotografic pe baz de

    nitroceluluz.

  • Grafic Inginereasca-note de curs

    7

    1895 Louis et Augustine Lumire au patentat un aparat care a fost denumit cinematograf capabil s proiecteze imagini n micare

    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 animaia 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 tradiionale de animaie

    nainte de dezvoltarea animaiei computerizate, toate animaiile au fost realizate manual. Toate cadrele unei animaii au fost desenate cu mna. i cum fiecare secund de animaie conine 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 numr mare de personal calificat angajat. Din acest motiv a fost necesar s se dezvolte diferite tehnici de creare a animaiei. Multe din aceste tehnici din istorilcul animaiei au fost preluate i n Grafica asistat de calculator. Cteva din aceste tehnici sunt prezentate n cele ce urmeaz:

    Celula de animaie

    Atunci cnd se creeaz o scen de animaie folosind acesta metod, fiecare

    caracter este desenat pe o foaie de hrtie transparent. Un arier-plan este de asemenea desenat pe o foaie separat opac. Atunci cnd se demareaz animaia 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 modificrile individuale ale fiecrui caracter. Uneori sunt suficiente numai cteva pri separate din caracter care sunt plasate pe piese disparate de hrtie transparent.

    Rotascoping

    Rotascoping-ul este atunci cnd se dorete copierea imaginilor dintr-un film

    video ntr-o scen de animaie. De exemplu, dac se dorete s se animeze un fulg de nea, este mai uor s se deseneze micarea i forma fulgului n diferite pri de animaie, ca un video. Cu ajutorul rotascopului se poate anima cteva 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 animm. De exemplu, dac se dorete reprezentarea unui cine care alearg dintr-o parte n alta a ecranului, secvena video cu cinele care alearg de departe catre noi cu imaginile pe care le avem nu se va putea realiza.

  • Grafic Inginereasca-note de curs

    8

    Tehnicile de animatie sunt numeroase i destul de laborioase dar atunci cnd sunt asamblate ele sunt foarte utile

    Evoluia 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) - interfee utilizator (GUI- Graphical User Interface) cu aplicaii la terminale

    grafice care duc la aplicaii grafice complexe - sinteza de imagini construcia unei imagini fotorealiste (photorealistic

    rendering) o Simularea legilor optice de interaciune a luminii cu si intre obiecte.

    Aceasta aciune 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 interaciunea optica a luminii simularea fenomenelor de interaciune a luminii cu obiecte

    reflexie refracie

    - analiza si prelucrarea imaginilor

    sinteza de imagini - Construcia 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 proieciile 2D ale acestora

    Sinteza imaginilor era considerata ca o disciplina diferita astzi att sinteza de

    imagini cat si analiza si prelucrarea imaginilor se regsesc in grafica asistata de calculator

  • Grafic Inginereasca-note de curs

    9

    Locul graficii asistate de calculator Aplicaii ale graficii pe calculator

    Conform literaturii de specialitate, sistemele de proiectarea asistat de calculator (n engl. CAD Computer-Aided Design) sunt destinate crerii interactive de modele ale obiectelor tehnice reale, analizei acestor modele, generrii documentaiei pentru fabricarea lor i producerii de date grafice i negrafice derivate din model. Definiia este destul de larg pentru a cuprinde ct mai multe din domeniile n care sunt folosite aceste sisteme: mecanic, electronic, electrotehnic, construcii, arhitectur, sistematizare urban sau cartografie, multimedia, etc..

    n accepiunea proprie a noiunii, 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. Totui, din punct de vedere principial i al relaiilor de conlucrare, reprezentarea din fig. 1, n care sunt evideniate i componetele hardware, poate fi acceptat ca schem general a unui sistem CAD.

    Domeniile de aplicaie ale graficii pe calculator s-au extins o dat cu creterea

    puterii de calcul a calculatoarelor i cu ieftinirea adaptoarelor i a acceleratoarelor grafice. n continuare sunt prezentate cteva din cele mai importante domenii de aplicaie ale graficii pe calculator.

    Una din cele mai extinse utilizri ale graficii este n realizarea interfeelor utilizator dezvoltate n numeroase programe utilitare, medii de dezvoltare i programare, sisteme de operare, baze de date. Intefeele grafice sunt mult mai prietenoase dect interfeele prin comenzi date n linia de comand i permit instruirea rapid a utilizatorilor neexeperimentai n folosirea unor astfel de aplicaii.

    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 aplicaie a graficii pe calculator i a prilejuit dezvoltarea a numeroase tehnici de generare i vizualizare a modelelor tridimensionale.

    Prezentrile grafice interactive (n administraie, tehnologie, statistic, management, planificare, comanda i conducerea proceselor industriale) genereaz o gam variat de reprezentri sugestive ale datelor numerice. Astfel de prezentri permit analiza sistemelor mult mai sugestiv dect datele prezentate n tabele.

  • Grafic Inginereasca-note de curs

    10

    n tehnologia multimedia prezentarea de imagini grafice sintetizate, texte, imagini video i sunet sunt integrate ntr-o singur aplicaie (de instruire interactiv, teleconferine, etc). Conexiunea dintre generarea de imagini tridimensionale i prezentarea de imagini video animate reprezint cel mai important aspect al soluiei multimedia.

    Realitatea virtual este tehnica prin care se obine imersiunea (total sau parial) a observatorului ntr-un mediu tridimensional generat interactiv de calculator.

    Realitatea Virtual a cunoscut n ultimii ani o imens dezvoltare i publicitate. n reviste, magazine, la televiziune, s-a prezentat aceast nou i fantastic tehnologie din cele mai variate puncte de vedere. Cuvntul virtual este folosit n mod obinuit n domeniul calculatoarelor pentru a desemna o entitate care simuleaz o alt entitate. De exemplu, termenul memorie virtual se refer la simularea memoriei principale prin memoria hard-discului. Cuvntul realitate se refer la mediul perceput de om prin intermediul simurilor. Deoarece realitatea este perceput prin intermediul simurilor, este posibil alterarea acesteia prin modificarea datelor percepute de unul sau mai multe simuri. De aceea, Realitatea Virtual se refer la modalitatea prin care calculatorul modific modul n care o persoan percepe realitatea, prin simularea unei alte realiti. Aceast realitate, sau mediu, simulat de calculator este numit Realitate Virtual. Dintre cele cinci simuri care sunt folosite pentru percepia realitii, nu toate sunt la fel de importante n crearea unui mediu virtual. Simul gustului i al mirosului au aciuni limitate n perceperea realitii (cu excepia servirii mesei!) i puine cercetri au fost efectuate pentru folosirea lor n medii virtuale. Simul tactil este mult mai util, mai ales atunci cnd se manipuleaz obiecte n mediul virtual. Greutatea, temperatura, duritatea, rezistena la efort, toate aceste informaii se obin prin simul tactil. Din acest motiv, cercetri importante au fost fcute pentru a simula atingerea obiectelor virtuale i, n momentul de fa, experimentele n mediul virtual permit generarea informaiilor tactile. Cele mai importante simuri folosite n realitatea virtual sunt vzul i auzul, deoarece cele mai multe informaii despre mediul nconjurtor se obin prin intermediul ochilor i al urechilor. Din acest motiv, cele mai multe cercetri n domeniul realitii virtuale au fost fcute n domeniul generrii imaginii i a sunetelor. Dintre aplicaiile cele mai importante ale realitii virtuale se pot enumera:

    Simulatoare de antrenament, n special simulatoare de zbor, n care se pot exersa manevre dificile, fr a pune n pericol viaa pilotului sau securitatea aparatului de zbor.

    Proiectare n diferite domenii de activitate (construcii, arhitectur). Proiectantul are posibilitatea s vad rezultatele proiectului sub forma imaginii acestuia n timp real, s observe detaliile mpreun cu alte persoane interesate, i s ia decizii de modificare nainte de construirea prototipului.

    Vizualizarea tiinific, prin care se obine imaginea diferitelor modele sau fenomene inaccesibile de fi observate altfel (structuri atomice, fluxuri de informaie, etc).

    n domeniul medical, n special chirurgie, se pot efectua experimente la rece de nvare a diferitelor proceduri fr riscul vieii pacientului.

  • Grafic Inginereasca-note de curs

    11

    Jocurile distractive i filmele de animaie sunt unele din cele mai cunoscute aplicaii de realitate virtual.

    n aplicaiile de realitate virtual pot fi nglobate un numr diferit de componente care asigur un anumit grad de imersiune, adic de senzaie a prezenei participantului n mediul virtual: sistem de vizualizare, sistem de sunet, sistem de urmrire a poziiei capului i a minii, sistem generare a senzaiei tactile i a forei de reacie. n diferite aplicaii de realitate virtual, unele dintre aceste sisteme, cu excepia sistemului de vizualizare, pot s lipseasc. Sistemul de vizualizare este componenta cea mai important a aplicaiilor de realitate virtual i exist unele categorii de aplicaii de realitate virtual (aplicaii de realitate virtual desktop) dezvoltate numai pe baza generrii imaginii mediului virtual. n aplicaiile de realitate virtual desktop, imaginea vizual a mediului virtual tridimensional este afiat pe monitorul unui calculator (n general PC). Participantul intercioneaz cu mediul virtual prin dispozitive de intrare standard (tastatur, mouse, joystick). Aceste sisteme permit observarea mediului virtual printr-o fereastr (ecranul monitorului) i 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 ateptat ca astfel de sisteme s cunoasc n viitor dezvoltri spectaculoase, datorit apariiei unui mare numr de acceleratoare grafice care permit redarea n timp real a unor imagini realiste.

    Crearea unui mediu virtual, n care se pot efectua diferite experimente, este un proces care necesit dou componente importante, i anume crearea modelului scenei 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 colecia de modele ale obiectelor tridimensionale care constituie cea mai adecvat reprezentare a mediului virtual.

    Vizualizarea scenelor virtuale este un proces on-line, care se desfoar 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 condiiile de explorare (poziie de observare, aciuni interactive, etc).

    Primul standard grafic a fost standardul GKS (Graphical Kernel System) elaborat de ISO n 1985, care coninea un set de funcii grafice 2D independente de echipament. Acest standard a fost extins n anul 1988 la GKS 3D, care conine funcii 3D independente de echipament.

    Un alt standard, PHIGS (Programmers Hierarchical Graphical System) este un standard 3D care permite n plus organizarea ierarhic a modelelor obiectelor i a scenelor virtuale.

    Bibliotecile grafice cele mai generale sunt bibliotecile grafice care implementeaz un anumit standard n definirea funciilor 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, situaia cea mai obinuit n crearea aplicaiilor grafice este aceea n care se poate folosi un calculator care dispune de faciliti grafice (adaptoare, acceleratoare, drivere, biblioteci) care permit programarea la nivel nalt, de cele mai multe ori complet independent de dispozitivele hardware. Biblioteci grafice cum sunt OpenGL sau DirectX asigur accesul la funcii grafice adaptate i optimizate pentru dispozitivele grafice disponibile ale sistemului. De aceea, n lucrare s-a acordat o mai

  • Grafic Inginereasca-note de curs

    12

    mic ntindere descrierii unor funcii existente n biblioteci (de exemplu funciile de generare a segmentelor de linie dreapt, a cercurilor, etc.) i accentul s-a ndreptat ctre prezentarea metodelor de baz de generare a imaginilor i a modului n care acestea se pot aplica folosind limbaje i biblioteci grafice de nivel nalt.

    Programele grafice propuse n aceast carte se prezint sub forma de cod C, C++ i, uneori, pseudocod asemntor limbajului C. Biblioteca grafic OpenGL este folosit intens, datorit portabilitii i disponibilitii acesteia n aproape toate calculatoarele, de la calculatoare PC pn la staii grafice puternice, sub un numr mare de sisteme de operare i apelabil din numeroase sisteme de dezvoltare (toolkit).

    Scopul prezentei lucrri este acela de a da o descriere unificat a principalelor metode de generare a imaginilor tridimensionale mpreun cu aspecte de implementare care s faciliteze sarcina programatorului de a aborda acest domeniu de aplicaii diversificat i n permanent cretere. n acest sens, aproape toate imaginile ilustrative ale diferitelor tehnici au fost produse de autor prin programe grafice descrise n text. 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 aplicaie 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.).

  • 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 vrfuri) sau complexe (proprietari, conectivitate, restricii). Obs. Nu orice program folosete un model. Obiectele din model sunt definite intr-un spaiu

    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 aplicaie Program aplicaie Sistem grafic

    Dispozitiv de afiare

    Dispozitiv de input (mouse, tastatura)

  • Grafic Inginereasca-note de curs

    14

    independent de dispozitivul de afiare. 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 afiaj. Aceasta se poate realiza prin :

    - Tratarea evenimentelor de intrare (obinute de la mouse si tastatura) - Generarea primitivelor geometrice si a comenzilor de afiare ce vor fi

    interpretate de dispozitivul de afiaj Sistemul grafic in acest caz este un set de subrutine ce corespund primitivelor

    grafice, atributelor lor de afiare, 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 aplicaie grafic, indiferent de domeniul creia i este destinat, se dezvolt ntr-un sistem care prezint anumite faciliti grafice, sistem numit la modul general sistem grafic.

    Un sistem grafic este un calculator care dispune de componente hardware i software pentru crearea sau prelucrarea imaginilor. Componenta hardware cea mai important a unui sistem grafic este adaptorul (sau acceleratorul) grafic, prin intermediul cruia este comandat un dispozitiv de afiare (display) color. La aceasta se mai adaug diferite dispozitive de intrare (tastatur, mouse, joystick, trackball, interfee specializate) care asigur interaciunea utilizatorului cu programul de aplicaie.

    n programarea aplicaiilor grafice intervin mai multe componente software, care asigur crearea imaginilor pe display (Fig. 1.4).

    Programul de aplicaie grafic se dezvolt pe baza unor sisteme de dezvoltare de aplicaii (toolkit-uri) sau direct, prin utilizarea unor biblioteci grafice care asigur interfaa cu echipamentul hardware prin intermediul driverelor sistemului de operare. Sistemele de dezvoltare sunt de cele mai multe ori orientate ctre aplicaie i prevd un set de funcii de nivel nalt care permit crearea unui anumit tip de aplicaie. De exemplu, exist toolkit-uri pentru generarea obiectelor i a scenelor virtuale (3d Studio, Autocad, AC3d, Sense8, Designer Workbench, etc), toolkit-uri pentru redarea imaginii scenelor virtuale (Performer, browser Cosmo Player, etc).

    Echipament hardware

    Sistem de operare

    Biblioteci grafice

    Sistem de dezvoltare de aplicaii (toolkit)

    Programul de aplicaie

    Utilizator

    Fig. 1.4 Componentele necesare pentru crearea aplicaiilor grafice.

  • Grafic Inginereasca-note de curs

    15

    Bibliotecile grafice sunt pachete de funcii care asigur interfaa programului de aplicaie (creat direct sau prin intermediul unui toolkit care apeleaz funciile bibliotecii) cu echipamentele hardware ale sistemului grafic.

    Bibliotecile grafice reprezint nivelul de programare n care se ncearc introducerea portabilitii programelor grafice, prin asigurarea unei interfee independente de echipamentele hardware care s respecte anumite convenii de reprezentare a entitilor grafice descrise n standarde.

    Primul standard grafic a fost standardul GKS (Graphical Kernel System) elaborat de ISO n 1985, care coninea un set de funcii grafice 2D independente de echipament. Acest standard a fost extins n anul 1988 la GKS 3D, care conine funcii 3D independente de echipament.

    Un alt standard, PHIGS (Programmers Hierarchical Graphical System) este un standard 3D care permite n plus organizarea ierarhic a modelelor obiectelor i a scenelor virtuale.

    Bibliotecile grafice cele mai generale sunt bibliotecile grafice care implementeaz un anumit standard n definirea funciilor 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, situaia cea mai obinuit n crearea aplicaiilor grafice este aceea n care se poate folosi un calculator care dispune de faciliti grafice (adaptoare, acceleratoare, drivere, biblioteci) care permit programarea la nivel nalt, de cele mai multe ori complet independent de dispozitivele hardware. Biblioteci grafice cum sunt OpenGL sau DirectX asigur accesul la funcii grafice adaptate i optimizate pentru dispozitivele grafice disponibile ale sistemului. De aceea, n lucrare s-a acordat o mai mic ntindere descrierii unor funcii existente n biblioteci (de exemplu funciile de generare a segmentelor de linie dreapt, a cercurilor, etc.) i accentul s-a ndreptat ctre prezentarea metodelor de baz de generare a imaginilor i a modului n care acestea se pot aplica folosind limbaje i biblioteci grafice de nivel nalt.

    Programele grafice propuse n aceast carte se prezint sub forma de cod C, C++ i, uneori, pseudocod asemntor limbajului C. Biblioteca grafic OpenGL este folosit intens, datorit portabilitii i disponibilitii acesteia n aproape toate calculatoarele, de la calculatoare PC pn la staii grafice puternice, sub un numr mare de sisteme de operare i apelabil din numeroase sisteme de dezvoltare (toolkit).

    Scopul prezentei lucrri este acela de a da o descriere unificat a principalelor metode de generare a imaginilor tridimensionale mpreun cu aspecte de implementare care s faciliteze sarcina programatorului de a aborda acest domeniu de aplicaii diversificat i n permanent cretere. n acest sens, aproape toate imaginile ilustrative ale diferitelor tehnici au fost produse de autor prin programe grafice descrise n text. Limbaje i biblioteci grafice Pentru diferite limbaje de programare bibliotecile grafice au funcii variate ce pot fi mprite n mai multe clase. Pentru a putea folosi funciile de grafic n cadrul programelor scrise n limbajul C trebuie s se includ fiierul header graphics.h prin directiva #include , iar n limbajul Pascal cu ajutorul instruciuniii uses n urmtorul mod: uses graph. n acest mod sunt recunoscute i variabilele predefinite sau abloanele unor structuri. Pentru a pitea utiliza funciile de grafic mai sunt necesare fiierele de tip BGI (Borland Graphics Interface), care conin codul obiect al driverelor specifice diferitelor

  • Grafic Inginereasca-note de curs

    16

    interfee grafice i cele de tip CHR ce conin stiluri suplimentare de litere. Lucrul cu biblioteca grafic Borland presupune n prealabil deschiderea, folosirea funciilor i apoi nchiderea ei. Pentru aceste limbaje putem distinge urmtoarele clase de funcii:

    Funcii de intrare/ieire n/din regim grafic i interogarea modului i adaptorului grafic. Din aceast clas de funcii fac parte cele ce iniializeaz modul grafic, cum ar fi intergraph, pentru nchiderea modului grafic; closegraph, pentrudetectarea parametrilor adaptorului grafic; detectgraph, pentru obinerea modului grafic ca numr getgraphmode i ca nume (ir de caractere) getmodename i a numelui driverului getdrivername.

    Funcii pentru determinarea sau setarea parametrilor sistemului grafic. La iniializare parametrii iau valori implicite, dar aceste valori pot fi schimbate n funcie de necesiti. Parametrii sistemului grafic constau din variabile elementare, ce pot fi grupate n diferite structuri predefinite n fiierul header respectiv. Din aceast categorie de funcii 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 funcia setfillstyle, ce se folosete pentru umplere i seteaz pattern-ul de umplere i culoarea.

    Tot de aceast clas de funcii aparin i cele ce seteaz poziia cursorului moveto la o poziie absolut sau relativ la poziia 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 funciilor: setactivepage i setvizualpage. Pentru desemnarea unui vizor se folosete funcia setviewport.

    Funcii de captare i diagnosticare erori. Dup executarea oricrei funcii grafice, exist posibilitatea producerii unor erori. n acest sens exist funcia graphresult, care ntoarce un cod de eroare ce poate fi explicitat printr-un mesaj (ir de caractere) cu ajutorul funciei grapherrormsg.

    Funcii 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, direcia de scriere i mrimea lor. n acest sens exist funciile: settextstyle - ce fixeaz parametrii menionai mai sus; settextjustify - care are ca efect centrarea textului de scris; textheight - ce stabilete n concordan cu fontul activ nlimea n pixeli a unui caracter; textwidth - care returneaz n funcie de fontul curent lungimea n pixeli a irului. Scrierea propriu-zis a irului se face cu funcia outtext sau cnd se dorete o poziie fix la care s se scrie textul pe ecran se va folosi funcia outtextxy.

    Informaiile ce controleaz scrierea textelor n regim grafic sunt grupate n structura textsettingstype, care poate fi citit folosind funcia gettextsettings.

    Funcii pentru gestiunea culorii. Din aceast clas de funcii le putem meniona pe cele care obin culoarea (fond-fa) getcolor, citirea paletei de culori se face de ctre funcia getpallete, iar setpallete o seteaz. Pentru a obine culoare unui pixel de la o anumit coordonat se folosete funcia getpixel,

    Funcii pentru reprezentri geometrice. n cadrul biblioteciigrafice exist funcii 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

    Funcii pentru gestiunea imaginilor. Din aceast clas de funcii reprezentative sunt cele pentru obinerea unei imagini de pe ecran getimage i punerea unei imagini pe ecran putimage. Alturi de acestea mai sunt cele care obin dimensiunea n baii a

  • Grafic Inginereasca-note de curs

    17

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

    Programul de aplicaie grafic se dezvolt pe baza unor sisteme de dezvoltare de aplicaii (toolkit-uri) sau direct, prin utilizarea unor biblioteci grafice care asigur interfaa cu echipamentul hardware prin intermediul driverelor sistemului de operare. Sistemele de dezvoltare sunt de cele mai multe ori orientate ctre aplicaie i prevd un set de funcii de nivel nalt care permit crearea unui anumit tip de aplicaie. De exemplu, exist toolkit-uri pentru generarea obiectelor i a scenelor virtuale (3d Studio, Autocad, AC3d, Sense8, Designer Workbench, etc), toolkit-uri pentru redarea imaginii scenelor virtuale (Performer, browser Cosmo Player, etc).

    Bibliotecile grafice sunt pachete de funcii care asigur interfaa programului de aplicaie (creat direct sau prin intermediul unui toolkit care apeleaz funciile bibliotecii) cu echipamentele hardware ale sistemului grafic.

    Bibliotecile grafice reprezint nivelul de programare n care se ncearc introducerea portabilitii programelor grafice, prin asigurarea unei interfee independente de echipamentele hardware care s respecte anumite convenii de reprezentare a entitilor grafice descrise n standarde.

    Primul standard grafic a fost standardul GKS (Graphical Kernel System) elaborat de ISO n 1985, care coninea un set de funcii grafice 2D independente de echipament. Acest standard a fost extins n anul 1988 la GKS 3D, care conine funcii 3D independente de echipament.

    Un alt standard, PHIGS (Programmers Hierarchical Graphical System) este un standard 3D care permite n plus organizarea ierarhic a modelelor obiectelor i a scenelor virtuale.

    Bibliotecile grafice cele mai generale sunt bibliotecile grafice care implementeaz un anumit standard n definirea funciilor 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, situaia cea mai obinuit n crearea aplicaiilor grafice este aceea n care se poate folosi un calculator care dispune de faciliti grafice (adaptoare, acceleratoare, drivere, biblioteci) care permit programarea la nivel nalt, de cele mai multe ori complet independent de dispozitivele hardware. Biblioteci grafice cum sunt OpenGL sau DirectX asigur accesul la funcii grafice adaptate i optimizate pentru dispozitivele grafice disponibile ale sistemului. De aceea, n lucrare s-a acordat o mai mic ntindere descrierii unor funcii existente n biblioteci (de exemplu funciile de generare a segmentelor de linie dreapt, a cercurilor, etc.) i accentul s-a ndreptat ctre prezentarea metodelor de baz de generare a imaginilor i a modului n care acestea se pot aplica folosind limbaje i biblioteci grafice de nivel nalt.

    Programele grafice propuse n aceast carte se prezint sub forma de cod C, C++ i, uneori, pseudocod asemntor limbajului C. Biblioteca grafic OpenGL este folosit intens, datorit portabilitii i disponibilitii acesteia n aproape toate calculatoarele, de la calculatoare PC pn la staii grafice puternice, sub un numr mare de sisteme de operare i apelabil din numeroase sisteme de dezvoltare (toolkit).

    Scopul prezentei lucrri este acela de a da o descriere unificat a principalelor metode de generare a imaginilor tridimensionale mpreun cu aspecte de implementare care s faciliteze sarcina programatorului de a aborda acest domeniu de aplicaii diversificat i n permanent cretere. n acest sens, aproape toate imaginile ilustrative ale diferitelor tehnici au fost produse de autor prin programe grafice descrise n text.

  • Grafic Inginereasca-note de curs

    18

    Productivitatea muncii de proiectare n o serii de domenii particulare a crescut semnificativ n ultimii ani, sistemele CAD conducnd la productiviti de trei ori mai mari. De exemplu n cazul desenrii automate fa de desenarea manual aceste creteri spectaculoase se datoresc n primul rnd schimbrii mentalitii 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 preuri accesibile, s-a concretizat n apariia 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 funcie de comoditatea i generalitatea utilizrii 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 dorete protecia investiiilor sale n software n sensul unor modificri minime ale sistemului n cazul introducerii n configuraie a unor noi echipamente grafice. Aceasta implic crearea unor sisteme aplicative independente de dispozitivele fizice din configuraie, precum i standardizarea: a) sistemelor software de instrumente grafice independente de dispozitiv; b) interfeei dintre instrumentele grafice i dispozitivul fizic; c) metafiierul de imagini.

    n acest sens la proiectarea i implementarea unui sistem grafic independent trebuie s se in seama de urmtoarele considerente: 1) Programul aplicativ face referine la unul sau mai multe dispozitive grafice virtuale. n momentul lansrii n execuie, programul aplicativ selecteaz unul sau mai multe dispozitive fizice cu care le nlocuiete 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 instruciunile dependente de dispozitiv corespunztoare pentru a genera desene sau a obine intrri de la dispozitivele grafice reale (comenzile virtuale care nu au corespondene n instruciuni 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 haurare). 3) Programul aplicativ definete obiectele grafice folosind primitive grafice prin coordonate reale n 2D sau 3D. 4) Primitivele se grupeaz n segmente; segmentele sunt exclusive. Desenul afiat la un moment dat pe ecran este compus din unul sau mai multe segmente care pot fi identificate prin nume i care se pstreaz ntr-o memorie de date specifice structurate pe segmente. Aceast structur de date grafice este independent de structura de date a oricrui program aplicativ. 5) Dispozitivul grafic virtual are o zon adresabil, independent de dispozitiv, numit sistemul de coordonate virtuale.

  • Grafic Inginereasca-note de curs

    19

    6) Programul aplicativ definete corespondena 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 numete transformarea de vizualizare. 7) Transformarea de vizualizare poate fi utilizat pentru a defini poziia i orientarea unui ptrat fotografic virtual n sistemul de coordonate real 3D. Se definesc astfel proiecii 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 funcii 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 funciile de intrare virtuale.

    Rezumnd, independena de aplicaie i de dispozitive grafice a unui sistem grafic se obine 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 funcii i parametri - asemntoare directivelor de intrare/ieire din sistemul de operare - prin intermediul unei interfee 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 extremitilor. Literele sunt create din segmente de linii scurte.

  • Grafic Inginereasca-note de curs

    20

    Fig. 1.5

    Un asemenea sistem are urmtoarea structura:

    Procesor de afiare care comunica cu o memorie video tampon (buffer) care conine comenzi.

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

    nceputul programului. Mai exist i alte interfee cu calculatorul. Procesorul de afiare primete comenzi de afiare si furnizeaz date de

    interaciune primite de la dispozitivele de intrare (Mouse, tastatura etc). Procesorul de afiare genereaz imaginea la un dispozitiv de afiare (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 afiare modului generator de vector care convertete valoarea numerica ntr-o tensiune analogica ce comanda sistemul de deflexie a CRT. Acesta va conduce fluxul de electroni din punctul iniial in punctul final al vectorului. O astfel de generare se numete scanare aleatoare sau random scan.

    Persistena imaginii este de 10-100 milisecunde pe CRT. Imaginea se remprospteaz periodic. Data de remprosptare (rata de refresh) este de minim 30 sec, f=30Hz (no flicker adic imaginea nu plpie). Pentru generarea ciclica a imaginii procesorul de afiare executa programul i la sfrit sare la nceput (instructiunea jump. Pentru a asigura 30 Hz programul grafic nu poate depi cteva mii de linii si de aici rezulta o limitare a complexitii imaginii cauzata de rata de refresh..

    Tehnologia raster. Structura sistemului e asemntoare (in anii 1970 a fost introdusa si in televiziune)

    Interfaa cu calculatorul

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

    Procesor de afisare

    Disp de afisare

    Date si interaciune

  • 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

    Afiarea e ciclic pentru ca imaginea sa fie stabil (s nu plpie i s nu scad n intensitate). Rata de remprosptare este de 30-60 Hz sau mai mult in funcie de rezoluie. 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

    Interfaa cu calculatorul gazda

    Comenzi de afiare Date de interactiune

    Procesor de afiare

    Controler video

    Monitor Mouse

    Memorie video

    00000100000 00111100001 01111011101 10000001000

    pixeli

  • Grafic Inginereasca-note de curs

    22

    n=96 2x32 biti pentru reprezentarea culorilor in doua buffere distincte (unul care se afieaz, unul pentru imaginea urmtoare), sistem double buffer (pentru animaii) si 32 de biti pentru algoritmul de determinare a vizibilitii - z buffer (uor de implementat hard), care determina profunzimea imaginii pe direcia z, perpendiculara pe ecran. Avantajele si dezavantajele tehnologiei raster Avantaje

    - independenta ratei de refresh de complexitatea imaginii de afiat - posibilitatea de a reprezenta suprafee 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 afiare 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 eantionrii unei funcii continuii de o variabil i care poate prezenta modificri brute care nu pot fi corect eantionate. Exista tehnici antialiasing prin determinarea unor intensiti 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 meniona portabilitatea aplicaiilor si necesitatea standardizrii unui sistem grafic. Prima specificaie de sistem grafic 3D a fost specificaia Core 1977 USA propusa de ACM SIGGRAPH. A fost urmat de standardul GKS, ca o specificaie 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 (Programms 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)

  • 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. Soluii CAD

    nainte de a vedea care sunt opiunile n privina platformelor CAD (numite frecvent i medii CAD). Cu programele din aceast categorie se poate face:

    Desenare nelimitat bidimensional i tridimensional (creare de entiti geometrice simpole sau complexe);

    Dimensionare i haurare (de obicei asociative, ceea ce nseamn c dup o eventual modificare a conturului/geometriei obiectului crora le sunt asociate, cota i respectiv haura se refac automat, fr intervenia utilizatorului);

    Includerea de blocuri i gestionarea acestora: un bloc este un grup de elemente grafice predefinit pentru inserare ulterioar repetat ( simbol), cruiua i se pot asocia seturi de proprieti sau chiar comportamente sub form de constrngeri geometrice sau de parametrizri;

    Folosirea fiierelor referin; fiierul referin este un desen CAD, existent ca fiier extern pe disc, ce poate fi afiat read-only n cadrul desenului curent pentru a asigura diverse referine (poziionri, repere, comparaii etc.) sauz pentru a completa compoziia 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 (opional) crearea/editarea de corpuri pline acceptnd operaii booleene de unire, intersecie diferen, precum i asocierea de proprieti descriptive i intercomportamentale;

    Definirea de legturi cu baze de date externe pentru asocieri informaionale cu obiectele desenate Sistemele de producie integrate domeniu destul de nou i de vast genereaz

    confuzii i interpretri personale. Drept urmare n cele ce urmeaz sunt expuse componentele acestor sisteme, urmnd ca n final s identificm locul ocupat de grafica inginereasc.

    Sistemele de producie integrate cu calculatorul pun oamenii, tehnologia, produsele i procesele mpreun ntr-un singur sistem integrat. Ele au un mare potenial n a reduce pierderile rezultate din volumul mare de munc din cadrul sistemelor de producie tradiional i din procentul foarte sczut 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 proiectrii asistate de calculator, cruia i se pot subsuma urmtoarele 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 construciilor industriale i civile,

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

  • Grafic Inginereasca-note de curs

    24

    modelarea terenului, msurrile topografice i geodezice, proiectarea instalaiilor electrice, termice, sanitare, ventilaie etc.); GIS sisteme geografice informatice sunt doar nrudite cu CADD-ul prin faptul

    c ele nglobeaz pe lng baza de date descriptiv (tabele cu informaii alfanumerice), i o baz de date grafic, adic planuri cu reprezentri vectoriale ale entitilor la care se refer (strzi parcele, cldiri, reele utilitare, orae, ape, limite administrative); Plant Design proiectarea instalaiilor tehnologice bazate pe conducte

    (rafinrii, uzine chimice, termocentrale, instalaii de prelucrare, transport i distribuie produse fluide etc.); EDA privete conceperea schemelor electronice i proiectarea circuitelor

    imprimate (pentru domeniul digital i sau cel analogic); proiectarea n domeniul electronic nu se poate lipsi de simularea funcionrii circuitelor (studierea semnalelor) deci astfel de programe integreaz i funciuni CAE.

    Concepia unui produs se realizeaz prin parcurgerea urmtoarelor faze: o definirea produsului dup cerinele i condiiile pieii creia i este

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

    elaboreaz sub forma de schie, scheme cinematice, electrice, hidraulice, pneumatice, electronice i pe baz de calcule se fac aprecieri legate de principalele componente de care depind caracteristicile funcionale de realizat;

    o elaborarea desenului de ansamblu i a subansamblelor necesare n urma efecturii unor calcule de sintez. n aceast faz se fac calcule de rezisten, durabilitate a celor mai solicitate piese;

    o elaborarea desenelor de execuie ale tuturor pieselor de executat, efectund n paralel i calculele necesare nchiderii lanului de dimensiuni;

    o ntocmirea caietului de sarcini pentru executarea produsului i a documentaiei necesare vnzrii (dosarul de omologare, cartea tehnic, prospecte)

    Toate aceste activiti sunt sensibil uurate prin utilizarea calculatorului. innd seama de fazele conceperii unui produs, CAD ndeplinete funciile: 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 pn la urm asistate de calculator, pretutindeni fiind vorba de stocarea i prelucrarea informaiilor tehnice se ntlnesc frecvent aplicaii care se pot ncadra n CAE. n concluzie CAE cuprinde totalitatea programelor folosite pentru concepia construciei produselor i prezint interes pentru inginerul proiectant. Revenind ns la cea mai concret realitate, principalele manifestri ale tehnologiilor CAD/CAE se refer la:

    Analize i simulri ale comportamentelor reperelor proiectate supuse la solicitri mecanice, termice i electro-magnetice: aici s-a consacrat analiza cu elemente finite (FEA);

    Simulri ale prototipurilor de ansambluri mecanice; studierea comportamentelor machetelor digitale (ceea ce se mai numete digital mock-up) sau a prototipurilor virtuale (virtual prototyping), testri care pentru

  • Grafic Inginereasca-note de curs

    25

    repere mari (maini, avioane) sunt mai ieftine dect cele cu machete- prototipuri reale.

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

    elaborarea procesului tehnologic de grup pentru produse i componentele lor;

    stabilirea itinerarului tehnologic pentru fiecare produs i componentele sale (succesiunea operaiilor fazelor, mnuirilor etc.);

    stabilirea mainilor de lucru, sculelor, dispozitivelor de lucru, celor de transfer, roboilor i ntregului echipament necesar procesului de fabricaie;

    stabilirea secvenelor de transfer, manipulare i control; elaborarea documentelor aferente celor de mai sus cum ar fi

    nomenclatoare, fie tehnologice, liste de materiale, extrase de manoper etc.;

    calculaii de cost, innd seama de toate fazele procesului de producie.

    d) Planificarea, programarea, urmrirea asistate de calculator (Computer Aided Process Programing Scheduling, - CAPS). Componenta de planificare CAPS se refer la cantiti, intervale de timp, ncrcarea capacitilor de producie, dimensiunile lotului de producie. e) Fabricaia 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 instalaii tehnologice capabile s preia sau s interpreteze astfel de comenzi spre a le transforma n procese tehnologice capabile (de exemplu, maina cu comand numeric n 2-4 axe; strunguri i freze automate). Subdomeniul este bine reprezentat n mecanic dar cunoate i alte aplicri (mobil, textile, pielrie); f) Testarea asistat de calculator (Computer Aided Testing, - CAT); g) Asigurarea calitii 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 calitii apar nc din faza concepiei, existnd posibilitatea de testare a produsului prin modelarea i simularea funcionrii lui. Testarea fizic a produsului aparine ns CAT. Cerinele care se respect n cazul asigurrii calitii sunt reglementate prin standardele internaionale ISO 9000, EN2000. h) Product data maintenance PDM documentele tehnice nu se abandoneaz o dat cu ncheierea proiectrii i fabricaiei, ci pot deservi ulterior activitile de exploatare i ntreinere ale produselor respective. Contientiznd acest aspect nc de la conceperea modelului digital, se va obine n final o baz de date i de cunotine deosebit de util fazelor de via ulterioare, aspect ce devine critic pentru produse de anvergur. Activitile de mentenan sau de intervenii extraordinare nici nu mai pot fi astfel concepute cnd este vorba de instalaii tehnologice, avioane sau vapoare, unde reprezentrile tridimensionale (realitate virtual) i informaiile asociate sunt, deseori, vitale.

  • Grafic Inginereasca-note de curs

    26

    Aceste abrevieri acoper astzi unul dintre cele mai evoluate i performante domenii IT, referindu-se la activitile inginereti care asist conceperea, proiectarea, fabricaia, testarea i exploatarea produselor. Clienii acestor tehnologii sunt cei care proiecteaz i produc indiferent c este vorba de piese/ansambluri mecanice, automobile, vapoare avioane, cldiri, drumuri, poduri hri mobilier, instalaii, 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 avnd ca obiect de activitate doar desenarea simpl (numit i CADD), astzi lucrurile au evoluat spre chestiuni mult mai cuprinztoare: proiectarea nseamn majoritar concepere n trei dimensiuni (3D); obiectul proiectat este vzut ca un model unitar ct mai complex al viitorului produs real, deci nglobeaz, pe lng form, i caracteristici cvasi-naturale: densitate, proprieti fizico-mecanice, informaii despre procesele tehnologice. Practic modelul are tendina de a acumula - ntr-un fel de baz de date unificat toate informaiile tehnice necesare proiectrii, testrii, fabricaiei i ntreinerii, astfel c o ntreag arhiv s-a mutat de pe hrtie n format digital (n calculator!), spre a nsoi acest produs de-a lungul fazelor vieii 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 neleg: schie, scheme de principiu, scheme logice, fie tip, imagini digitale, diagrame, desene de execuie, desene de ansamblu , reprezentri 2D i 3D, prezentri 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 aplicaii. 3DStudio este creat de AutoDesk. 3DStudio conine 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 animaie care au alocate comenzi specifice pentru crearea unei animaii.

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

  • Grafic Inginereasca-note de curs

    27

    LightWave 3D este un alt pachet software pentru reprezentri grafice computerizate 3D. A fost creat la nceput pentru platformele Amiga. LightWave 3D este acum disponibil i pentru PC. LightWave 3D este utilizat cu precdere n produciile de TV.. Adobe Photoshop (http://www.adobe.com/prodindex/photoshop/overview.html)

    Dei Adobe Photoshop nu pare a fi o aplicaie specific animaiei computerizate, se poate considera totui ca unul din primele programe grafice. AliasIWavefront (http://www.alias.com)

    Alias este un program de animaie. 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 animaie al firmei AutoDesk. Animator Studio ruleaz sub Windows. El are multe caracteristici care minimizeaz timpii de lucru la o animaie.

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

    SGI. Una din caracteristicile programului Elastic Reality n comparaie cu alte programe este c acesta utilizeaz funciile spline pentru definirea unei arii de morfism. Atunci, morfismul video este la rndul sau nc o imagine. SoftImage

    Este unul din primele trei pachete software de animaie. Este utilizat n mai toate

    studiourile de producie din lume. AutoCAD

    Software specific de proiectare CAD. Realizat de compania Autodesk este unul dintre cele mai rspndite pachete de programe de proiectare Autodesk Inventor (soluie independent)

  • 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 capabilitile 2D cu puterea proiectrii 3D, permind n plus, adaptarea desenelor 2D (DWG) existente pentru modele mecanice 3D Autodesk Mechanical Desktop (MDT) produs pentru modelare parametrizat de piese solide, suprafee i ansambluri fiind produsul de referin Autodesk pentru proiectare mecanic;

    CANALIS aplicaie care ruleaz mpreun cu AutoCAD, de proiectare a sistemelor de canalizare; PLATEIA aplicaie perfect integrat pe platforma AutoCAD, pentru proiectarea cilor de comunicaie (a drumurilor); SPIWood 2000 un program de proiectarea asistat de calculator dezvoltat de firma SPI Software (Frana), ce ruleaz pe platforma AutoCAD 2000, pentru modelarea 3D a omponentelor de mobilier; SPI Sheetmetal este o aplicaie realizat de compania SPI Gmbh pentru modelarea parametric i obinerea de reprezentri desfurate a reperelor complexe i a ansamblurilor din tabl pentru AutoCAD, MDT i Inventor; CADELEC este o aplicaie bazat pe AutoCAD, destinat realizrii proiectelor electrice n domeniul electrotehnic i automatizri industriale, fiind un produs al firmei elveiene SISCAD. CADELEC pune la dispoziia utilizatorilor, biblioteci de simboluri predefinite ce conin elemente simboluri electrice grupate pe categorii, pe care acetia le pot insera n sistem funcie de destinaia lor (de ex. motoare, generatoare, elemente de protecie, contactoare, etc.-fig.4). Folosind din plin facilitile de desenare ale AutoCAD, aplicaia ofer n plus o mare varietate de funcii i faciliti specifice proiectrii electrice. Odat realizat desenul, sistemul de analiz a bazelor de date CADELEC, permite obinerea i analiza unei mari varieti de informaii n funcie de mai multe opiuni de analiz/raportare.

    n acest moment exist mai multe companii a cror cercetri sunt direcionate

    ctre realizarea unor pachete de softuri specifice graficii asistate de calculator, animaiei, realitii virtuale etc. cele mai cunoscute companii sunt: : Adobe Systems Inc., Alias | Wavefront, AutoDesk, Bentley, Cartia, Caligari, Computational Logic Inc.,

  • 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 astzi 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 documentaiile necesare (desene de execuie, detalii, scheme de asamblare, planuri utile la exploatarea i ntreinerea ulterioar proiectrii, prezentri comerciale etc.) Acelai model 3D poate deservi i direciile CAM/CAE, furniznd entitatea matematico-geometric pe care se fac determinri ale comportamentelor la solicitri i pe care se fundamenteaz comenzile numerice pentru mainile digitale de prelucrare mecanic.

    Modelul 3D nu nseamn numai reprezentarea tridimensional, fiind ceva superior afirii 3D a muchiilor obiectelor, un solid se poate obine printr-o varietate de adugri i/sau ndeprtri de forme elemntare (uneori similar ndeprtrii/adugrii tehnologice de material) rmnnd solidar indiferent de complexitatea formei sale geometrice. Acestui solid i se asociaz anumite proprieti (densitate, inerie, rezisten) care se vor dovedi ulterior folositoare. El prezint un comportament inteligent n cadrul procesului de evoluie a formei (se supune armonios operaiunilor de uniune, intersecie i diferen cu alte obiecte), iar relaia sa cu obiectele vecine pentru formarea ansamblurilor are o oarecare isteime. Parametrizarea completeaz frecvent facilitile de baz ale programelor orientate pe modelare solidelor i presupune att asocierea de variabile diverselor dimensiuni ale solidului (parametrii configurabili) ct i definirea unor constrngeri geometrice crora li se supune forma entitii. Un obiect astfel proiectat constituie de fapt un model variaional: modificndu-i-se valorile parametrilor, se obin variante constructive ale aceleiai concepii.

    Iat cteva dintre produsele software activnd 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 Activiti auxiliare

    Dup toate cele prezentate, nu mai este o surpriz afirmaia c avem de a face cu

    un domeniu complex i poate nici faptul c pe lng activitile de baz trecute aici n revist exist i altele, fie aproape la fel de bine definite, fie cu caracter ajuttor, complementar. ntre acestea amintim:

    a)- Managementul i circulaia documentelor digitale se refer la activitile de gestiune a documentelor tehnice ntr-o ntreprindere i la programele responsabile cu acestea DMS (Document Management Systems). Activitile cuprind att arhivarea documnetelor (organizarea i sistematizarea informaiilor digitale) ct i controlul circulaiei documentelor i funciile de supervizare/adnotare a documentelor la care lucreaz mai multe persoane/compartimente.

  • Grafic Inginereasca-note de curs

    30

    Gestionarea fluxurilor informaionale este o problematic generalaplicabil teoretic oricrei ntreprinderi-instituii moderne (mai ales dac se dorete o certificare ISO 9001) ns pentru CAD i-a dovedit de la nceput viabilitatea i necesitatea cci informaiile trebuie s nsoeasc produsul de-a lungul ntregii sale viei. Dac pentru faza de revizuire/supervizare (redlining) sunt indispensabile, asigurnd colaboararea specialitilor implicai (scopul major al EDMS) nu trebuie s omitem c o dat cu proiectarea produselor se constituie i filoanele necesare exploatrii i ntreinerii ulterioare a produselor proiectate (PDM).

    b) Scanarea i vectorizarea. Scanarea/vectorizarea este activitatea prin care documentele tehnice existente pe suport tradiional (hrtie, 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 creia fiierul rezultat are format bitmap (o imagine a crei grafic nu poate fi modificat direct);

    o vectorizarea este procesul prin care o imagine bitmap (obinut uzual prin scanare este convertit n grafic vectorial, genernd un desen similar celui obbinut prin folosirea de programe CADD: mult mai suplu i perfect editabil (modificabil

  • Grafic Inginereasca-note de curs

    31

    Capitolul 1

    1. Bazele matematice ale graficii Sisteme de referin tridimensionale

    Pentru crearea aplicaiilor grafice este necesar ca obiectele s fie poziionate ntr-un sistem de referin tridimensional. Exist mai multe posibiliti de a specifica poziia unei mulimi de puncte (vrfuri) prin care este reprezentat un obiect n spaiul tridimensional: coordonate cilindrice, coordonate sferice, coordonate Carteziene. Dintre aceste sisteme de referin, cel mai utilizat n aplicaiile grafice este sistemul de coordonate Cartezian.

    Sistemul de coordonate Cartezian n care sunt definite toate obiectele scenei virtuale se numete sistem de referin universal (world coordinate system- WCS).

    Un sistem de coordonate Cartezian se definete prin originea O i trei axe perpendiculare, Ox, Oy i Oz, orientate dup regula minii drepte sau dup regula minii stngi. Diferena dintre cele dou sisteme se poate urmri n Fig. 1.2. ntr-un sistem orientat dup regula minii drepte, dac se rotete mna dreapt n jurul axei z de la axa x pozitiv spre axa y pozitiv, orientarea degetului mare este n direcia z pozitiv. ntr-un sistem orientat dup regula minii stngi, rotirea de la axa x pozitiv spre axa y pozitiv, cu orientarea degetului mare n direcia z pozitiv se obine folosind mna stng. Orientarea dup regula minii drepte a sistemelor de coordonate corespunde conveniei matematice standard.

    Diferite sisteme de grafic tridimensional sau de realitate virtual folosesc convenii diferite pentru definirea sistemelor de referin, ceea ce conduce la confuzii, dac nu se precizeaz convenia folosit. n acest text, pentru sistemul de referin universal se folosete convenia de sistem de coordonate drept. n grafica tridimensional se mai folosesc i alte sisteme de referin, care permit descrierea

    operaiilor de transformri geometrice i care vor fi precizate pe parcursul lucrrii. Un punct P n spaiul tridimensional se reprezint n sistemul de referin

    Cartezian printr-un tripet de valori scalare, x, y, z, care reprezint componentele vectorului de poziie 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 poziie al punctului P este OP = xi + yj + zk. n notaia matriceal, un punct n spaiul tridimensional se poate reprezenta printr-o matrice linie sau printr-o matrice coloan:

    y

    x

    z

    Ox

    z

    y

    O

    Fig.1.2 (a) Sistem de coordonate orientat dup regula minii drepte i (b) dup regula minii stngi.

    (a) (b)

  • Grafic Inginereasca-note de curs

    32

    [ ]zyx=P sau

    =

    zyx

    P

    Ambele convenii sunt folosite n egal msur n sistemele grafice, ceea ce, din nou, poate provoca diferite confuzii, dac nu se precizeaz convenia folosit. Convenia de reprezentare sub form de matrice linie a unui punct, folosit n unele lucrri [Watt95], [Mold96], are avantajul c exprim operaiile de concatenare a matricelor ntr-un mod natural, de la stnga la dreapta. Convenia de reprezentare matematic, standardul grafic PHIGS, biblioteca grafic OpenGL, ca i unele din lucrrile de referin n domeniu [Foley90] folosesc notaia de matrice coloan pentru un punct n spaiul tridimensional, care este adoptat i n lucrarea prezent.

    1.1. ELEMENTE DE GEOMETRIE

    Corpul material este limitat, iar limita lui se numete suprafaa corpului. O

    poriune de suprafa este limitat de o curb, iar o poriune de curb se termin ntr-un punct.

    Ecuaiile clasice ale unei curbe sunt: - forma explicit: y=f(x), care este univoc; - forma implicit: f(x,y)=0, ce este specific reprezentrii curbelor nchise; - forma parametric: x=f(t), y=f(t), care reprezint curbele nchise sau cele

    care se intersecteaz; - forma polar: R=f(), semnificnd aceleai curbe ca precedenta form. Noiunile de suprafa, curb i punct pot fi considerate independente de

    suportul lor material. Astfel prin micarea unui punct se obine o curb, prin micarea unei curbe se obine o suprafa, iar prin micarea unei suprafee rezult un volum.

    Se numete figur geometric, o mulime de puncte, curbe i suprafee. Asupra figurilor se pot face diferite transformri geometrice. O transformare geometric este o aplicaie bijectiv a planului (spaiului) pe el nsui. Transformarea identic este aplicaia bijectiv identic i las nemodificate toate punctele planului (spaiului). Dou figuri care se obin una din alta printr-o transformare geometric se numesc figuri congruente sau omoloage. Transformrile cele mai importante sunt izometriile care se mpart n deplasri i antideplasri (oglindiri).

    O deplasare fr punct fix se numete translaie, iar cea cu punct fix se numete rotaie. Noiunile se pot defini i n spaiu. Transformare se numete asemntoare dac distanele dintre punctele omoloage sunt proporionale iar unghiurile omoloage sunt egale. Factorul de proporionalitate k este definit ca raport de asemnare. Raportul lungimilor, ariilor , volumelor din dou figuri asemenea sunt egale cu k, k2, k3.

    Ecuaiile dreptei. Considerm o dreapt d, ntr-o poziie oarecare fa de axe (fig.1.3).

    Fig. 1.3 Dreapta oarecare

    Fie M un punct arbitrar pe dreapta d , vom gsi ecuaia dreptei d dac vom reui s determinm o relaie

    y

    d d'

    B

    M

    M'N

  • 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' intersecia cu MN. Facem urmtoarele cantiti constante (aceleai, oricare ar fi M pe d): m=tgu i n=MM'. Cum NM=NM'+ M'M rezult:

    y=mx+n, care este ecuaia dreptei. (1.1)

    Invers, o ecuaie de gradul I n dou variabile ax+by+c=0 (1.2)

    reprezint o dreapt deoarece poate fi pus sub forma (1.1). Rezolvnd-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) Cunoscnd OA=a, OB=b,OP=p( lungimea normalei OP din origine) i unghiul I

    cu axa Ox, vom putea scrie ecuaia dreptei n funcie de aceste elemente. ntr-adevr: x/a+y/b=1 (Creele, 1821), atunci, prin nlocuirea lui a i b, se obine:

    xcosu+ysinu=v, (1.3)

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

    Fig.1.4 Forma normal Ecuaia cercului Ecuaia cartezian a cercului (fig.1.5) este:

    ( ) ( ) 22020 Ryyxx =+ , (1.4)

    iar dac are centrul n originea sistemului de axe, atunci: x2+y2=R2 (1.5) Ecuaia (1.5) se poate descompune n dou ecuaii 22 xRy = . Fig.1.5. Ecuaiile carteziene ale cercului.

    Partea superioar este trasat variind pe x n intervalul [R,-R] cu pasul p, iar partea superioar se obine prin variaia lui x n intervalul [-R,R] cu pasul p. Ecuaiile parametrice se deduc uor (fig. 1.4), dac centrul este n origine:

    B

    P

    O A

    p

    R

    R

    (x0,,y0)

  • Grafic Inginereasca-note de curs

    34

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

    x=x0 +R cos, y=y0 +R sin, (1.7) Sub o alt form, n funcie de t=tg( /2),

    se obin relaiile:

    Rttx 2

    2

    11

    +

    = , Rtty 21

    2+

    = (1.8)

    Fig.1.6. Ecuaii parametrice Prin metoda recursiv se pot gsi alte ecuaii 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 dezvoltm ecuaiile punctului

    (xn+1,yn+1) i nlocuim corespunztor 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(), obinnd: xn+1=xn c yn s , yn+1=yn c +xn s, care sunt relaii recursive de ordinul unu. Dezvoltnd relaia (1.4) se obine: x2+y2+ax+by+c=0 cu x0= - a/2, y0= - b/2, R2= (a2+b2-4c)/4.

    Ecuaia (1.4) reprezint un cerc real cnd a2+b2>4c. de asemenea, punctele interioare verific inecuaia x2+y2R2.

    Fig1.7. Relaii recursive

    R

    y

    y

    x x

    xn,yn

    xn+1,yn+1

  • Grafic Inginereasca-note de curs

    35

    Conice. Intersecia unui con circular cu un plan se numete conic. Notnd cu unghiul fcut de generatoarele conului cu un plan perpendicular pe axa conului i cu unghiul fcut de planul de seciune cu acelai plan, curba de intersecie este o elips, o parabol sau o hiperbol, dup cum < , = , ori > ( fig.1.6). Aceste trei conice sunt curbe fundamentale care intervin n numeroase aplicaii.

    < = >

    Fig.1.8. Conice

    a)Elipsa ( fig.1.9). Mulimea punctelor pentru care suma distanelor la dou

    puncte date, F, F, numite focare, este constant se numete elips. Ea are ecuaia 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 nsi definiia ei, curba este nchis.

    Ecuaia elipsei cuprinznd 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.

    Ecuaiile parametrice ale elipsei sunt: x=a cos ,

    F F

    M

  • Grafic Inginereasca-note de curs

    36

    y= b sin , cu 0[ [ 360o b) Parabola (fig.1.10). Mulimea punctelor M, egal deprtate de punctul F numit

    focar, i o dreapt D directoare, este o parabol. Ea are ecuaiile:

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

    ctg . Fig.1.10. Parabola

    Avem o ecuaie de gradul al doilea, iar curba are o singur ramur. Curba trece prin origine i este simetric fa de axa Ox. Ecuaia general poate fi scris i sub forma:

    y=ax2+bx+c, a 0.

    Fig.1.11. Hiperbola

    c) Hiperbola (fig.1.11). mulimea punctelor M pentru care diferena distanelor la dou puncte F,i F, numite focare, este constant (egal cu 2a) reprezint o hiperbol.

    Ea are ecuaiile: - carteziene:

    ( ) ( )

    ,122

    02

    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 ecuaia sub

    forma 22 axaby = , observm c y exist atunci

    cnd x > a sau x < a, deci curba este de gradul doi i este format din dou ramuri.

    Hiperbola este echilater cnd a=b i deci, ecuaia devine x2 - y2= a2.

    D

    M

    O F(p/2,0)

    F

    F

    b a

    O

    x

    y

    O

  • Grafic Inginereasca-note de curs

    37

    Fig.1.12. Parabola cubic

    Curbe algebrice clasice i transcendente. Dintre reprezentrile grafice ale curbelor clasice amintim:

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

    b) Parabola semicubic (fig.1.13) are ecuaia 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 cteva astfel de curbe:

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

    n aceeai 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) Exponeniala y = ex i inversa ei, funcia logaritmic y = lnx. Prin combinaiile precedente se obin curbe transcendente noi. De exemplu,

    curba y=sinx/x are aspectul unei sinusoide, cu zerourile k (k 0)repartizate la distane 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 cluzit de exponenialele y = e-x.

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

    Curbe i suprafee. Dac coordonatele unui punct mobil, M, sunt funcii de un parametru t:

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

    punctul M(x,y,z) descrie o curb iar relaia (1.12) reprezint ecuaiile curbei. Cnd coordonatele sunt funcii de doi parametri, u i v, independeni:

    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 ecuaiile (1.13). dac se elimin u i v atunci se obine o ecuaie de forma f(x,y,z)=0. Explicit se pot determina una sau mai multe pnze z=z(x,y). Oricrui punct M(x,y) dintr-un domeniu al planului xOy i corespunde un punct M de cot z. Cnd M descrie tot domeniul lui, M descrie o pnz a unei suprafee. Deoarece o curb este o intersecie a dou suprafee, putem scrie ecuaiile curbei sub forma f(x,y,z)=0, g(x,y,z)=0, sau ca intersecie a doi cilindri, f(x,y)=0, g(y,z)=0.

    O

    y

    x

  • 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 (vrfurile) obiectului sunt precizate relativ la un anumit punct de referin local. De fapt, n modelarea ierarhic, un obiect complex poate avea un numr oarecare de sisteme de referin locale, cte unul pentru fiecare parte component a sa. Instanierea unui obiect n scena virtual nseamn amplasarea acestuia n sistemul de referin universal printr-o succesiune de scalri, rotaii i translaii, care transform obiectul din sistemul de referin local n sistemul de referin universal. Aceast succesiune de transformri este cunoscut sub numele de transformare de modelare.

    Proprietile obiectelor tridimensionale care se modeleaz n aplicaiile grafice se pot mpri n dou categorii: forma i atribute de aspect. Informaia 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 crui form i dimensiuni nu se modific n funcie de timp sau de poziia n scen (proprietatea de form volumetric invariant). Majoritatea aplicaiilor de realitate virtual se bazeaz pe scene compuse din solide, dar exist i aplicaii n care obiectele reprezentate i modific forma i dimensiunile ntr-un mod predefinit sau ca urmare a unor aciuni interactive (de exemplu, n simulri ale interveniilor chirurgicale). Chiar i reprezentarea unor astfel de obiecte (obiecte deformabile) se bazeaz pe un model al unui solid, care se modific n cursul experimentului de realitate virtual. n lucrarea de fa se vor prezenta modele ale solidelor, care stau la baza prelucrrilor 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 importanei i a frecve