Sunteți pe pagina 1din 143

Grafic Inginereasca-note de curs

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

Grafic Inginereasca-note de curs

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

Grafic Inginereasca-note de curs

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

Grafic Inginereasca-note de curs

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

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

Grafic Inginereasca-note de curs

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

Grafic Inginereasca-note de curs

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
11

Grafic Inginereasca-note de curs

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

12

Grafic Inginereasca-note de curs

Programator/utilizator

model

Algoritmi de sinteza

Imagini codificate numeric

Dispozitive de afisare

Fig. 1.1
Imagine reala

Discretizare

Imagine codificata numeric

Algoritmi de analiza

Model

Algoritmi de prelucrare

Afisare

Fig. 1.2
Model aplicaie

Dispozitiv de afiare

Program aplicaie
Sistem
grafic

Dispozitiv de input
(mouse, tastatura)

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
13

Grafic Inginereasca-note de curs

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
Sistem de dezvoltare de aplicaii (toolkit)
Biblioteci grafice
Sistem de operare
Echipament
hardware

Utilizator

Fig. 1.4 Componentele necesare pentru crearea aplicaiilor grafice.


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).
14

Grafic Inginereasca-note de curs

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<graphics.h> , 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
15

Grafic Inginereasca-note de curs

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
16

Grafic Inginereasca-note de curs

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

Grafic Inginereasca-note de curs

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

Grafic Inginereasca-note de curs

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.

19

Grafic Inginereasca-note de curs

Interfaa cu
calculatorul
Date si interaciune

Procesor de afisare

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

Disp de
afisare

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)
20

Grafic Inginereasca-note de curs

Interfaa cu calculatorul gazda

Date de interactiune

Memorie video

Comenzi de afiare

00000100000
00111100001
01111011101
10000001000

Procesor de afiare

pixeli

Controler video

Mouse

Monitor

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.

Cursa de ntoarcere orizontala

Cursa de ntoarcere vertical

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
21

Grafic Inginereasca-note de curs

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)
22

Grafic Inginereasca-note de curs

- 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,
23

Grafic Inginereasca-note de curs

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 mockup) sau a prototipurilor virtuale (virtual prototyping), testri care pentru
24

Grafic Inginereasca-note de curs

repere mari (maini, avioane) sunt mai ieftine dect cele cu macheteprototipuri 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.
25

Grafic Inginereasca-note de curs

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)
26

Grafic Inginereasca-note de curs

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)

27

Grafic Inginereasca-note de curs

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.,
28

Grafic Inginereasca-note de curs

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

Grafic Inginereasca-note de curs

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

30

Grafic Inginereasca-note de curs

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

z
O
x
z

(a)

x
(b)

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


(b) dup regula minii stngi.
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:
31

Grafic Inginereasca-note de curs

P = [x

x
y z ] sau P = y
z

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).
y
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
32

d'

M
M'

B
N

Grafic Inginereasca-note de curs

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.

P
p
O

Fig.1.4 Forma normal


Ecuaia cercului Ecuaia cartezian a cercului (fig.1.5) este:

( x x 0 )2 + ( y y 0 )2

= R2 ,

(1.4)

iar dac are centrul n originea sistemului de


axe, atunci:
x2+y2=R2

(1.5)

(x0,,y0)

Ecuaia (1.5) se poate descompune n dou


ecuaii

y = R2 x2 .
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:
33

Grafic Inginereasca-note de curs

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:

y
R

2t
1 t2
R, y =
R
x=
2
1+ t
1+ t2

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

xn+1,yn+1
xn,yn

Ecuaia (1.4) reprezint un cerc real cnd


a2+b2>4c. de asemenea, punctele interioare verific
inecuaia x2+y2<R2, iar pentru cele exterioare avem
x2+y2>R2.

Fig1.7. Relaii recursive


34

Grafic Inginereasca-note de curs

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:

( x x 0 )2 ( y y 0 )2
a2

b2

= 1,

2
2
unde (x0,y0) este centrul elipsei, iar F(c,0). F (-c,0), cu c = a b , 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 ,
35

Grafic Inginereasca-note de curs

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

F(p/2,0)

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:
b

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:

( x x 0 ) 2 ( y y 0 )2
-

a2
b2
parametrice:

= 1, unde (x0,y0) este centrul hiperbolei;

x=a sec, y=btg.


Ca la elips, avem F (-c,0), F (c,0) I cu c = a 2 b 2 . Scriind ecuaia sub
b
forma y =
x 2 a 2 , observm c y exist atunci
y
a
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
O
x
devine x2 - y2= a2.
36

Grafic Inginereasca-note de curs

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

y= a sin(kx+),
O

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

Grafic Inginereasca-note de curs

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 frecvenei
de utilizare, metodele de modelare i reprezentare a obiectelor sunt urmtoarele:
Modelarea poligonal. n acest form de reprezentare, obiectele sunt
aproximate printr-o reea de fee care sunt poligoane planare.
Modelarea prin petice parametrice bicubice (bicubic parametric patches).
Obiectele sunt aproximate prin reele se elemente spaiale numite petice
(patches). Acestea sunt reprezentate prin polinoame cu dou variabile
parametrice, n mod obinuit cubice.
Modelarea prin combinarea obiectelor (Constructive Solide Geometry - CSG).
Obiectele sunt reprezentate prin colecii de obiecte elementare, cum sunt cilindri,
sfere, poliedre.
Modelarea prin tehnica divizrii spaiale. Obiectele sunt ncorporate n spaiu,
prin atribuirea fiecrui element spaial a unei etichete n funcie de obiectul care
ocup elementul respectiv.
38

Grafic Inginereasca-note de curs

Aceste metode de modelare i reprezentare a solidelor se pot grupa n reprezentri prin


suprafaa de frontier (primele dou metode) i reprezentri prin volum (ultimele dou
metode).

2.1 Modelarea poligonal a obiectelor


Modelarea poligonal, n care un obiect const dintr-o reea de poligoane planare
care aproximeaz suprafaa de frontier (boundary representation B-rep), este forma
clasic folosit n grafica pe calculator. Motivele utilizrii extinse a acestei forme de
reprezentare sunt uurina de modelare i posibilitatea de redare rapid a imaginii
obiectelor. Pentru obiectele reprezentate poligonal s-au dezvoltat algoritmi de redare
eficieni, care asigur calculul umbririi, eliminarea suprafeelor ascunse, texturare,
antialiasing, frecvent implementai hardware n sistemele grafice.
n reprezentarea poligonal, un obiect tridimensional este compus dintr-o
colecie de fee, fiecare fa fiind o suprafa plan reprezentat printr-un poligon.

Reprezentarea poligoanelor
Un poligon este o regiune din plan mrginit de o colecie finit de segmente de
dreapt care formeaz un circuit nchis simplu.
Fie n puncte n plan, notate v0, v1, ,vn1 i n segmente de dreapt
e0
= v0v1, e1 = v1v2, . en1 = vn1v0, care conecteaz perechi de puncte succesive
n ordine ciclic, deci inclusiv conexiunea ntre ultimul punct i primul punct din list.
Aceste segmente mrginesc un poligon dac i numai dac:
Intersecia fiecrei perechi de segmente adiacente n ordinea ciclic este un
singur punct, coninut de ambele segemente: ei ei+1 = vi+1, pentru oricare i =
0,,n1.
Segmente neadiacente nu se intersecteaz: ei ej = , pentru orice
j i+1.
Segmentele care mrginesc un poligon (linia poligonal) formeaz un circuit
nchis (ciclu) deoarece segmentele sunt conectate capt la capt i ultimul segment
conecteaz ultimul punct cu primul punct; ciclul este simplu deoarece segmentele
neadiacente nu se intersecteaz.
Punctele vi se numesc vrfurile poligonului (vertices); segmentele ei se
numesc muchii (sau laturi) ale poligonului. De remarcat c un
poligon conine n vrfuri i n muchii i c muchiile sunt
v2
v0
orientate, astfel nct formeaz un ciclu (circuit nchis). O
astfel de orientare a segmentelor se numete orientare v
3
consistent. n general, se folosete ordinea de parcurgere n
sensul invers acelor de ceasornic: dac se parcurg muchiile n
v5
sensul lor de definiie, interiorul poligonului este vzut
ntotdeauna n partea stng (Fig. 2.1).
v4
Fig. 2.1 Segmentele liniei poligonale sunt orientate i nu se autointerecteaz.

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


39

Grafic Inginereasca-note de curs

spune c orice curb plan nchis simpl mparte planul n dou pri: o parte interioar
curbei, care este o regiune limitat, i o parte exterioar curbei, care este o regiune
nelimitat. Dei pare simpl din punct de vedere intuitiv, demonstraia teoremei lui
Jordan este destul de dificil i poate fi gsit n referinele bibliografice [Rour93].
Aceast teorem justific definiia care se mai folosete pentru poligoane, i
anume: poligonul este o regiune limitat din plan, mrginit de o colecie de segmente
orientate consistent. Prin aceast definiie se consider poligonul ca o regiune nchis
din plan. Uneori, poligonul este considerat ca fiind format numai din conturul su, deci
numai de segmentele de dreapt care mrginesc regiunea, i nu de regiunea nsi. n
continuare, se folosete notaia P pentru a desemna conturul poligonului P (linia
poligonal nchis care mrginete poligonul).

Triangularizarea poligoanelor. O alt proprietate important a poligoanelor


folosit n grafic este proprietatea de triangularizare. Se demonstreaz c orice poligon
poate fi mprit n triunghiuri prin adugarea a zero sau mai multe diagonale.
Proprietatea de triangularizare se bazeaz pe noiunile de vizibilitate i diagonal n
poligoane.
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 su exterior poligonului, adic xy
P. Acest lucru nsemn c linia care unete dou puncte x i y, vizibile unul altuia,
poate atinge un vrf al poligonului. Vizibilitatea ntre dou puncte x i y este complet
(clearly visible), dac linia care unete cele dou puncte nu atinge frontiera poligonal
(Fig. 2.2).
O diagonal a unui poligon este un segment de dreapt ntre dou vrfuri a i b,
complet vizibile unul altuia. Acest lucru nseamn c intersecia dintre segmentul nchis
ab i P este mulimea {a,b}, adic segmentul ab nu atinge linia poligonal P n
alte puncte dect vrfurile a i b, de nceput i de sfrit ale segmentului. Condiiile ca
segmentul ab care unete vrfurile 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).
a
y

x
c

e f

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.

Dou diagonale ale unui poligon sunt nencruciate (noncrossing) dac


intersecia lor este o submulime a capetelor lor (punctele de nceput i de sfrit ale
segmentelor).
Dac se adaug attea diagonale nencruciate cte sunt posibile ntr-un poligon,
40

Grafic Inginereasca-note de curs

atunci poligonul este mprit n triunghiuri. O astfel de partiionare a unui poligon n


triunghiuri se numete triangularizarea poligonului. Diagonalele se pot aduga n orice
ordine, atta timp ct sunt nencruciate. Demonstraia teoremei conform creia orice
poligon admite o triangularizare, se bazeaz pe teorema lui Meister, demonstrat n
[Rour93], care stabilete c orice poligon cu n4 vrfuri admite cel puin o diagonal.
Teorema triangularizrii se bazeaz i pe lema numrului de diagonale: Orice
triangularizare a unui poligon P cu n vrfuri utilizeaz n3 diagonale i const din n2
triunghiuri. Aceste teoreme se demonstreaz prin inducie. n Fig. 2.3 este prezentat
triangularizarea unui poligon convex cu opt laturi; se insereaz 83 = 5 diagonale
nencruciate i rezult 8 2 = 6 triunghiuri.
Teorema triangularizrii, 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 fee poligonale, fiecare
poligon se descompune n triunghiuri i triunghiurile sunt generate prin algoritmi
implementai hardware.
5

6
3
7

2
1

Fig. 2.3 Triangularizarea unui poligon convex.

Din punct de vedere al reprezentrii n program a poligoanelor, cea mai


compact form este reprezentarea printr-o list liniar de vrfuri, fiecare vrf fiind
specificat printr-o structur (sau clas, n programarea orientat pe obiecte) care
memoreaz (cel puin) coordonatele vrfului. Alte date referitoare la vrfurile
poligoanelor necesare n modelarea i redarea obiectelor (normal, culoare, coordonate
de texturare, etc.) vor fi descrise n seciunile care urmeaz.
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 puin n
reprezentarea modelului unui obiect. Lista liniar de vrfuri poate fi implementat ca
vector sau ca list simplu sau dublu nlnuit.
2.1.1 Reprezentarea poliedrelor
n modelarea i reprezentarea prin suprafaa de frontier, obiectele sunt
aproximate prin poliedre i modelul lor este reprezentat prin suprafaa poliedrului,
compus dintr-o colecie de poligoane.
Un poliedru reprezint generalizarea n spaiul tridimensional a unui poligon din
planul bidimensional: poliedrul este o regiune finit a spaiului a crui suprafa de
frontier este compus dintr-un numr finit de fee poligonale plane. Suprafaa de
41

Grafic Inginereasca-note de curs

frontier a unui poliedru conine trei tipuri de elemente geometrice: vrfurile (punctele)
care sunt zero-dimensionale, muchiile (segmentele), care sunt unidimensionale i feele
(poligoane) care sunt bidimensionale (Fig. 2.4).
Suprafaa de frontier a unui poliedru este o colecie finit de fee poligonale
care se intersecteaz corect. Intersecia corect a feelor nseamn c pentru fiecare
pereche de fee ale obiectului, feele sunt disjuncte, au n comun un singur vrf, sau au
n comun dou vrfuri i muchia care le unete.
Fee
poligonale
Muchii
Vrfuri

Fig. 2.4 Reprezentarea prin suprafaa de frontier a unui poliedru.


Din punct de vedere matematic, nu este imediat evident c un solid poate fi
reprezentat univoc prin suprafaa care l mrginete. De aceea, este necesar s fie
stabilite condiiile n care aceast reprezentare este permis. Aceste condiii, numite
condiii de construcie corect, se definesc pentru suprafee de frontier triangularizate.
Triangularizarea unei suprafee poliedrale se obine prin triangularizarea fiecrei fee
poligonale, astfel nct suprafaa rezultat const din vrfuri care sunt nconjurate de
triunghiuri, fiecare pereche de triunghiuri fiind adiacente de-a lungul unei muchii.
Laturile triunghiurilor adiacente unui vrf formeaz un circuit de segmente, numit linkul vrfului (Fig. 2.5).
Link

Fig. 2.5 Triangularizarea suprafeei de frontier.


Link-ul unui vrf al suprafeei.

O suprafa de frontier construit corect ndeplinete urmtoarele condiii:


Linkul fiecrui vrf al suprafeei triangularizate este complet, adic formeaz un
circuit nchis, nu neaprat planar.
Triunghiurile suprafeei triangularizate sunt orientate consistent.
nchiderea link-ului fiecrui vrf asigur proprietile suprafaei de a fi nchis i
conectat. Proprietate de nchidere nseamn c suprafaa nu are un sfrit. Proprietatea
de conectivitate nseamn c exist cel puin o cale de la un triunghi la altul aparinnd
aceleiai suprafee de frontier, care poate fi parcurs prin traversarea muchiilor
adiacente. Dac o suprafa nu este nchis sau nu este conectat, prin triangularizarea
suprafeei nu se obin link-uri nchise.
Proprietate de construcie corect a suprafeei de frontier a unui solid se poate
verifica folosind condiia de orientare consistent a suprafeei, formulat de legea lui
Moebius: O suprafa nchis este orientat consistent dac la traversarea triunghiurilor
sale (rezultate dintr-o triangularizare arbitrar), ntr-o direcie unic (de exemplu, n
42

Grafic Inginereasca-note de curs

direcia invers acelor de ceasornic), fiecare muchie este traversat de dou ori, n
direcii opuse (Fig. 2.6).
Generalizarea n spaiul tridimensional a teoremei lui Jordan spune c orice
suprafa de frontier nchis, consistent orientat, mparte spaiul n dou pri: o parte
interioar suprafeei, care este o regiune limitat, i o parte exterioar suprafeei, care
este o regiune nelimitat.
Din punct de vedere geometric, orientarea consistent se verific prin direcia
normalelor la feele obiectului: dac normalele feelor sunt ndreptate ctre aceeai
regiune a spaiului (fie toate ndreptate spre interior, fie toate ndreptate spre exterior),
atunci suprafaa are o orientare consistent. Acest mod de verificare se refer la
obiectele tridimensionale fr caviti, dar se poate extinde cu uurin i la obiecte care
prezint caviti.

Fig. 2.6 Legea lui Mobius verific orientarea consistent a unei suprafee
triangularizate.

Teoretic, orientarea consistent se verific pentru feele triangularizate ale


suprafeei de frontier, dar, prin extindere, se poate verifica orientarea consistent
folosind normalele la feele poligonale, deoarece toate triunghiurile obinute prin
triangularizarea unui poligon care reprezint o fa a unui obiect au aceeai orientare
(Fig. 2.7).
Orientarea consistent a feelor poligonale ale obiectelor este o condiie de
verificare a construciei corecte a suprafeei de frontier i, n acelai timp, este folosit
n operaiile de eliminare a suprafeelor ascunse n cursul redrii obiectelor
tridimensionale. De aceea, normalele la feele poligonale se memoreaz n modelul
obiectelor, mpreun cu coordonatele vrfurilor.

Fig. 2.7 Orientarea consistent a feelor obiectului.

Att n cursul modelrii, ct i n cursul redrii imaginii, modelul obiectelor se


reprezint mai complex, coninnd i alte informaii geometrice i atribute de aspect.
Astfel, culoarea (mai general spus, materialul) este o informaie care se asigneaz
fiecrei fee sau fiecrui vrf al obiectului. n general, modelul poligonal cu
reprezentarea prin indeci a feelor poligonale este implementat orientat pe obiecte,
folosind mai multe clase (de baz i derivate) care permit ncapsularea tuturor
43

Grafic Inginereasca-note de curs

informaiilor necesare pentru redarea obiectelor.


O reea de poligoane poate s reprezinte fie suprafaa de frontier a unui solid,
fie o suprafa deschis, necesar n anumite situaii de modelare, cum este suprafaa
terenului simulat ntr-o scen virtual. Deoarece se modeleaz o zon geografic
limitat i nu se exploreaz scena astfel ca s fie vzut marginea pmntului, se
poate folosi o suprafa poligonal deschis pentru reprezentarea terenului.
Reprezentarea obinuit n grafica din scenele virtuale este aceea n care fiecare
poligon este reprezentat ca o suprafa (poligoane pline), dar n proiectrile grafice (n
mecanic, construcii, etc) se folosete i reprezentarea prin contur a poligoanelor,
numit reprezentare cadru de srm (wireframe) (Fig. 2.8).

(a)

(b)

Fig. 2.8 Reprezentarea plin (filled) i cadru de srm (wireframe) a obiectelor.


Precizia de reprezentare a modelului, adic diferena dintre suprafaa obiectului
i feele poligonale prin care este aproximat, este un parametru important de modelare.
n general, cu ct numrul de poligoane prin care se aproximeaz suprafaa obiectului
este mai mare, cu att precizia de reprezentare este mai bun. Se observ diferena
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 numr mare de poligoane pentru reprezentarea obiectelor
conduce la un volum imens de date n modelarea scenelor virtuale, care implic cerine
corespunztoare de memorare i de capacitate de calcul. Orict de mult ar crete
capacitatea de prelucrare n sistemele grafice, prin folosirea paralelismului i prin
implementarea hardware a algoritmilor de prelucrare, performane de generare
interactiv n timp real a imaginilor se pot obine numai dac obiectele scenei se
modeleaz n mod corespunztor. Metodele de aproximare eficient a modelelor sunt
cunoscute sub numele de simplificarea (sau rafinarea) datelor.
Tehnica de simplificare direct, prin reducerea uniform a numrului de
poligoane de reprezentare a obiectului este inacceptbil, deoarece nu se poate controla
precizia de reprezentare. Pentru pstrarea unei precizii de reprezentare constant, se
folosete modelarea adaptiv, n care dimensiunea feelor poligonale variaz n funcie
de curbura suprafeei; n prile cu curbur pronunat 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 reprezentri, fiecare cu o precizie diferit. n cursul generrii
imginilor, se selecteaz nivelul de detaliu corespunztor, n funcie de poziia obiectului
fa de punctul de observare. Cu ct obiectul este mai deprtat, se selecteaz o
reprezentare cu o precizie mai sczut a obiectului. Acest metod este posibil datorit
44

Grafic Inginereasca-note de curs

folosirii proieciei perspectiv n generarea imaginilor i va fi neleas mai uor dup


parcurgerea seciunii urmtoare privind transformrilor geometrice.
Modelul poligonal al unui obiect se poate genera prin mai multe metode, n
funcie de tipul obiectului i de aplicaia grafic n care este folosit modelul respectiv.
Se poate folosi una din urmtoarele metode de modelare poligonal:
Generarea modelului din descrierea matematic a obiectului.
Generarea modelului obiectului prin baleiere spaial.
Generarea modelului pornind de la o mulime de puncte care aparin suprafeei
de frontier a obiectului.

2.2. Generarea modelului din descrierea matematic


Se poate genera reeaua de poligoane de aproximare a obiectelor care au o
descriere matematic cunoscut. De exemplu, ecuaiile de definiie a unor suprafee
quadrice:
Elipsoid:
(2.1)
x 2 a 2 + y2 b2 + z2 c2 1 = 0
unde a, b c sunt semiaxele elipselor.
Hiperboloid:
x 2 a 2 + y 2 b 2 z 2 c 2 1 = 0 si
x 2 a 2 + y2 b2 z2 c2 + 1 = 0

(2.2)

Paraboloid eliptic:
x 2 a 2 + y2 b2 = z

(2.3)
Surprafaa se intersecteaz mai nti cu un numr n de plane perpendiculare pe
axa Oz, de ecuaii z = n z , pentru n = k, k+1, -1, 0, 1 , 2 ,k1,
k. Se obin n elipse (paralele) i pe fiecare elips se eantioneaz m puncte echidistante
(pe meridiane), obinndu-se (n 1) x m poligoane care aproximeaz suprafaa de
frontier a obiectului respectiv.
Aceste suprafee se pot obine i prin rotaia unei curbe n jurul unei axe de
coordonate. De exemplu, suprafaa elipsoidului se obine prin rotaia n jurul axei z a
elipsei:
x 2 a 2 + y2 b2 + z2 c2 1 = 0
(2.4)
y = 0.
Prin rotaia unei curbe n jurul unei axe se pot obine obiecte tridimensionale
mai variate, n funcie de forma curbei care se rotete. De exemplu, un tor se obine prin
rotaia unui cerc n jurul unei axe paralele cu planul cercului. Suprafeele astfel obinute
se numesc suprafee de rotaie.

2.3. Generarea modelului prin baleiere spaial


Se pot genera obiecte tridimensionale prin deplasarea (sweeping) unei suprafee
generatoare de-a lungul unei curbe oarecare. Dac se variaz forma i orientarea
suprafeei generatoare n cursul deplasrii, se pot obine obiecte variate, n funcie de
forma curbei i de orientarea, forma i variaia formei suprafeei generatoare. Prin
aceast metod se pot obine att formele regulate descrise mai sus (elipsoid,
45

Grafic Inginereasca-note de curs

hiperboloid, paraboloid eliptic, tor) ct i alte obiecte numite solide ductibile sau
extrudate (ducted solids) sau cilindri generalizai (generalized cylinders)
(Fig.
2.9).

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

Pentru definirea deplasrii unei suprafee 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. mprirea intervalului n distane egale nu d rezultate bune,
deoarece punctele obinute nu vor fi egal distribuite pe suprafaa obiectului. De aceea
este necesar divizarea intervalului n funcie de curbura curbei. Dac curbura este
pronunat, 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 mulime de puncte


care aparin suprafeei de frontier a obiectului
O metod mai general de modelare a obiectelor tridimensionale se bazeaz pe
cunoaterea unei mulimi de puncte distribuite uniform sau neuniform pe suprafaa
obiectului. Aceast metod implic mai nti obinerea coleciei de puncte, i apoi
construirea reelei de poligoane care s aproximeze obiectul cu precizia dorit. Dac
metodele prezentate mai nainte pot fi utilizate pentru o categorie restrns de obiecte,
n schimb, metoda generrii modelului pornind de la o mulime de puncte ale suprafeei
acestuia poate fi aplicat pentru cele mai variate obiecte: cldiri, vehicule, plante,
animale, elemente anatomice, teren, etc.
Mulimea de puncte de pe suprafaa obiectului se determin diferit, n funcie de
modul n care este cunoscut sau reprezentat obiectul real:
Pentru obiectele care se proiecteaz ntr-un sistem de proiectare bazat pe
calculator CAD (Computer Aided Design), informaiile de form necesare n
generearea modelului se pot obine din reprezentarea proiectului. De exemplu, cldiri,
obiecte mecanice, vehicule, pot fi proiectate n AutoCad i coordonatele vrfurilor
suprafeelor sunt folosite pentru reprezentarea prin reea poligonal a obiectului.
Pentru obiectele real existente, sau machete ale acestora, se poate folosi un
scanner 3D cu laser. Obiectul real (sau macheta acestuia) este plasat pe o mas rotativ
n direcia de emisie a unei raze laser. La fiecare rotaie complet a mesei se obine o
colecie de puncte pe un contur al obiectului, prin msurarea distanei la suprafaa
obiectului. Dup fiecare rotaie, se deplaseaz masa n sus sau n jos, astfel c se obine
o colecie de contururi ale obiectului. Toate aceste puncte de pe suprafaa obiectului
sunt apoi folosite pentru crearea modelului poligonal.
46

Grafic Inginereasca-note de curs

Pentru modelarea terenului se folosesc hri digitale care furnizeaz altitudinile


terenului ntr-o gril uniform de puncte, sau contururi de nivel, care unesc puncte cu
altitudine constant.
Fiind cunoscut o mulime de puncte V care caracterizeaz un obiect
tridimensional, volumul R3 acoperit de aceste puncte se numete domeniul
mulimii V. este un poliedru, convex sau neconvex, iar punctele mulimii V pot fi
dispuse regulat sau neregulat n domeniul . Cazul cel mai frecvent ntlnit n modelare
este acela n care punctele mulimii V sunt distribuite neregulat n spaiu i aproximarea
obiectului se realizeaz printr-o reea tridimensional de poligoane , care aproximeaz
linear pe poriuni obiectul dat. Reeaua trebuie s fie construit pornind de la
mulimea V de puncte n spaiu i de la cerinele de precizie de aproximare a obiectului.
Construirea modelului poligonal al unui obiect cunoscut printr-o mulime de
puncte de pe suprafaa sa se poate realiza prin mai multe metode, dintre care cele mai
folosite sunt triangularizarea (triangulation) i transformata Wavelet.

2.5. Redarea imaginii obiectelor poligonale


Aa cum s-a mai amintit, modelarea poligonal este cea mai folosit form de
modelare a obiectelor n grafica pe calculator, datorit simplitii reprezentrii
modelului poligonal i a faptului c, n momentul de fa, majoritatea acceleratoarelor
din sistemele grafice conin programe implementate hardware de redare eficient a
poligoanelor. Algoritmii de redare implementai n acceleratoarele grafice trateaz
separat fiecare poligon (primitiv geometric) reprezentat prin coordonatele vrfurilor
sale, ceea ce face ca procesul de redare a imaginii s fie foarte simplu. Redarea
imaginilor scenelor virtuale compuse din obiecte a cror reprezentare nsumeaz mii de
poligoane nu este ceva neobinuit.

Fig. 2.10 Redarea obiectelor modelate prin reea de fee poligonale.

Redarea obiectelor poligonale este implementat printr-o succesiune de operaii


de transformri grafice asupra obiectelor, numit pipeline grafic. Aceast succesiune,
47

Grafic Inginereasca-note de curs

care va fi descris pe larg n seciunea urmtoare, const din transformri geometrice


aplicate vrfurilor obiectelor, prin care se transform fiecare fa a obiectului din
sistemul de referin de modelare ntr-un sistem de referin de afiare, urmat de
transformarea de redare, prin care se obine culoare pixelilor care se afieaz pe display.
n Fig. 2.10 este redat imaginea avionului F-16 modelat prin 2366 fee poligonale i
redat prin prelucrarea fiecrei fee, n modul cu fee pline i umbrire i n modul
wireframe.
Pentru toate celelalte modele de reprezentare a obiectelor (reprezentarea prin
reele de petice, prin compunerea obiectelor sau prin subdivizarea spaial), pe lng
redarea direct a modelului respectiv, exist i posibilitatea de redare prin deducerea
mai nti a reprezentrii poligonale corespunztoare, urmat de folosirea algoritmilor de
redare poligonal.

2.6. Modelarea obiectelor prin reele de petice


Un petic (patch) este o suprafa curb definit parametric n spaiul
tridimensional. Prin reprezentarea parametric, punctele de pe suprafa se pot calcula
secvenial, pentru diferite valori ale parametrilor, mult mai simplu dect prin rezolvarea
sistemului de ecuaii care descriu implicit suprafaa. Reprezentarea parametric a
curbelor i a suprafeelor este folosit n proiectarea i n modelarea obiectelor pentru
obinerea unei precizii mai ridicate de aproximare.
Un segment de curb n spaiul tridimensional poate fi definit printr-un sistem
de ecuaii n funcie de un parametru:
x (u ) = a x u 3 + b x u 2 + c x u + d x
y( u ) = a y u 3 + b y u 2 + c y u + d y

(2.5)

z(u ) = a z u 3 + b z u 2 + c z u + d z

Aceasta este o curb cubic, definit ca form i mrime de cei 12 coeficieni,


numii coeficieni algebrici ai curbei. n notaie vectorial se poate scrie forma
parametric a unei curbe cubice:
Q(u ) = Au 3 + Bu 2 + Cu + D
(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 aplicaiile 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 numr
mai mare de coeficieni i sunt mai dificil de prelucrat eficient n reprezentrile grafice.
La modul general, o curb parametric cubic se poate defini prin ecuaiile:
3

Q( u ) = Pi B i (u )

(2.7)

i =0

unde Q este vectorul de componente (x, y, z), Pi sunt punctele de control ale curbei,
fiecare vector Pi avnd componentele (xi, yi, zi), iar Bi sunt funciile de baz (sau de
amestec blending functions) ale reprezentrii parametrice.
Diferite funcii de baz au proprieti diferite n determinarea formei curbei
parametrice: ele pot interpola sau aproxima o curb dat, pot asigura anumite condiii de
48

Grafic Inginereasca-note de curs

continuitate a mai multor segmente de curb.


Specificarea unui segment de curb (sau a unui petic de suprafa curb) printrun set de puncte de control este o metod de baz n proiectarea grafic interactiv:
proiectantul definete punctele de control; curba este generat i vizualizat interactiv;
dac forma curbei nu este mulumitoare, proiectantul modific unul sau mai multe
puncte de control, pn obine rezultatul dorit.
Cele mai utilizate tipuri de curbe i suprafee parametrice n proiectarea grafic
sunt curbele (i suprafeele) Bzier i B-spline. n bibliotecile grafice exist funcii de
generare a curbelor i suprafeelor parametrice.

2.7. Modelarea prin compunerea obiectelor


Modelarea prin compunerea obiectelor (Constructive Solid Geometry CSG) se
folosete atunci cnd un obiect poate fi obinut prin combinarea mai multor obiecte
elementare, numite primitive geometrice.
Primitivele geometrice utilizate sunt sfere, conuri, cilindri sau paralelipipede
dreptunghice i sunt combinate folosind operatori booleni i transformri liniare. Un
obiect complex este reprezentat printr-un arbore, ale crui frunze sunt primitivele
geometrice iar nodurile memoreaz operatori booleeni sau transformri liniare.
n Fig. 2.11 este prezentat operaia de reuniune a dou obiecte elementare. Alte
operaiile posibile care se pot efectua asupra primitivelor geometrice sunt scderea i
intersecia.

Fig. 2.11 Operaia de reuniune a dou primitive geometrice.

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 conin operatorii booleni.
Paralelipipedele sunt combinate folosind operaia de reunuine, iar o gaur este practicat
ntr-unul din paralelipipede prin scderea unui cilindru din ansamblul celor dou
paralelipipede.
Deoarece arborele de reprezentare memoreaz att operaiile boolene ct i
forma primitivelor geometrice, operaiile de modificare ale obiectului compus sunt
relativ simple. De exemplu, o gaur ntr-un obiect se modific prin modificarea poziiei
sau a dimensiunii primitivei geometrice folosite n operaia de scdere. O astfel de
modificare este mult mai dificil n reprezentarea prin suprafaa de frontier a
modelelor.
Redarea imaginii obiectelor CSG se poate face prin mai multe metode:
Redarea direct a obiectului n aplicaiile de ray-tracing.
Conversia la reprezentarea prin suprafaa de frontier (B-rep) pornind de la
modelul CSG i aplicarea procedurilor standard de redare a poligoanelor.
Conversia la reprezentarea prin subdivizarea spaiului (n elemente numite
49

Grafic Inginereasca-note de curs

voxeli) i redarea volumului corespunztor

Scadere
Reuniune

Bloc1

Cilindru

Bloc 2

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

Tehnica ray-tracing genereaz imaginea obiectelor prin intersecia acestora cu


raze de proiecie i permite obinerea unor efecte deosebit de realiste n modelarea
reflexiei, transparenei i a umbrelor.
Un dezavantaj important al modelrii CSG este cela c nu orice fel de obiect
poate fi obinut prin combinarea unor primitive geometrice simple. De exemplu,
modelul unei statui (folosit n crearea muzeelor virtuale) sau modelul unui organ
anatomic (folosit n simulrile de intervenii chirurgicale) nu pot fi obinute prin
combinarea unor primitive geometrice simple.

2.8. Modelarea prin divizarea spaial


n tehnica de divizare spaial, se atribuie fiecrei subdiviziuni a spaiului
tridimensional cte o etichet n funcie de obiectul care ocup acea subdiviziune.
n acest tehnic se consider spaiul tridimensional compus dintr-un numr de m x n x
k volume elementare (numite voxeli), i pentru fiecare voxel se memoreaz eticheta (un numr
de identificare) obiectului care ocup acel element. Reprezentarea prin subdiviziunea spaiului
este util n diferite aplicaii grafice, cum sunt imagistica medical sau aplicaiile de ray tracing.
.

2
1

(b)

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

2 3

Grafic Inginereasca-note de curs

Implementarea direct, prin atribuirea unei etichete fiecrui element de volum al


spaiului, implic o mare redundan a datelor: toi voxelii interiori unui obiect conin
acceai informaie, eticheta obiectului. Acest lucru conduce la o cantitatate de
informaie foarte mare necesar pentru reprezentarea unui spaiu de obiecte i este, n
general, inacceptabil.
Pentru reducerea redundanei de reprezentare se folosete o tehnic de
reprezentare a ocuprii spaiale printr-un arbore numit arbore octal (octree). Arborele
octal este o structur ierarhic care specific ocuparea unei regiuni cubice din spaiul
tridimensional. Ideea de reprezentare a ocuprii spaiale poate fi exemplificat mai uor
ntr-un spaiu bidimensional prin intermediul unui arbore cuaternar (quadtree). n Fig.
2.13(a) este prezentat ocuparea unei regiuni bidimensionale de trei obiecte, iar n Fig.
2.14 este reprezentat arborele de ocupare a regiunii.
Arborele se creeaz pornind cu o regiune ptrat n plan, reprezentnd ntrega
zon care se modeleaz i care este reprezentat prin nodul rdcin al arborelui
cuaternar. n cazul spaiului tridimensional, acest regiune este un cub. Fiecare regiune,
ncepnd cu regiunea iniial, se subdivide n patru subregiuni, reprezentate ca patru
noduri fii n arbore. n Fig. 2.13(b) se arat ordinea de numerotare a nodurilor fii
obinui prin divizarea unei subregiuni
n spaiul tridimensional o regiune este divizat n opt subregiuni, reprezentate
prin opt noduri fii; de aici provine i numele octree acestui mod de reprezentare.
Subregiunile sunt divizate recursiv pn se ntlnete una din urmtoarele
situaii:
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 spaiu vid (e).
.
Etichete:
t: triunghi
d: dreptunghi
c: cerc
e: spaiu vid
(empty)

e
e

e
e t e

t t e

t e e t e

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

d
d
e d e d

d
e d e d

Fig. 2.14 Arborele de reprezentare a ocuprii spaiale.


51

Grafic Inginereasca-note de curs

Subregiunea are dimensiunea minim admisibil n reprezentarea respectiv (un


pixel). n acest caz, subregiunea primete eticheta obiectului (sau a spaiului vid) care
ocup cea mai mare parte din subregiunea respectiv
n arborele de reprezentare a ocuprii spaiului tridimensional, dimensiunea
minim pn la care se divizeaz subregiunile este dimensiunea unui voxel. n arborele
de reprezentare sunt dou tipuri de noduri frunz: noduri care au o etichet a unui obiect
sau noduri care au eticheta spaiului vid. Compactarea volumului de date n aceast
reprezentare fa de reprezentarea prin etichetarea fiecrui element (pixel sau voxel),
provine din faptul c se poate ca o ntreag subregiune (mai mare dect un voxel)
primete o singur etichet, dac este nu este ocupat deloc sau este ocupat de 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 primete eticheta (e).
O variant de reprezentare a ocuprii spaiale prin arbori octali folosete ca
element spaial un tetraedru regulat, care este subdivizat n opt tetraedre, pn la
rezoluia dorit sau pn cnd este ocupat de un singur obiect din spaiu. Avantajul
folosirii arborilor octali bazai pe tetraedre este c se poate obine direct o reprezentare
echivalent a suprafeei triangularizate de aproximare a obiectului.
Redarea imaginii obiectelor modelate prin divizare spaial se face fie prin
conversie n reprezentarea prin suprafaa de frontier, fie direct, prin redare
volumetric, adic redarea tuturor elementelor de volum (voxeli).

52

Grafic Inginereasca-note de curs

Capitolul 3

3. Transformari geometrice
n procesul de redare a obiectelor tridimensionale se definesc mai multe sisteme
de referin, care permit descrierea operaiilor de transformri succesive ale obiectelor,
pornind de la modelul acestora, pn la imaginea bidimensional pe suportul de
reprezentare.
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 transformri grafice. Dintre transformrile
grafice folosite, unele modific forma i poziia obiectelor n spaiu, fiind numite
transformri geometrice, altele sunt transformri de conversie ntre diferite modaliti de
reprezentare a obiectelor (transformarea de rastru).

Transformri geometrice n spaiu


Obiectele scenei virtuale pot fi modificate sau manevrate n spaiul
tridimensional, folosind diferite transformri geometrice. Dintre acestea, cele mai
importante sunt translaia, care modific localizarea obiectului, rotaia, care modific
orientarea, i scalarea, care modific dimensiunea obiectului. Aceste transformri sunt
denumite transformri geometrice primitive.

3.1. Transformri n plan


Dac x i y sunt coordonatele unui punct M, ecuaiile:
x=f(x,y),
y=g(x,y)

(1.14)

permit trecerea de la punctul M(x,y) la punctul. Ecuaiile (1.14.) definesc o transformare


punctual plan. Punctul M este transformatul lui M. Dac ecuaiile de transformare
conin i parametri, spunem c ele reprezint o familie de transformri.
Putem considera coordonatele punctului ca o matrice 1y2. Fie produsul matricial
urmtor pe care l notm cu (x,y):

(xy ) = (xy )

= ( Ax + Cy

Bx + Dy )

(1.15)

Atunci toate punctele planului xOy nmulite cu matricea 2x2 vor da noi puncte
(x,y), unde:
x=Ax+Cy, y =Bx+Dy
(1.16)
Transformarea astfel obinut va depinde de valorile date variabilelor A, B, C, i

D.
53

Grafic Inginereasca-note de curs

Translaia este transformarea prin care toate punctele se deplaseaz n aceeai


direcie i cu aceeai distan ntre punct i transformatul su. Translaia se poate descrie
printr-un vector de translaie T, avnd componentele tx , ty , tz pe cele trei axe de
coordonate; un punct P(x, y, z) se transform n punctul P' (x' , y' , z' ) astfel:
x' = x + t x
y' = y + t y
z' = z + t z

n notaie matriceal, transformarea prin translaie cu vectorul de translaie T,


avnd componentele tx , ty , tz pe cele trei axe de coordonate a unui punct P(x, y, z) n
punctul P' (x' , y' ,z' ) se exprim printr-o nsumare de matrice:
t x
x ' x t x

P' = P + T , unde T = t y ; deci: y' = y + t y .


t z
z' z t z
Translaia plana . Transformarea este reprezentat de ecuaiile:

x=x+a,

y =y+b

(1.17)

Familia de transformri depinde de parametrii a i b. Dac a=b=0, atunci


punctul M(x,y) rmne neschimbat, adic transformarea identic este cuprins n familia
transformrilor (1.17).
Putem rezolva invers ecuaiile (1.17) i gsim: x = x - a, y = y - b, care sunt
ecuaii de aceeai form cu (1.17). deci familia conine transformarea invers.
Presupunem c efectum o nou translaie 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 translaii este tot o translaie.
n concluzie, translaiile plane formeaz un grup G, cu doi
A B
1
0
parametri. Vom observa c nici-un produs al matricei generale
C D
0
1
nu ne permite s gsim relaiile (1.17). Pentru rezolvarea situaiei se va
a
b
introduce o a treia component a vectorilor (x y) i (x y), obinnd (x y
1) i (x y 1). Matricea transformrilor va fi obligatoriu de 3x2:
Vom arta c ea furnizeaz bine o translaie::

1
y 1 0
a

0
1 = x+a
b

y+b

sau : x=x+a, y=y+b, unde a produce o translaie pe axa Ox i b pe axa Oy.


Problema translaiei pare a fi rezolvat. Dar o matrice 3x2 nu posed invers. De
aceea se mai adaug o coloan.
54

Grafic Inginereasca-note de curs

1 0 0
x

y 1 0 1 0 = x+a
a b 1

y + b 1 = x'

y' 1

Spunem c reprezentarea poziiei 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 proporionale (kx,
ky, k), unde k numr 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 P( x , y, z) se transform n punctul P' ( x ' , y' , z' ) , unde:
x' = x s x
y' = y s y
z' = z s z
Pentru scrierea sub form matriceal a acestor relaii de transformare, se definete
matricea de scalare S de dimensiune 3x3 astfel:
s x 0 0
S = 0 s y 0
0 0 s z
Rezult relaia de transformare de scalare n notaie matriceal:
x ' s x
P' = S P, adic y' = 0
z' 0

0
sy
0

0 x
0 y
s z z

Scalarea plana. Transformarea este controlat de matricea T=

A 0
0 D

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

c d'

c'

b a'

b'

d
a

c'

d'
a'

a)

b'

c'

d'

d
a'

c
a b

b'

c)

b)

Fig.3.1 Scalarea

55

i n

Grafic Inginereasca-note de curs

Fie ptratul unitar abcd (fig. 3.1a) i matricea T =

Exemplu 1.1

3 0
.
0 1

Transformns vrfurile ptratului a(1,2), b(2,2), c(2,3),d(1,3) se obin 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:
1 2
2 2
2 3
1 3

3 0
0 1

3 2
6 2
6 3
3 3

A rezultat astfel un dreptunghi. Produsul matricial a condus la mrirea unei


laturi pe Ox cu factorul de multiplicare egal cu 3.
Exemplu 1.2 Fie ptratul unitar abcd (fig. 3.1b) i matricea
1 0
.Aplicnd aceast matrice la coordonatele ptratului se va obine:
T=
0 0,2
1 1
1 0,2
4 1 1 0
4 0,2

=
4 4 0 0,2
4 0,8
1 4
1 0,8

Se observ c s-a efectuat o modificare cu factorul 0,2 pe axa Oy.


Exemplul 1.3 Dac se dorete mrirea / micorarea uniform a ptratului, pe cele
dou axe, trebuie ca valorile coeficienilor A i D s fie egale (fig.3.1.c)
0 0
0 0
1 0 4 0 4 0

=
1 1 0 4 4 4
0 1
0 4
O multiplicare prin matricea T cu A = D = 1 conduce la conservarea ptratului.
x

1 0

= x'

0 1
adic x = x', y = y'

y'

56

Grafic Inginereasca-note de curs

Simetria. Matricele T care controleaz acest tip de transformare sunt cazuri


particulare ale celor care produc scalri, n care A i / sau D sunt negative
1 0

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

dac T =
, se produce simetria n raport cu axa Ox; x' = x, y' =
1 0
- y;
1 0

dac T =
, se produce simetria n raport cu ambele axe, adic
0 1
simetrie centrat n raport cu originea; x' = - x, y' = - y.
Deformarea. Considerm matricea T =

1 B
0

pe care o aplicm unui ptrat

abcd (fig.3.2a) i lum B=2:

0 0
1 0
1 1
0 1

1 2
0 1

0 0
1 2
1 3
0 1

Spunem c s-a efectuat o deformare n y, ceea ce nseamn n direcia axei Oy


1 0
1 B
(fig.3.2b). Matricea T =
produce o deformare pe axa Ox, iar T =
, o
C 1
C 1
deformare n ambele direcii.

2
1

a
1

c'

1d

a
a)

2
b

b)

1
a'

d'
b'
1 2 3 4
c)

Fig.3.2. Deformarea

Exemplul 1.4. Fie ptratul abcd, unitar cu vrful a n origine. Dac i aplicm
1 B
transformarea T =
se obine deformarea din fig.3.2.c. Remarcai schimbarea
C 1
vrfurilor b' i d'!
57

Grafic Inginereasca-note de curs

Rotaia cu un unghi n raport cu o ax D este o transformare prin care orice punct P


care nu este situat pe dreapta d se transform ntr-un punct P astfel nct P i P sunt situate
ntr-un plan perpendicular pe dreapta D, unghiul PIPeste egal cu , iar modulele |IP| i |IP|
sunt egale (punctul I este intersecia dintre dreapta D i planul ). Prin aceast transformare
toate punctele dreptei d sunt fixe i numai ele sunt puncte invariante ale transformrii.
Transformarea de rotaie n raport cu o ax oarecare se descompune o ntr-o succesiune de
maximum trei transformri de rotaie n raport cu axele de coordonate ale sistemului de
referin.
Rotaia n raport cu axa z cu un unghi transform un punct P( x , y, z) n punctul
P' ( x ' , y' , z' ) , ambele aflate n planul peroendicular pe axa z. Pentru deducerea relaiilor de
transformare se exprim coordonatele punctelor P i P n acest plan n coordonate polare (Fig.
3.3).
P

x ' = cos(u + )
y' = sin( u + )

O
z

x = cos u
y = sin u

Fig. 3.3 Transformarea de rotaie n raport cu axa z.

Se dezvolt cosinusul i sinusul sumei de unghiuri i se obin relaiile:


x ' = (cos u cos sin u sin ) = x cos y sin

y' = (sin u cos + sin cos u ) = x sin + y cos

Aceast transformare se poate scrie sub form matriceal dac se definete


matricea de rotaie RZ() de dimensiune 3x3 astfel:
cos sin 0
R Z () = sin cos 0
0
0
1

Rezult relaiile de transformare de rotaie a unui punct n raport cu axa z cu un


unghi scrise sub form matriceal:
'

P = RZP ,

x ' cos sin 0 x


y' = sin cos 0 y


z' 0
0
1 z

Pentru rotaiile elementare ale unui punct n raport cu axele x i y ale sistemului
de referin se urmrete un raionament asemntor i se deduc relaiile de transformare
corespunztoare.
Rotaiile n raport cu axele de coordonate ale sistemului de referin sunt
denumite tangaj (pitch), giraie (yaw, heading) i, respectiv ruliu (roll). Aceast asignare
depinde de conveniile de definire a sistemului de referin universal. Pentru convenia
definit mai sus, tangajul este o rotaie n raport cu axa x, giraia este o rotaie n raport
cu axa y, iar ruliul este o rotaie n raport cu axa z (Fig. 3.2).
Aceste denumiri au originea n modul n care sunt definite micrile unui avion
58

Grafic Inginereasca-note de curs

poziionat n spaiu cu axa longitudinal orientat ctre z pozitiv: tangajul este rotaia
ntr-un plan vertical, care nclin botul avionului; giraia este o micare ntr-un plan
orizontal, care schimb direcia axei avionului, iar ruliul este rotaia ntr-un plan
vertical, care nclin aripile avionului.
y
Giraie
Tangaj
x
z
Ruliu
Fig. 3.4 Rotaiile n raport cu axele sistemului de referin.

Semnul rotaiilor n raport cu axele de coordonate se alege, prin convenie, dup


regula minii drepte sau dup regula minii stngi. Dac se cuprinde axa
corespunztoare cu patru degete ale minii (drepte, respectiv, stngi) astfel ca degetul
mare s fie ndreptat n sensul pozitiv al axei, direcia celor patru degete indic sensul
pozitiv al rotaiei. n aceast lucrare se adopt regula minii drepte pentru sensul de
rotae n raport cu axele de coordonate (Fig. 3.4).
S-au obinut relaiile pentru transformrile spaiale elementare (primitive),
translaia, scalarea fa de originea sistemului de coordonate i rotaia n raport cu axele
sistemului de coordonate. Tratarea ntr-un mod unitar a acestor transformri se poate
face prin creterea dimensionalitii sistemului de coordonate Cartezian, definindu-se un
sistem de coordoonate cu 4 dimensinui, numit sistem de coordonate omogene.
Rotaia 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:
y

c'

d
c

d'
1

M'
r

b'

a' a

Fig.3.5. Rotaia

Fig.3.6. Rotaia ptratului

59

Grafic Inginereasca-note de curs

x'=x cos - ysin,


y'=xsin + ysin,
sunt formulele care dau rotaia. Dac =0, se obine transformarea identic.
Se observ uor c nlocuind pe cu - se obine o transformare din
aceeai familie. De asemenea produsul a dou rotaii este o nou rotaie
n concluzie , rotaiile n jurul unui punct formeaz un grup G1 cu un parametru.
Revenind la matricea T, cutm valorile lui A,B,C,D pentru care transformarea
obinut d o rotaie. Fie un ptrat abcd (fig.3.6) ce sufer o rotaie sub un unghi .
Obinem imediat:
abcisa lui b'=1.cos ; ordonata lui b'=1.sin ;
abcisa lui d'=-1.sin ; ordonata lui d'=1.cos ;
Anterior s-a vzut c dac se cunosc coordonatele punctelor b' i d' atunci
matricea transformare este cunoscut. Deci:
abs.b'

ord .b'

abs.d ' ord .d '

cos

sin

sin

cos

Exemplul 1.5. Dac dorim ca un ptrat unitar s sufere o rotaie cu unghiul

=30o. Matricea de rotaie va fi:


cos

sin

sin

cos

0,866

0,5

0,5

0,866

Care aplicat ptratului va da:


0 0
1 0
1 1
0 1

0,866

0,5

0,5

0,866

0
0
0,866 0,5
1,366 1,366
0,5 0,866

0 0
1 0
1 1
0 1

0
A

B+D
D

0
B

A+ B B+ D
C
D

d'
b'

B
a'

c'

d'

A+C x

Fig.3.7. Transformarea general


60

Grafic Inginereasca-note de curs

Trebuie s reinem c:
- rotaie se efectueaz ntotdeauna n jurul originii O(0,0);
- matricea de rotaie este o combinaie de scalri i deformri care las
neschimbate dimensiunile finale;
- o matrice de rotaie are ntotdeauna valoarea determinantului, egal cu 1:
=cos2 + sin2 =1.
Fie, din nou, ptratul unitar la care se aplic matricea general T:
Se obine astfel un paralelogram a'b'c'd' (fig.3.7) .
Exemplul 1.6. Fie A=4, B=1, C=1, D=3. Vom remarca urmtoarele:
- coordonatele lui b' sunt date pe prima linie a matricei;
- coordonatele lui d' sunt date pe urmtoarea linie a matricei.
Acest lucru este important deoarece dac se cunosc coordonatele acestor puncte,
atunci matricea general a transformrii este perfect determinat.
Termenii B i C produc deformarea n direciile Oy i Ox, iar termenii A i D
acioneaz pe scal.
Vom demonstra c aria (a'b'c'd')= A.D - B.C. se poate observa c aria
paralelogramului se poate obine din aria dreptunghiului de baz A+C i nlime 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 relaie ne permite s calculm aria transformrii unei suprafee oarecare.
Considerm o suprafa ce conine S uniti. Aria transformat printr-o matrice 2x2 va
avea valoarea S'=S.(A.D - B.C).

3.2 Sistemul de coordonate omogene


Se observ c transformrile de scalare i de rotaie se reprezint prin nmuliri
de matrice, iar translaia se reprezint prin nsumare de matrice. Reprezentarea unitar i
combinarea transformrilor geometrice spaiale se poate face ntr-un sistem de
coordonate cu patru dimensiuni, numit sistem de coordonate omogene. n sistemul de
coordonate omogene, un punct P( x , y, z) se reprezint ca P(X, Y, Z, w ) pentru orice factor
de scar w 0.
n general, un punct P( x, y, z) n sistemul de coordonate Cartezian se transform
n sistemul de coordonate omogene prin alegerea w = 1 , deci are coordonatele omogene
P( x , y, z,1) . Pentru transformarea invers, se calculeaz coordonatele carteziene ale unui
punct P(X, Y, Z, w ) reprezentat n sistemul de coordonate omegene printr-o mprire cu
factorul de scar w astfel:
x =X/w
y=Y/w

(3.1)

z = Z/ w

n coordonate omogene, dou puncte P1 ( X1 , Y1 , Z1 , w1 ) i P2 (X 2 , Y2 , Y2 , w 2 )


sunt egale dac :
X1 / w 1 = X 2 / w 2 , Y1 / w 1 = Y2 / w 2 si Z1 / w 1 = Z 2 / w 2

n sistemul de coordonate omogene, toate matricele de transformri sunt de


dimensiune 4x4 i toate operaiile de transformri geometrice se pot exprima prin
produse de matrice.
61

Grafic Inginereasca-note de curs

Matricea de translaie n coordonate omogene se definete astfel:


1
0
T( t x , t y , t z ) =
0

0 0 tx
1 0 t y
0 1 tz

0 0 1

(3.2)

Transformarea de translaie a unui punct P(X, Y, Z, w ) reprezentat n coordonate


omogene, n punctul P' (X' , Y' , Z' , w ' ) se exprim ca un produs de matrice:
P' = T P
X ' 1
Y ' 0
=
Z' 0

w ' 0

X' = X + wt x
0 0 t x X
Y' = Y + wt

1 0 t y Y

y
, rezult:

0 1 tz Z
Z' = Z + wt z

w ' = w
0 0 1 w

(3.3)

Teoretic, pentru a se obine coordonatele cartezine ale punctului transformat P,


trebuie s se execute operaia de mprire cu factorul de scar w pentru fiecare
coordonat:
x ' = X' / w '
y' = Y ' / w '

z ' = Z' / w '

Dar, dac se alege w =1, rezult w=1 i mprirea nu mai este necesar. n
general, transformrile geometrice primitive conserv valoarea factorului de scar i,
dac se alege w =1, mprirea cu w (numit mprirea omogen) nu este necesar .
Matricea de scalare fa de origine reprezentat n sistemul de coordonate
omogene are expresia:
s x
0
S(s x , s y , s z ) =
0

sy
0

0
sz

0
0
0

(3.4)

Transformarea de scalare a unui punct reprezentat n


omogene P(X, Y, Z, w ) , n punctul P' (X' , Y' , Z' , w ' ) este dat de relaiile:

coordonate

P' = SP

X ' = s x X

sy 0
Y ' = s y Y
(3.5)

0 sz
Z' = s z Z
w ' = w
0 0

Dac factorii de scalare sunt egali ( s x = s y = s z ), scalarea se numete uniform,


X' s x
Y ' 0
=
Z' 0

w ' 0

0 X
0 Y
, rezult:
0 Z

1 w

i pstrez forma obiectului. Dac factorii de scalare difer, obiectul este deformat, iar
scalarea se numete neuniform.
Transformrile de rotaie n raport cu axele sistemului de referin exprimate
62

Grafic Inginereasca-note de curs

n coordonate omogene sunt urmtoarele:


Rotaia n raport cu axa x (tangaj) cu un unghi :
0
0
1
0 cos sin
R X () =
0 sin cos

0
0
0

0
0
0

(3.6)

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

0
0
w ' 0

X ' = X
Y' = Y cos Z sin

Z' = Y sin + Z cos


w ' = w

0 X
0 Y
, rezult
0 Z

1 w

(3.7)

Rotaia n raport cu axa y (giraie) cu un unghi :


cos
0
R Y ( ) =
sin

0 sin 0
1
0
0
0 cos 0

0
0
1

(3.8)

n aceast transformare, axa y rmne nemodificat, iar toate celelalte puncte din
spaiu se transform prin nmulire ca matricea RY():
P' = R Y P
X' cos
Y ' 0
=
Z' sin

w ' 0

0 sin 0 X
1
0
0 Y
, rezult:
0 cos 0 Z

0
0
1 w

X ' = X cos + Z sin


Y ' = Y

Z' = X sin + Z cos


w ' = w

(3.9)

Rotaia n raport cu axa z (ruliu), cu un unghi :


cos sin
sin cos
R Z () =
0
0

0
0

0
0
1
0

0
0
0

(3.10)

n aceast transformare, axa z rmne nemodificat, iar toate celelalte puncte din
spaiu se transform prin nmulire ca matricea RZ():
P' = R Z P
X' cos sin
Y' sin cos
=
Z' 0
0

0
w' 0

0 0 X
0 0 Y
, rezult:
1 0 Z

0 1 w

X' = X cos - Y sin


Y' = X sin + Y cos

Z' = Z
w ' = w

(3.11)

Toate matricele de transformare de rotaie sunt matrice ortogonale i


ortonormate. Transformrile geometrice elementare sunt transformri liniare, prin care
63

Grafic Inginereasca-note de curs

liniile drepte i suprafeele plane sunt transformate n linii dreapte, respectiv suprafee
plane. Din aceast cauz, pentru transformarea unui obiect tridimensional, este suficient
s se transforme toate vrfurile acestuia i s se pstreze relaiile topologice ntre
vrfurile transformate, aceleai cu cele ntre vrfurile iniiale.
Transformrile mai complexe ale obiectelor n spaiu se pot defini prin
compunerea mai multor transformri primitive.
3.2.1. Compunerea transformrilor
Compunerea mai multor tranformri elementare pentru obinerea unei
transformri complexe se obine prin executarea succesiv a produsului fiecriei matrice
de transformare cu matricea de reprezentare a punctului iniial sau rezultat dintr-o
transformare precedent. De exemplu, n Fig. 3.8 este prezentat o transformare
compus a unui obiect.
Obiectul iniial este un cub cu latura de dou uniti, amplasat cu centrul su n
centrul sistemului de referin i laturile orientate n direciile axelor de coordonate.
Dup o scalare cu factorii de scar 2, 2, 2, o rotaie cu un unghi de 30 grade n raport cu
axa z i o translaie cu un vector de translaie cu componente 8,0,0, se obine un nou
obiect cub, definit n acelai sistem de referin, dar cu alte dimensiuni i localizare.
Reprezentarea din Fig. 3.8 conine i o transformare de proiecie perspectiv, pentru
percepia adncimii (a distanei fa de observator a obiectelor), care va fi explicat
ulterior. Una din feele cubului (cea mai apropiat de observator) este desenat ca
suprafa de culoare gri; celelalte fee ale cubului sunt reprezentate numai prin muchiile
lor (reprezentare numit cadru de srm, wireframe).

P
P

Fig. 3.8 Transformare compus a unui obiect:


scalare, rotaie fa de axa z, translaie.

Transformarea efectuat asupra cubului din figura de mai sus se obine prin
aplicarea succesiv a trei transformri geometrice elementare (scalare, rotaie i
translaie) asupra fiecrui punct (vrf) al cubului. Pentru un vrf al cubului, reprezentat
prin matricea coloan P, succesiunea de transformri este:
Scalarea:
P1 = S P
64

Grafic Inginereasca-note de curs

Rotaia n raport cu axa z:


P2 = RZ P1= RZ(S P)
Translaia:
P' = T P2 = T(RZ(S P)) = (TRZS) P
Nu este necesar s fie executate pe rnd operaiile de nmulire cu matricele de
transformare S, RZ, i T, ci se poate calcula o matrice compus a transformrii M, care
se aplic apoi fiecrui punct P al obiectului:
P' = T R Z S P = M P , unde M = T R Z S
O transformare compus se poate deci defini printr-o matrice de transformare M
care este un produs (compunere) de matrice de transformri geometrice elementare.
n exemplul dat, se calculeaz matricea de transformare M astfel:
0.5
0 0 8 0.866

1 0 0 0.5
0.866
0 1 0 0
0

0 0 1 0
0
- 1 0 8
1.732
1
1,732 0 0
M=
0
0
2 0

0
0 1
0
1

0
M = T R zS =
0

0 0 2

0 0 0
1 0 0

0 1 0

0 0 0

2 0 0
0 2 0

0 0 1

Unul din vrfurile cubului, vrful P(1,1,1,1) se transform n P(8.732,


3.732,1,1 ):
1.732 1
1
1.732
P' = M P =
0
0

0
0

0
0
2
0

8 1 8.732
0 1 3.732
=
0 1 2


1 1 1

Ordinea de compunere a matricelor de transformare este definitorie pentru


rezultatul transformrii, dat fiind c produsul matricelor nu este comutativ.
Se poate verifica pe exemplul dat, prin inversarea ordinii transformrii de rotaie
cu translaia (Fig. 3.9).
P

Fig. 3.9 Transformare compus a unui obiect:


scalare, translaie, rotaie fa de axa z.

65

Grafic Inginereasca-note de curs

Se obine o matrice de transformare Mdiferit de M i punctul transformat


corespunztor P, diferit de P:
1.732 1
1
1.732
M' ' = R z T S =
0
0

0
0

0 6.928
7.560

0 4.330
7.06

, P' ' = M' ' P =


2
2
0

0
1
1

Convenia de reprezentare a punctelor n spaiu prin matrice coloan impune


ordinea de nmulire numit postmultiplicare (sau multiplicare la dreapta) a matricelor
de transformare: se nmulete matricea de transformare curent cu matricea
transformrii urmtoare. Convenia de terminologie (postmultiplicare sau multiplicare la
dreapta) semnific faptul c o nou transformare se concateneaz ca factor dreapta al
produsului de matrice. Este important de reinut faptul c ordinea de aplicare a
transformrilor este de la dreapta la stnga din succesiunea de matrice ale unei
compuneri. Mai precis, dac un punct se transform prin aplicarea succesiv a
transformrilor definite prin matricele M1, M2,., Mn, matricea compus de
transformare este:
M = M n LM 2M1
(3.12)
Se poate verifica c, dac se adopt convenia de reprezentare a unui punct n
spaiul tridimensional printr-o matrice linie, atunci transformarea unui punct se obine
prin nmulirea vectorului de poziie al punctului cu matricea de transformare
(premultiplicare sau multiplicare la stnga). n aceast situaie, ordinea n care se aplic
matricele compunente ale unei transformri compuse este de la stnga la dreapta:
P' = PS, unde S = S 1S 2 L S n
(3.13)
Punctul P este transformat n ordinea S1, S2,.Sn. Acesta este un mod mai
natural de a urmri secvenele de transformri geometrice i de aceea, n unele lucrri
este adoptat aceast convenie. Nu exist alte diferene ntre cele dou convenii (nici
de simplificare a calculelor, nici de eficien).
Se poate demonstra cu uurin c orice matrice de transformare elementar n
convenia de reprezentare prin matrice linie a unui punct n spaiul tridimensional este
transpusa matricei corespunztoare de transformare definit n convenia de
reprezentare prin matrice coloan a punctului. De exemplu, translaia unui punct
P(x,z,y) cu valorile tx, ty, tz se exprim astfel:

[X '

Y ' Z' w'] = [X

0
Y Z w]
0

t x

ty

tz

0
0

n aceast lucrare se folosete convenia de reprezentare prin matrice coloan a


punctelor din spaiu, dat fiind c aceasta este convenia din biblioteca grafic OpenGL,
care este folosit pentru exemplificarea operaiilor grafice prezentate.
Un alt exemplu de transformare compus este transformarea de rotaie complet
specificat prin trei rotaii fa de axele sistemului de coordonate. Cea mai obinuit
convenie pentru ordinea de specificare a rotaiilor este: ruliu cu unghiul (dup axa z),
tangaj cu unghiul (dup axa x) i giraie cu unghiul (fa de axa y). n aceast
situaie matricea de rotaie total R are expresia:
66

Grafic Inginereasca-note de curs

r11 r12

r
r
R = R Y ( )R X ()R Z () = 21 22
r31 r32

0
0

r13 0

r23 0
r33 0

0 1

(3.14)

Matricea R rezultat prin compunerea (nmulirea) mai multor matrice de rotaie


este de asemenea ortogonal i ortonormat.
O transformare complex a unui obiect prin combinarea mai multor transformri
elementare (scalri, rotaii, translaii) se poate exprima printr-o matrice de transformare
M care are forma general:
r '11
r '
M = 21
r '31

r '12
r ' 22
r '32
0

r '13
r ' 23
r '33
0

tx
t y
tz

(3.15)

Submatricea stnga-sus R de dimensiune 3x3 exprim transformarea de rotaie


i scalare total, iar submatricea coloan dreapta T exprim transformarea de translaie
total. Matricea R este o matrice ortogonal, dar poate s nu fie i ortonormat.
Dou proprieti importante ale transformrilor geometrice compuse trebuie s
fie remarcate i reinute.
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 operaiilor
grafice, prin amnarea mpririi omogene (cu w) dup ce s-au selectat numai obiectele
vizibile (dup operaia de decupare).
A doua proprietate este proprietatea de liniaritate a transformrilor geometrice
compuse, prin care liniile drepte i suprafeele plane sunt transformate n linii dreapte,
respectiv suprafee plane. De aceea, la fel ca i n cazul transformrilor geometrice
elementare, pentru transformarea unui obiect tridimensional, este suficient s se
transforme toate vrfurile acestuia i s se pstreze relaiile topologice ntre vrfurile
transformate.
In plan
O expresie care conine coordonatele unuia sau mai multor puncte este un
invariant absolut al unui grup de transformri dac nu-i schimb forma cnd nlocuim
coordonatele punctelor prin coordonatele punctelor transformate.
Dac n aceleai condiii, expresia se reproduce nmulit cu un factor ce depinde
de parametrii transformrii, spunem c ea este un invariant relativ.
Toate transformrile prezentate mai nainte au fost centrate n originea axelor
sau , altfel spus, punctul O(0,0) este un invariant.
Exemplul 1.7. S ncercm s gsim matricea transformrilor care ntoarce un
triunghi abc n jurul unui punct dat (x,y) sub un unghi .
Coordonatele omogene ne vor ajuta s rezolvm mai uor problema.
Transformm toate matricele 2x2 utilizate pn acum , n matrice 3x3 astfel:
A B

D 0 .

1
67

Grafic Inginereasca-note de curs

n general, o rotaie n jurul unui punct arbitrar al unui plan va fi executat


efectund:
- translaia centrului de rotaie la originea axelor;
- rotaia ateptat;
- translaia rezultatului la centrul de rotaie iniial.
Deci se efectueaz produsul a trei matrice:

1
0 0 cos
1 0 sin
y 1 0
0
a b 1

sin
cos
0

0 1 0 0
0 0 1 0 = x'
1 a b 1

y' 1

Revenind la problema enunat (fig.1.17) avem: a(6,4) b(9,4), c(6,6), x=5, y=3,
=60 . Deci:
o

0 0 cos 60 o
a 6 4 1 1
1 0 sin 60 o
b 9 4 1 0
c 6 6 1 a b 1
0

sin 60 o
cos 60 o
0

0 1 0 0 d 1 1 1
0 0 1 0 =e 4 1 1
f 1 3 1
1 5 3 1

0,5
0,866 0 1 0 0 g 0,366 1,366 1 1 0 0
0,866 0,5 0 0 1 0 = h 1,134 3,964 1 0 1 0 =
0
0
1 5 3 1 i 2,098 2,356 1 5 3 1
4,634 4,636 1 a '
= 6,134 6,964 1 b'
2,902 5,366 1 c'
De fiecare dat cnd se realizeaz un produs
se efectueaz o transformare. Triunghiul abc se
deplaseaz mai nti n def, acolo sufer o rotaie de
60o i devine ghi , care se translateaz n final n
a'b'c'. Este preferabil s se efectueze dintr-o dat
aceste operaii. De aceea se compun cele trei
matrice ntr-una singur care va fi matricea
transformrii globale ce se aplic triunghiului iniial.
Fig.1.10. Compunerea transformrilor

1
T= 0

0
1

0 cos 60 o
0 sin 60 o

5 3 1

sin 60 o
cos 60 o
0

0,5
0 1 0 0
0 0 1 0 = 0,866
1

5 3 1

5,098

Aplicnd aceast matrice triunghiului iniial abc se obine:


68

0,866
0,5

0
0

2,83 1

Grafic Inginereasca-note de curs

6 4 1
4,634 4,366 1
9 4 1 T = 6,134 6,964 1
6 6 1
2,902 5,366 1
care este ntocmai rezultatul anterior.
Metoda este destul de laborioas. De aceea se vor generaliza lucrnd n mod
literal. Avem de efectuat produsul:
1
0 0 cos
1 0 sin
T= 0
0
a b 1

sin
cos
0

0 1 0 0
0 0 1 0 =
1 a b 1

cos
sin
0
cos
0
=
sin
a cos + b sin + a a sin b cos + b 1
Atunci: (x' y' z')=(x y z)T i deci, avem:
x' = x cos y sin a cos + b sin + a
y ' = x sin + y cos a sin b sin + b
Va fi suficient s citim coordonatele (a,b) ale centrului de rotaie oarecare i
valoarea unghiului de rotaie q, apoi aplicm aceste formule la toate punctele obiectului
considerat.
n concluzie matricea 3x3 utilizat cu coordonatele omogene n plan este de
A B 1
forma: C D 1 Ea se poate partiiona n patru pri, fiecare avnd un rol bine
a b E
definit:
- termenii A,B,C,D produc scalrile, rotaiile i deformrile;
- a i b produc translaiile;
- E produce schimbarea scrii generale.
ntr-adevr:
1 0
x'

y' 1 = x

y 10 1 0 = x
0 0 E

De unde coordonatele carteziene (x',y') se obin substituind x'=x/E. y'=y/E. dac


E>1, se produce micorarea, iar E<1cnd se produce mrirea. Dac A D se va face o
schimbare de scal diferit pe cele dou axe, iar dac A=D schimbarea va fi uniform.
69

Grafic Inginereasca-note de curs

3.2.2. Transformri 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
obine prin nmulirea cu matricea invers, M-1 :
MM 1

1
0
= I, I =
0

0
1
0
0

0
0
1
0

0
0
,
0

(3.16)

unde I este matricea identitate.


Dat fiind c, n general, matricea de transformare M se obine printr-un produs
de matrice de transformri elementare, matricea invers M1 se calculeaz prin produsul
n ordine invers a inverselor matricelor elementare componente:
M = M n LM 2M1
M -1 = M 1-1 M -21 L M n-1
MM

(3.17)

M n L M 2 M 1 M 1-1 M -21 L M n-1

=I

Relaia 3.17 se demonstreaz imediat, prin gruparea factorilor ncepnd cu


=I.
Toate matricele de transformri elementare sunt matrice inversabile i au
urmtoarele expresii:
M 1 M 1-1

0 tx
0 t y
1 tz

0
1

[T( t x , t y , t z )] 1

1
0
= T( t x , t y , t z ) =
0

[S(s x , s y , s z )] 1

1 / s x
0
= S(1 / s x ,1 / s y ,1 / s z ) =
0

0
1
0
0

0
0
1/ s y
0
0
1/ sz
0
0

(3.18)

0
0
0

(3.19)

[R x ()] 1

0
0
0
1
0 cos sin 0

= R x () =
0 sin cos 0

0
0
1
0

(3.20)

[R y ()] 1

cos
0
= R y ( ) =
sin

(3.21)

0 sin
1
0
0 cos
0
0

70

0
0
0

Grafic Inginereasca-note de curs

cos sin 0 0
sin cos 0 0

= R z ( ) =
0
0
1 0

0
0 1
0

(3.22)

R 1 = [R y ()R x ()R z ()] 1 = R z ()R x ( )R y ()

(3.23)

[R z ()] 1

Datorit faptului c matricea de rotaie este ortogonal i ortonormat, inversa


unei matrice de rotaieeste egal cu transpusa acesteia.

3.2.3 Sisteme de coordonate

Pentru reprezentarea unui punct n spaiul 3D se va alege un anumit sistem de


coordonate. Iat sistemul direct (fig.3.11): mna dreapt arat cu degetul arttor axa
Ox, cu degetul mijlociu axa Oy, iar cu degetul mare axa Oz.
Sistemul indirect (sau al minii stngi) va avea axa Ox opus. Cu alte cuvinte
dac privim planul xOy al unui sistem direct atunci axa Oz este n direcia
observatorului. n sistemul indirect axa Oz este n direcie opus (fig.3.129).
Pentru a repera un punct P al spaiului, decidem s adoptm sistemul direct, n
care vom utiliza trei sisteme de coordonate: carteziene, sferice i cilindrice. (fig3.13).
Poziia lui P se specific n coordonate sferice prin precizarea razei R, a
unghiului p (latitudinea) i a unghiului p (longitudinea), cu precizarea c:

- indirect -

- direct -

Fig.3.11. Sistemul minii

Fig. 3.12 Sistemul observatorului


R[0, ), [0,2), [/2,/2]
Trecerea de la coordonate carteziene la sferice se face astfel:
71

Grafic Inginereasca-note de curs

R= x +y +z
2

/2

=
3 / 2
arctg ( y / x) + k

dac x = 0, y 0
dac x = 0, y 0
dac x 0

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

/ 2
dac x 2 + y 2 = 0, z 0

=
/2
dac x 2 + y 2 = 0, z 0
arctg z / x 2 + y 2 dac x 2 + y 2 0

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 relaiile: R= x 2 + y 2 ; z=z; - dup aceeai relaie 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 relaiilor de transformri geometrice prezentate pn 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 mulimi de
puncte ale acestora (vrfuri) i ele pot fi deplasate, reorientate sau redimensionate prin
aplicarea transformrilor geometrice corespunztoare.
O alt interpretare care se poate da operaiilor de transformri geometrice este
aceea de schimbare a sistemului de referin.
Se consider sistemul de referin Oxyz i un nou sistem de referin Oxyz, a
crui origine O este determinat n sistemul Oxyz prin coordonatele x0,y0,z0 ale
72

Grafic Inginereasca-note de curs

centrului O. Sistemul de referin Oxyz este definit de versorii (vectori unitate) i, j, k,


iar sistemul de referin Oxyz de versorii i, j, k.
Axa Ox are cosinuii directori c11, c12, c13 fa de sistemul de referin Oxyz;
axa Oy are cosinuii directori c21, c22, c23 fa de sistemul de referin Oxyz; axa Oz
are cosinuii directori c31, c32, c33 fa de sistemul de referin Oxyz.
Matricea de transformare care descrie poziionarea sistemului Oxyz relativ la
sistemul de referin Oxyz este:
c11 c21 c31 x 0

c12 r22 c32 y 0

M =
c13 c23 c33 z0

0
0
1
0

(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 Oxyz acest punct
(notat P) are coordonatele x,y,z, care se obin nmulirea matricei M -1 (care este
inversa matricei M care definete poziionarea sistemului Oxyz n sistemul Oxyz) cu
matricea P de reprezentare a punctului P n sistemul de coordonate iniial:
P' = M -1 P
(3.25)
Transformarea invers, a unui punct P(x,y,z) din sistemul de referin
Oxyz n punctul P(x,y,z) n sistemul de referin Oxyz se obine prin nmulire cu
matricea de transformare M:
(3.26)
P = MP'
Se poate urmri cu mai mult uurin aceast modalitate de transformare ntr-un
caz simplu. Se consider un sistem de referin Oxyz i un alt sistem de referin
Oxyz care are originea O(x0,y0,z0) i aceeai orientare a axelor de coordonate ca i
sistemul Oxyz.
Poziionarea sistemului de referin Oxyz relativ la sistemul Oxyz este
definit de matricea de transformare M; poziionarea sistemului de referin Oxyz
relativ la sistemul Oxyz este definit de matricea de transformare invers M -1 :
1
0
M =
0

0
1
0
0

0 x0
1
0

0 y0
, M -1 =
0
1 z0

0 1
0

0
1
0
0

0 x0
0 y 0
1 z0

0
1

Submatricea de rotaie component a matricei M este matricea unitate, dat fiind


c sistemul de referin Oxyz are axele cu aceeai orientare ca i sistemul de
referin. ntr-adevr, cosinuii directori ai axelor Ox,Oy,Oz fa de axele
sistemului de referin Oxyz sunt (1,0,0), (0,1,0), (0,0,1) i matricea de rotaie 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 Oxyz printr-o translaie cu x0,y0,z0,
deci :

73

Grafic Inginereasca-note de curs

x ' 1

y'
0
P' = M 1P; =
z' 0

1 0

0
1
0
0

0 x 0 x

0 y 0 y
1 z0 z

0
1 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'.

y'
y

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

x'

O
z

x
z'

Fig.3.14 Transformarea sistemelor de referin.

n concluzie, aplicarea unei transformri definit printr-o matrice M, asupra unei


mulimi de puncte definite ntr-un sistem de referin Oxyz, poate fi interpretat n mai
multe moduri:
Fiecare punct este modificat i capt o nou poziionare n sistemul de referin
Oxyz, conform cu matricea de transformare M.
Fiecare punct este transformat din sistemul de referin iniial Oxyz ntr-un nou
sistem de referin, Oxyz, a crui poziie i orientare relativ la sistemul de referin
Oxyz este descris de matricea M-1.
Fiecare punct este transformat din sistemul de referin iniial Oxyz ntr-un nou
sistem de referin, Oxyz. Poziia i orientarea sistemului Oxyz relativ la sistemul de
referin Oxyz este descris de matricea M.
i nc o precizare: un sistem de referin nu este materializat n nici un fel
ntr-un sistem grafic (n software sau hardware), ci este o convenie cunoscut de
programator sau utilizator. Trecerea de la un sistem de referin la altul se efectueaz
prin transformri aplicate punctelor (obiectelor): modificarea coordonatelor acestora le
transfer dintr-un 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, transformrile geometrice sunt uneori considerate ca
modificri ale obiectelor, iar n alte situaii, ca schimbare a sistemului de referin. Este
normal ca un nceptor n practica programrii sistemelor grafice s pun o justificat
ntrebare: cum se poate ti care este interpretarea corect a unei transformri? Rspunsul
este c ambele interpretri sunt corecte, dar se alege aceea care permite urmrirea cea
mai direct a unui raionament pentru calculul unor transformri complexe. Nu exist
reete unice i sigure care s poat fi aplicate fr greeal n orice situaie, deci
experiena de proiectare i spune ntotdeauna cuvntul.
74

Grafic Inginereasca-note de curs

n dezvoltarea sistemelor de vizualizare se folosesc, totui, cteva sisteme de


referin bine definite, care permit specificarea cea mai simpl i eficient a operaiilor
de redare a obiectelor (scenelor). Unul dintre acestea, sistemul de referin universal, a
fost deja introdus. Alte sisteme de referin folosite n grafica tridimensional vor fi
definite pe parcursul lucrrii.
Sistemele de referin intermediare, care apar n descrierea unor transformri
complexe, sunt interpretri ale operaiilor de transformri geometrice care permit
urmrirea unui raionament de calcul. Exemplul urmtor evideniaz acest aspect.
Exemplul 3.2
Se consider sistemul de coordonate Oxyz i o matrice de transformare RX(/2)
care realizeaz o rotaie cu unghiul /2 n raport cu axa x:
1
0
R X ( / 2) =
0

0 0
0 1
1 0
0 0

0
0
0

Aceast transformare poate fi interpretat ca o transformare prin rotaie cu 90 n


raport cu axa x a fiecrui 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 Oxyz folosind matricea de transformare
invers corespunztoare, 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 Oxyz.
Se pot verifica uor rotaiile cu un unghi de /2 n raport cu celelalte axe de
coordonate. Rotaia 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. Rotaia 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.
y

y
P(0,1,1)
O

P(0,1,1)

P(0,-1,1)

O
x

z
P(0,-1,1)

(b)

(a)

Fig. 3.15 Rotaie cu /2 n raport cu axa x.


(a) Rotaia punctelor cu /2. (b) Rotaia sistemului de coordonate cu -/2.

Pentru deducerea matricelor unor transformri complexe se procedeaz prin


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

Grafic Inginereasca-note de curs

folosind transformri primitive succesive. Iniial se aplic o transformare ajuttoare


pentru aducerea obiectelor ntr-o poziie sau sistem de referin adecvat, se execut
transformarea dorit, dup care se revine la poziia sau sistemul de referin iniial prin
transformarea invers celei aplicate iniial.
Cteva exemple prezentate n continuare vor preciza acest mod de realizare a
transformrilor geometrice compuse.
3.3.1 Rotaia fa de o ax paralel cu una din axele sistemului de referin

Un exemplu ilustrativ de compunere a transformrilor geometrice este calculul


rotaiei 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 rotaie a obiectelor fa de aceast ax nu
poate fi realizat folosind matricea dedus n paragraful precedent (relaia 3.10), care
presupune rotaia fa de o ax a sistemului de coordonate.
De aceea, se aplic mai nti tuturor punctelor o transformare ajuttoare,
translaia cu T( tx, ty,0).Acest transformare poate fi intrepretat n dou moduri: ca o
schimbare a sistemului de referin Oxyz n sistemul Oxyz , n care punctul I este
transformat n punctul I(0,0,0), sau ca o modificare a poziiei tuturor punctelor din
spaiu, prin care punctul I este adus n originea sistemului de referin Oxyz.
y

I
O
O

ty
O

tx

T( tx ,ty ,0)

x
x

O
O
O

R z ()

x
x

I
O
O

T(tx , ty ,0)

(a)
y

ty
O

tx

I
O

T( tx ,ty ,0)

I
O

R Z ()

I
O
x

T(tx , ty ,0)

(b)
Fig. 3.16 Rotaia fa de o dreapt paralel ca axa z a sistemului de referin:
(a) considernd transformarea sistemelor de referin;
(b) considernd transformarea punctelor.
76

Grafic Inginereasca-note de curs

Dac se consider prima interpretare, operaiile se continu n noul sistem de


referin Oxyz, n care dreapta d se suprapune peste axa z, deci se poate obine
rotaia dorit cu un unghi folosind matricea de rotaie 3.10. Dup aceasta, se revine la
sistemul de referin iniial Oxyz, printr-o transformare invers, T(tx, ty, 0).
Rezult matricea compus de rotaie cu unghiul fa de o dreapt paralel cu
axa z care interecteaz planul Oxy n punctul I(tx, ty,0):
R d = T( t x , t y ,0)R Z ()T( t x , t y ,0)
1 0
0 1
Rd =
0 0

0 0
cos
sin
Rd =
0

0 t x cos sin 0 0 1 0
0 t y sin cos 0 0 0 1
1 0 0
0
1 0 0 0

0 1 0
0
0 1 0 0
sin 0 t x (1 cos ) + t y sin
cos 0 t y (1 cos ) t x sin

0
1
0

0
0
1

0 tx
0 t y
1
0

0
1

(3.27)

Acest proces este descris n Fig. 3.7 (a) pentru un unghi de 30 grade, cu
reprezentarea unei proiecii n planul Oxy.
n Fig. 3.7 (b) se prezint aceleai transformri succesive necesare pentru
realizarea rotaiei n raport cu o dreapt paralel cu axa z a sistemului, considernd c
transformarea iniial T(-tx,-ty,0) transform toate punctele din sistemul de referin
Oxyz, astfel nct punctul I se suprapune peste originea O. Se remarc faptul c, n
aceast situaie, este doar o diferen de interpretare, operaiile i rezultatul acestora
fiind identic.
3.3.2 Scalarea fa de un punct oarecare n spaiu

Matricea de scalare din relaia 3.4 efectueaz scalarea fa de originea sistemului


de coordonate, prin care componentele x, y, z ale vectorului de poziie OP al punctului P
sunt multiplicate fiecare cu factorul de scalare corespunztor. Se poate defini o scalare
fa de un punct fix F( x f , y f , z f ) din spaiu, prin care componentele vectorului FP sunt
multiplicate cu factorii de scalare corespunztori.
Matricea de scalare fa de un punct oarecare se poate deduce printr-o metod
asemntoare celei prezentate anterior, prin compunerea a trei transformri elementare
deja definite.
Se execut o translaie cu T( x f , y f ,z f ) , prin care punctul fix F se suprapune
1.
peste originea sistemului de coordonate.
Se aplic o transformare de scalare cu matricea S(s x , s y , s z ) .
2.
3.

Se efectueaz o translaie invers celei aplicate la punctul 1, deci cu matricea

T( x f , y f , z f ) .

Rezult matricea de scalare cu factorii de scar s x , s y , s z fa de un punct fix din


spaiu F( x f , y f , z f ) :
S F = T( x f , y f , z f )S(s x , s y , s z )T( x f , y f , z f )
77

Grafic Inginereasca-note de curs

1
0
SF =
0

0
s x
0
SF =
0

0 0 x f s x
1 0 y f 0
0 1 zf 0

0 0 1 0

sy

sz

sy

sz

0 1
0 0
0 0

1 0

0 0 xf
1 0 y f
0 1 zf

0 0
1

x f (1 s x )
y f (1 s y )
z f (1 s z )

(3.28)

3.3.3 Rotaia fa de o dreapt oarecare n spaiu

Urmrind un raionament asemntor cu cele anterioare, se poate deduce


matricea de rotaie cu un unghi fat de o dreapt oarecare D din spaiu, dat printr-un
punct D0(x0,y0,z0) i vectorul unitate (versorul) d, avnd cosinuii directori dx,dy,dz
( d = d x i + d y j + d z k ). Paii de transformare sunt urmtorii:
Translaia 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 rotaii n
raport cu celelalte dou axe.
Mai nti se efectueaz o rotae n raport cu axa x, cu un unghi , astfel ca
dreapta D s ajung n planul Oxz. Pentru calculul unghiului se consider notaiile din
Fig. 3.8 (b).
OM este versorul dreptei D dup translaia efectuat n pasul precedent. Mx, My,
Mz sunt interseciile planelor paralele cu planele sistemului de coordonate care trec prin
punctul M, cu axele corespunztoare (Mx este intersecia planului paralel cu planul Oyz
care trece prin M, cu axa x, etc.). Mxy, Myz, Mzx sunt proieciile punctului M pe planele
Oxy, Oyz i, respectiv, Ozx. Se pot scrie urmtoarele relaii:
OM x = d x ; OM y = d y ; OM z = d z
MM x = d yz = d 2y + d 2z
cos = d z / d yz = d z

d 2y + d 2z ; sin = d y / d yz = d y

d 2y + d 2z

(3.29)

Rotaia 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 = MMx = dyz.
A doua etap pentru alinierea versorului OM al dreptei D cu axa z este o rotaie
cu unghiul , efectuat n planul Ozx, n raport cu axa y. Pentru calculul unghiului se
urmresc notaiile din Fig. 3.8 (c). n triunghiul dreptunghic OMMx (unghiul drept n
Mx) OMx= dx, OM= 1, MxM= dyz. Rezult unghiul OMMx (notat unghiul ):
cos = d yz = d 2y + d 2z ; sin = d x

(3.30)

78

Grafic Inginereasca-note de curs

Mxy

My
Myz

M
x

M
O

dy
dyz
Mx

Mzx
z

(a)

(b)

Myz

dz

Mz

Mxy

My

dyz
O

Mz
M
z

dx

-
(c)

Mx

Mzx
dyz

Fig. 3.17 Alinierea dreptei D cu axa z.

Rotaia dreptei OM n planul Ozx fa de axa Oy transform punctul M n


punctul M pe axa Oz printr-o rotaie cu unghiul de valoare n sens invers sensului
pozitiv de rotaie dup axa y (a se revedea Fig. 3.17) Aceast transformare de aliniere a
dreptei D cu axa z se exprim matriceal astfel:
A Z = R Y ( ) R X ()

3. n acest pas se execut rotaia dorit, cu unghiul n raport cu dreapta D, care


este aliniat cu axa z a sistemului, deci se poate scrie:
1 cos sin
0 sin cos
R Z ( ) =
0
0
1

0
0
0

0
0
0

4. n pasul al patrulea se execut transformarea invers celei de la pasul 2, deci


cu o matrice A Z1 = R X ()R Y () .
5. n ultimul pas se execut transformarea de translaie invers, cu matricea
T( x 0 , y 0 , z 0 ) .
Rezult matricea compus de rotaie fa de dreapta D cu unghiul :
R D = T( x 0 , y 0 , z 0 ) R X () R Y ()R Z ()R Y ()R X ()T( x 0 , y 0 , z 0 )

(3.31)

Valorile unghiurilor i rezult din cosinuii directori ai axei de


rotaie D i au valorile date de relaiile 3.29 i 3.30.
3.4 Transformarea de modelare

O scen virtual este compus dintr-un numr oarecare de obiecte


tridimensionale amplasate n diferite poziii n scen. Tehnica de modelare a scenelor de
dimensiuni mari (ca numr 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 orientri 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
79

Grafic Inginereasca-note de curs

latura cubului este egal cu 2 uniti, atunci coordonatele vrfurilor 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 instaniat
(introdus) n scena virtual printr-o transformare numit transformare de modelare (sau
transformare de instaniere). Mai mult, reprezentarea ierarhic a scenelor virtuale prin
grafuri aciclice direcionate, permite instanierea de un numr oarecare de ori a fiecrui
model, folosind matrice de transformare corespunztoare. 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, operaia 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 obinuit, 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
instanei respective.
Poziia unei instane a obiectului n scen se definete printr-o matrice de
transformare care conine submatricea de rotaie R, care definete orientarea sistemului
de referin local Oxyz fa de sistemul de referin universal Oxyz (al scenei
virtuale) i submatricea de translaie T, care definete poziia originii O(x0,y0,z0) a
sistemului de referin local n sistemul universal. Submatricea de rotaie R poate fi
specificat fie prin cosinuii 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 rotaii
fa de axele de coordonate ale sistemului de referin local:
c11 c 21 c31

c
r
c32
R = 12 22
c13 c23 c33

0
0
0

0
sau
0

R = R Y ()R X ()R Z ()

Rezult matricea de transformare de modelare (instaniere):


M I = T( x 0 , y 0 , z 0 ) R S(s x , s y, s z )

(3.32)

Un punct P al obiectului n sistemul de referin model este transformat n


punctul PI n sistemul de referin universal prin instanierea:
PI = M I P
(3.33)
Exemplul urmtor ilustreaz crearea unei scene virtuale simple prin transformri
de instaniere.
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 construiete o scen virtual (n sistemul de referin universal) n care se
instaniaz patru obiecte pornind de la modelul cub.
Prima instaniere este chiar cubul din sistemul de referin model, deci sistemul
80

Grafic Inginereasca-note de curs

de referin model are acelai centru i aceeai orientare a axelor ca i sistemul de


referin universal; deci C1(0,0,0).
A doua instaniere este un cub cu latura de 4 uniti, 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 instaniere este un paralelipiped dreptunghic, cu laturile de dimensiuni
4,2,4, amplasat cu centrul n poziia 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 instaniere este un paralelipiped dreptunghic, cu laturile de dimensiuni
4,2,4, amplasat cu centrul n poziia 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 rnd cele trei matrice de instaniere.
Matricea de instaniere M1 este chiar matricea identitate: M1 = I.
Pentru calculul matricei de instaniere M2, se deduc n mod foarte simplu
matricele S2=S(2,2,2), R2=I, i T2=T(0,-8,0), deci: M 2 = T(0,8,0) S(2,2,2) .
Pentru calculul matricei de instaniere M3, se poate scrie S3=S(2,1,2),
R3=RZ(/4), T3=T(8,0,0), deci: M 3 = T(8,0,0) R Z ( / 4) S(2,1,2) .
Pemtru calculul matricei de instaniere M4, se poate scrie: S4=S(2,1,2),
R4=RZ(-/4), T4=T(-8,0,0), M 4 = T(-8,0,0) R Z (- / 4) S(2,1,2) .
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 aceleai dimensiuni ca
cele ale modelului. Cubul din partea de jos a imaginii se obine prin transformarea de
instaniere P2 = M2 P; paralelipipedul din dreapta se obine prin transformarea de
instaniere P3 = M3 P; paralelipipedul din stnga se obine prin transformarea de
instaniere P4 = M4 P.

Fig. 3.18 Scen virtual rezultat prin instanierea mai multor obiecte.

Reprezentarea de mai jos conine i o transformare de proiecie perspectiv,


pentru percepia adncimii care va fi explicat ulterior. Una din feele cubului (cea mai
81

Grafic Inginereasca-note de curs

apropiat de observator) este desenat ca suprafa de o culoare gri; celelalte fee ale
cubului sunt reprezentate numai prin muchiile lor (reprezentare numit cadru de
srm, wireframe)
3.5 Alte transformri geometrice n spaiu

Printre alte transformri n spaiul 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 distana 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:
S XY

1
0
=
0

0 0
1 0
0 1
0 0

0
1

0
0
, S YZ =
0
0

1
0

0
1
0
0

0
0
1
0

0
1 0
0 1

0
, S ZX =
0 0
0

1
0 0

0
0
1
0

0
0
0

(3.34)

Transformarea de simetrie fa de un plan oarecare se poate calcula folosind o


secven de transformri elementare (E3.2).
Dac se consider transformarea de simetrie ca o transformare aplicat unui
sistem de coordonate dat, sistemul de coordonate rezultat are convenia de orientare a
axelor invers fa de convenia iniial. De exemplu, sistemul drept Oxyz se transform
prin simetria Sxy ntr-un sistem de coordonate orientat dup regula minii stngi (Fig.
3.19).
y

SXY

Fig. 3.19 Transformarea de simetrie SXY transform sistemul de coordonate drept Oxyz
n sistemul de coordonate stng Oxyz.

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


dimensiunea obiectului transformat. Transformrile 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:
82

Grafic Inginereasca-note de curs

x ' = x + ay + bz; y' = y; z' = z

n forma matriceal n coordonate omogene, forfecarea dup axa x se scrie


astfel:
1
0
P' = P FX , unde FX (a , b) =
0

a
1
0
0

b
0
1
0

0
0
0

(3.35)

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


1
c
FY (c, d) =
0

0
1
0
0

0
d
1
0

0
0
,
0

1
0
FZ (e, f ) =
e

0
1
f
0

0
0
1
0

0
0
0

(3.36)

Transformarea de forfecare este folosit n definirea sistemelor de proiecie.


3.6 Transformri geometrice n plan

Uneori sunt necesare transformri geometrice n planul bidimensional.


Exprimarea matriceal unitar a transaformrilor geometrice n plan se poate face ntrun sistem de coordonate omogene definit n mod asemntor sistemului de coordonate
omogene n spaiu: unui punct P(x,y) n plan i corespunde un punct P(X,Y,w), cu
relaiile ntre coordonate: x = X / w; y = Y / w , unde factorul de scar w este diferit de
zero.
Transformrile geometrice n planul bidimensional pot fi definite prin matrice de
transformare de dimensiune 3x3. Pentru transformrile geometrice primitive n plan,
matricele de transformare se deduc simplu, ca o particularizare a transformrilor
geometrice spaiale. Acestea au urmtoarele expresii:
Translaia cu valorile tx i ty:
1 0 t x
P' = T( t x , t y )P, unde T( t x , t y ) = 0 1 t y
0 0 1

(3.37)

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


s x
P' = S(s x , s y )P, unde S(s x , s y ) = 0
0

0
sy
0

0
0
1

(3.38)

Rotaia fa de origine cu un unghi :


cos sin 0
P' = R () P, unde R () = sin cos 0
0
0
1

(3.39)

Transformri complexe n plan se pot defini, la fel ca i n spaiu, prin


compunerea (produs) de matrice de transformri primitive. Toate transformrile ntre
sisteme de referin n plan pot fi considerate cazuri particulare ale transformrilor
corespunztoare n spaiu.
83

Grafic Inginereasca-note de curs

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 operaiile pe care le putem
aplica acestora.
Obiectele ce pot face parte dintr-un sistem grafic sunt descrise n continuare prin
modalitatea de definire si construcie.
Punctul - obiect elementar ce poate fi definit prin coordonatele sale (xp, yp, zp).
Segmentul - este o mulime de puncte situate pe o dreapt cuprinse intre dou
puncte numite extremiti. 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 spaiul R3 poate fi definit cu ajutorul a trei puncte: dou care s fie
extremitile unui diametru al cercului i cel de-al treilea pe circumferin pentru a
defini planul cercului. Centrul cercului, raza i ecuaia planului ce conine cercul pot fi
uor calculate numai din coordonatele acestor trei puncte.
Elipsa. Un mod de a defini o elips prin puncte n 3D este bazat pe metoda
distanei 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 gsete 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 vrfuri (xi , yi, zi) i =1,..,n. segmentele ce compun polilinia nu trebuie
s fie situate n acelai plan.
Spline. Curbele spline 3D sunt curbe n 3D ce aproximeaz o polininie, deci este
suficient s dm cele n puncte(xi , yi, zi) i =1,..,n, iar formula din 2D se generalizeaz
pentru 3D.
Triunghi i suprafee poligonale. Suprafaa poligonal este aria cuprins ntre
muchiile unui poligon ( muchii situate n acelai plan). Singurul poligon la care
muchiile sunt situate totdeauna n acelai plan este triunghiul. De aceea suprafeele
poligonale se reprezint ca fiind o alturare de suprafee triunghiulare din acelai plan.
Sfera. O seciune dintr-o sfer este un cerc, oricare ar fi planul de seciune. De
aceea sfera se va trasa cu ajutorul cercului. Sfera poate fi definit n 3D prin dou
puncte: unul este centrul sferei iar cellalt este un punct oarecare de pe suprafaa sferei;
sau de dou puncte, extremitile diametrului seciunii maximale.
Elipsoid, sferoid i suprafee cuadrice. Un elipsoid este o suprafa dat de
ecuaia:
2
2
2
x xc y y c z z c
= 1,
+
+

a b c
84

Grafic Inginereasca-note de curs

unde C(xc, yc, zc) este centrul elipsoidului, iar a, b, c sunt parametrii reprezentnd
dimensiunile elipsoidului pe semiaxele Ox, Oy, Oz. Dac doi dintre parametrii a, b, sau
c sunt egali, atunci elipsoidul se numete sferoid, iar dac toi cei trei parametri sunt
egali atunci se obine sfera. Pmntul este de exemplu aproximat cu un sferoid.
Suprafeele cuadrice sunt generalizri ale sferelor i elipsoizilor. Ele au ecuaia:
ax 2 + by 2 + cz 2 + dyz + ezx + fxy + gx + hy + kz + l = 0.
Suprafee generate. Ecuaiile suprafeelor generate n 3D sunt:
x = f(u, v)
y = g(u, v)
z = h(u, v)

unde u, v sunt parametrii suprafeei curbilinii.


Parametrii u, v pot fi alei ca sistem de coordonate, iar curbele obinute 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 suprafaa 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 trasrii interactive a


curbelor. Viteza de prelucrare a punctelor descrise de mna uman cu un mouse pe
ecran este mic, astfel nct curba apare discontinu, nregistrnd i ezitrile n trasare.
Produsele de grafic, ofer instrumente care corecteaz aceste deficiene, instrumente
bazate pe folosirea unui set de puncte de control. Curba trasat interactiv va trece prin
aceste puncte sau printr-o vecintate controlat, asigurnd i proprietatea de netezime.
Parabola spline este o reuniune de arce parabolice obinute cu ajutorul punctelor
de control P1, P2,.,Pn: primul arc trece prin P1, P2, P3, urmtorul prin P2, P3, P4, iar
ultimul trece prin punctele Pn-2, Pn-1, Pn,
Pentru a gsi formula unui arc parabolic considerm ecuaia 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). Obinem o mulime de ecuaii liniare pentru a,b,c:
a

y1

V b = y2 ,
y3
c

x12
unde V este matricea Vandermonde: V = x
x

2
2
2
3

x1 1
x2 1 .
x3 1
a

Prin inversarea acestei matrice obinem soluia pentru a,b,c: b = V


c

y1
1

y2
y3

Din P2, P3 i P4 obinem parametrii celui de-al doilea arc parabolic a',b',c' . Trasnd
arcul din prima parabol de la P1 la P2 i arcul din cea de-a doua parabol de la P2 la P3
85

Grafic Inginereasca-note de curs

.a.m.d. obinem curba cutat. 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 pstra panta m n P2. Urmtorul arc este determinat de panta m
n P2 ; arcele urmtoare se determin n mod similar. Ecuaiile de rezolvat n acest caz
sunt:
y 2 = a ' x 22 + b' x 2 + c'

2
y 3 = a ' x3 + b' x 3 + c '
m = 2a ' x + b'
2

i n acest caz sistemul poate fi rezolvat algebric.


O alt problem care apare n legtur cu parabolele spline este cea a reflectrii
arcului. Aceast problem este prezentat n fig. 4.1, n care ultimul arc ndeplinete
condiia de pant n P3 , dar poate fi orientat spre interior sau spre exterior.
P4

P1

P2

P1

P3

P4

P3

Fig.4.1. Reflexia unui arc de parabol spline


Se observ c i arcul reflectat ndeplinete condiiile cerute: trece prin P3, P4,
iar panta tangentei este aceeai (m). Pentru a "reflecta" un arc putem descrie formulele
astfel. S presupunem c reflectm arcul de la P3 la P4. Fiecare punct va fi transferat
ntr-o nou poziie, punctul (x, y) va fi mutat n punctul (xrefl, yrefl ) unde:
( y mx ) ( y 2 Mx2 )
x refl =
M m
M ( y mx ) m( y 2 Mx 2 )
y refl =
M m
n aceste ecuaii M este panta dreptei ce unete P2 cu P3 :
y y
M= 3 2
x3 x2
Cnd trebuie reflectat un arc parabolic?
Determinm dac un punct urmtor consecutiv se gsete pe arcul precedent i
dac nu reflectm arcul. Exemple de parabole spline sunt date n fig.1.25:

Fig. 1.25. Parabole spline


86

Grafic Inginereasca-note de curs

Capitolul 5
I.

Sisteme de vizualizare

Un sistem de vizualizare este definit printr-o colecie de sisteme de referin,


convenii de reprezentare i relaii (matriceale) de transformare care permit executarea
unei succesiuni de transformri care au ca efect punerea n coresponden (mapping) a
punctelor din sistemul de referin de modelare (modelling coordinate space) cu puncte
ale suprafeei de vizualizare (view surface).
ntr-un sistem de vizualizare, generarea imaginii scenei virtuale este un proces
complex care poate fi parcurs prin reprezentri n mai multe sisteme de referin, fiecare
sistem de referin facilitnd specificarea i executarea anumitor operaii (Fig. 5.1). n
multe lucrri, generarea imaginii de mai este denumit i vizualizarea sau redarea
scenelor (viewing, rendering). Pe parcursul lucrrii vor fi utilizai toi aceti 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 instaniate prin aplicarea unei succesiuni de transformri geometrice, care
constitue transformarea de modelare (descris n capitolul 3). Prin transformarea de
modelare se obine 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 redrii realiste a scenelor, cum sunt sursele de
lumin sau traiectoriile de modificare a poziiei obiectelor mobile n scen.
Sistem
de referin
local

Sistem
de referin
universal

Sistem
de referin
de observare

Definire
obiecte

Definire
sistem de
referin
de observare

Definire
proiecie
i volum de
vizualizare

Transformare
de modelare

Transformare
de observare

Sistem
de referin
normalizat

Sistem
de referin
ecran 3D

Sistem
de referin
imagine

Decupare

mprire
cu w
Calcul
proiecie

Afiare
imagine

Transformare
de normalizare

Transformare
n ecran 3D

Transformare
de rastru

Fig. 5.1 Succesiunea operaiilor de vizualizare.

n sistemul de referin universal se definete un sistem de referin de observare


87

Grafic Inginereasca-note de curs

(view reference), care specific punctul i direcia din care este privit (observat)
scena. Este evident c, pentru aceeai scen, imaginea care se red pe display depinde
de punctul i direcia 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 suprautilizrii
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). Poziia i orientarea sistemului de referin de observare corespund poziiei i
orientrii ochiului sau a camerei ntr-o scen real. Dintr-un punct de observare dat,
numai o parte a scenei poate fi vzut, restul aflndu-se n spatele sau n prile laterale
ale direciei 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 direcia dat de direcia de
observare. n redarea scenelor, deschiderea unghiular a piramidei de vizualizare
definete cmpul de vizualizare (field of view), care este o caracteristic important a
sistemelor grafice.
Dei exist i unele dispozitive de afiare tridimensional, majoritatea sistemelor
grafice afieaz imaginile pe o suprafa plan a unui dispozitiv de afiare (display). De
aceea, n succesiunea operaiilor de vizualizare a obiectelor sau a scenelor
tridimensionale, este necesar introducerea unei proiecii, care convertete spaiul
tridimensional ntr-o reprezentare bidimensional. n general, proieciile transform
spaiul Rn n spaiul Rm, unde m < n.
Modul n care se realizeaz proiecia obiectelor tridimensionale se definete n
sistemul de referin de observare prin mai muli parametri, dintre care cei mai
importani sunt: tipul proieciei i planul de vizualizare (view plane). Intersecia dintre
planul de vizualizare i piramida de vizualizare definete o regiune plan numit
fereastr de vizualizare (view plane window) n care sunt reprezentate toate imaginile
bidimensionale ale obiectelor (sau prilor de obiecte) vizibile din scen.
n grafica tridimensional exist mai multe posibiliti de definire a sistemelor
de vizualizare, de la definiri simple, utile n mici programe grafice, pn 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 proiecie
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 nct obiectele sau prile din obiecte care se afl
n afara volumului de vizualizare (volumul canonic) sunt eliminate (ignorate pentru
operaiile urmtoare de redare, nu terse din scen).
Urmtoarea 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
88

Grafic Inginereasca-note de curs

corespunztoare zonei de afiare pe display, numit poart (viewport), iar coordonata z


se pstreaz nemodificat. n sistemul de referin ecran 3D se calculeaz coordonatele
tridimensionale ale punctelor din coordonatele omogene prin mprirea cu w, dup care
se execut transformarea de rastru (rasterization). Transformarea de rastru calculeaz
mulimea pixelilor care aparin unui segment sau poligon dat prin coordonatele
vrfurilor. Prin aceast transformare (care se mai numete i conversie de baleiere
scan conversion) spaiul bidimensional continuu al porii de afiare este convertit n
spaiul bidimensional discret al imaginii. n general, concomitent cu transformarea de
rastru sunt executate i alte operaii: eliminarea suprafeelor ascunse (hidden surface
removal), umbrirea (shading), texturarea (texturing).
Aceasta este succesiunea cea mai general a operaiilor de vizualizare a scenelor,
care este descris i utilizat n momentul de fa n grafic i realitatea virtual. Trebuie
ns remarcat faptul c evoluia tehnologic, deosebit de spectaculoas n acest
domeniu, a modificat, uneori substanial, modul de abordare a generrii imaginii
obiectelor tridimensionale. De exemplu, posibilitatea de implementare eficient (uneori
chiar n hardware) a operaiei de comparare a adncimii punctelor a impus utilizarea
algoritmului cunoscut sub numele de algoritm Z-buffer i a condus la ignorarea
complet a altor algoritmi de eliminare a suprafeelor ascunse, care n sistemele mai
vechi aveau o mare importan i implicaie asupra ntregii succesiuni de operaii
grafice. Se pot da numeroase exemple de modul n care schimbrile tehnologice au
influienat abordarea graficii tridimensionale, i, probabil, astfel de influiene vor
continua s apar i n viitor. De aceea, lucrarea i propune s prezinte aspectele
eseniale ale graficii utilizate n realitate virtual, mai puin influienate de contextul
tehnologic de moment.
5.1 Transformarea de observare

Transformarea de observare este analog cu poziionarea 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, aadar, o schimbare a sistemului de coordonate
de la sistemul de referin universal la sistemul de referin de observare (view
coordinate). n majoritatea aplicaiilor de realitate virtual (simulatoare, aplicaii n
arhitectur, etc) scena virtual reprezentat n sistemul de referin universal este
meninut ntr-o poziie constant (cel mult existnd anumite obiecte mobile n scen),
iar observatorul este cel care i modific poziia i orientarea, i n funcie de acestea
se red imaginea corespunztoare pe ecran. Direcia de observare a scenei este, n
majoritatea sistemelor de vizualizare, direcia 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:

89

Grafic Inginereasca-note de curs

M = TV R V

0
=
0

0 0 x v c11 c 21 c31

1 0 y V c12 c 22 c32
0 1 z V c13 c 23 c33

0 0 1 0
0
0

0 c11 c21 c31 x V


0 c12 c22 c32 y V
=
0 c13 c23 c33 z V


1 0
0
0
1

(5.1)

Matricea component TV este matricea de translaie a sistemului de referin de


observare n raport cu sistemul de referin universal: x V , y V , z V sunt coordonatele
punctului de observare OV n sistemul Oxzy. Matricea de rotaie RV reprezint
orientarea sistemului de referin de observare fa de sistemul de referin universal:
coeficienii c11, c12, c13 sunt cosinuii directori ai axei OVxV fa de axele Ox, Oy,
respectiv Oz; coeficienii c21, c22, c23 sunt cosinuii directori ai axei OVyV fa de axele
Ox, Oy, respectiv Oz; coeficienii c31, c32, c33 sunt cosinuii directori ai axei OVzV fa
de axele Ox, Oy, respectiv Oz.
Fiind dat matricea de poziionare 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 nmulire cu matricea invers, deci:
PV = M 1P = R V1TV1P = M V P
(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:
M V = M 1 .
Matricea de rotaie mai poate fi precizat i printr-o succesiune de rotaii n
raport cu axele sistemului de referin universal. Cea mai obinuit convenie pentru
ordinea de specificare a rotaiilor este: ruliu cu unghiul (dup axa z), tangaj cu unghiul
(dup axa x) i giraie cu unghiul (fa de axa y). n aceast situaie:
R V = R Y ()R X ()R Z ()

i rezult:
1
PV = R -1
V TV P = R Z ( ) R X ( ) R Y ( )T( x V , y v , z v ) P

(5.3)

n aceste relaii 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 definete sistemul de referin de
observare ca un sistem orientat dup regula minii stngi. Pentru schimbarea sistemului
de referin de observare drept n sistem de referin stng, se adaug o transformare de
oglindire (simetrie), de exemplu cu matricea SXY, iar matricea de transformare de
observare devine MV, unde:
M' V = S XY M V

Dat fiind c nu exist o predilecie cert pentru una din aceste convenii posibile
(sistem de referin de observare drept sau stng), este necesar s fie precizat de fiecare
dat convenia folosit, ceea ce se va face i pe parcursul acestei lucrri.
n deducerea relaiilor 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 situaii n care matricea M nu este cunoscut i atunci matricea de
transformare de observare MV (sau MV) trebuie s fie calculat prin diferite
transformri geometrice i raionamente. n exemplul urmtor se urmrete un
90

Grafic Inginereasca-note de curs

raionament de calcul al transformrii de observare, pentru o anumit cerin de


observare a scenei.
Exemplul

Se poate defini un sistem de referin de observare pornind de la alte condiii


dect cele prezentate mai sus. De exemplu, se cere definirea matricii de transformare de
observare n situaia n care obiectul care trebuie s fie vzut se afl n centrul
sistemului de referin universal, iar punctul de observare este un punct dat n spaiul
tridimensional, E(xE, yE, zE).
Pentru ca obiectul aflat n centrul sistemului de referin universal s fie vzut
din punctul E dat, se definete sistemul de referin de observare drept cu centrul n
punctul E, i cu axa zV orientat pe dreapta OE (cu sensul de la O ctre E). Direcia de
observare ntr-un sistem de referin drept este definit (n majoritatea sistemelor de
vizualizare) n sens invers direciei axei z, deci ctre centrul O.
Calculele de transformare se efectueaz mai uor dac se dau coordonatele
sferice ale punctului E: distana a punctului E fa de origine i unghiurile i (Fig.
5.2). Coordonatele carteziene ale punctului E pot fi calculate n funce de coordonatele
sferice:
x E = sin cos
y E = sin cos
z E = cos

Pentru transformarea unui obiect din sistemul de referin universal n sistemul


de referin de observare astfel definit, sunt necesare trei transformri elementare. n
Fig. 5.2 sunt reprezentate primele dou transformri componente ale transformrii de
observare.
z

y
y

y
y

Exy

Exy

x
(b)

(a)

Fig. 5.2 Transformarea de observare: (a) translaia (b) rotaia n raport cu axa z.

Translaia T1 = T(xE, yE, zE) transform sistemul de referin universal ntrun sistem de referin cu centrul n punctul E i cu axele x, y, z paralele cu axele
sistemului de referin universal.

91

Grafic Inginereasca-note de curs

0 0 cos sin
1 0 sin sin
cos
0 1

0 0
1

1
0
T1 =
0

Orientarea sistemului de referin de observare astfel nct axa z s se


suprapun peste dreapta OE se obine prin dou rotaii.
Prima rotaie se efectueaz n raport cu axa z cu un unghi de 90 n sens
negativ, astfel nct noua ax x obinut s fie normal la planul care trece prin axa z i
punctul E (planul OEExy) (Fig. 5.2(b)). Aceast operaie este echivalent cu o rotaie n
sens direct aplicat asupra punctelor, deci cu matricea R2 = RZ(90 ), unde
sin cos
cos sin
=
R2
0
0

0
0

0 0
0 0
1 0

0 1

Dup aceast rotaie, sistemul observator are axa x perpendicular pe planul


planul OEExy i axa Ez n planul OEExy.
A doua rotaie este o rotaie a sistemului de coordonate Exyz 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 rotaie este echivalent cu o rotaie invers aplicat
obiectelor, deci cu matricea R3 = RX( ):
0
0
1
0 cos sin
R3 =
0 sin cos

0
0
0
z

0
0
0

E
xV

Exy

zV

O
yV

(c)

(d)
Fig. 5.3Transformarea de observare:
(c) rotaia n raport cu axa x(d) sistemul de referin rezultat

Rezult matricea de transformare de observare:


M V = R X ()R Z (90 )T( x E , y E , z E )

92

Grafic Inginereasca-note de curs

MV

cos
0
0
sin
cos cos sin cos sin 0

=
cos sin sin sin cos

0
0
0
1

Transformarea unui punct P(x,y,z) din sistemul de referin universal n punctul


P(xV,yV,zV) n sistemul de referin observator se obine astfel:

[x V

z V 1]T = M V [x

yV

y z 1]T

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:
= 10 3
cos = 2 2 , sin = 2 2 , = 45 o
cos = 3 3, sin = 6 3 , = 54 o 45 '

Matricea de transformare de observare are valoarea:


MV

2 2 2 2
6 6

6 6

3 3

3 3

0
6 3
3 3 10 3

0
1
0

Centrul O al sistemului de referin universal se transform n punctul


) n sistemul de referin de observare, iar vrful cubului P(1,1,1), se
transform n punctul P' (0,0,-10 3 ) . Direcia de observare trece printr-un vrf al cubului
i prin centrul lui.

O' 0,0,-9 3

Fig. 5.4 Exemplu de observare ctre centrul sistemului de referin universal.

5.2 Transformarea de proiecie


Proiecia unui obiect tridimensional pe un plan (numit plan de proiecie sau plan
de vizualizare view plane) este format din mulimea punctelor de intersecie ntre
acest plan i dreptele numite proiectori, care pornesc dintr-un punct fix numit centru de
93

Grafic Inginereasca-note de curs

proiecie i trec prin fiecare punct al obiectului.


n funcie de distana centrului de proiecie fa de planul de proiecie, proieciile
plane se clasific n proiecii perspectiv i proiecii paralele. n proieciile perspectiv
centrul de proiecie se afl la distan finit fa de planul de vizualizare, iar n
proieciile paralele centrul de proiecie este la infinit. n cazul proieciilor paralele,
proiectorii sunt drepte paralele i au o direcie comun, numit direcie de proiecie.
n grafica tridimensional se folosete cel mai frecvent proiecia perspectiv,
deoarece aceast proiecie red cel mai bine efectul de descretere a dimensiunilor
obiectelor odat cu creterea distanei acestora fa de observator.
Modul de definire a punctului de observare al scenei, al centrului de proiecie 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 nsui sistemul de vizualizare, exploatarea oricrui sistem
necesit o nelegere precis a modului n care diferii parametri determin imaginea
obinut pe display. Combinaiile posibile sunt n munr att de mare, nct ansa de a
potrivi diferii parametri ai unui sistem de vizualizare, fr a fi cunoscute condiiile n
care lucreaz acesta, este infim.
5.3 Proiecia paralel
n proiecia paralel, centrul de proiecie este la infinit, iar toate dreptele de
proiecie sunt paralele ntre ele, avnd o direcie numit direcia de proiecie.
Proieciile paralele sunt foarte rar folosite n grafica destinat sistemelor de
realitate virtual, dat fiind c imaginea rezultat nu d informaii asupra distanei
obiectelor n scen.
Planul de proiecie al unei proiecii paralele poate fi perpendicular pe direcia de
proiecie, i atunci proiecia se numete proiecie ortografic, sau poate avea o inclinare
oarecare fa de direcia de proiecie, i atunci proiecia se numete proiecie oblic.
Dintre proieciile ortografice, cele mai utilizate sunt proieciile ortografice n
care planul de proiecie este unul din planurile sistemului de coordonate. Proieciile
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 urmtor. Matricea de transformare de proiecie ortografic n planul z = 0 are
urmtoarea expresie:
1
0
PZ =
0

0 0 0
1 0 0
0 0 0

0 0 1

(5.4)

Un punct P(x,y,z) se transform n punctul P(x,y,0) prin proiecie ortografic n


planul z=0, care are aceleai coordonate x i y, iar coordonata z are valoarea zero.
n mod similar, se definesc matricile de proiecie ortografic n planele x = 0 i y
= 0:
0
0
PX =
0

0 0 0
1 0 0
,
0 1 0

0 0 1

1
0
PY =
0

0 0 0
0 0 0
0 1 0

0 0 1
94

(5.5)

Grafic Inginereasca-note de curs

5.4 Proiecia perspectiv

Exist mai multe modaliti de definire a unei proiecii perspectiv, de la o


definire minimal, prin care se poate realiza proiecia punctelor din spaiu pe un plan,
pn la definirea adoptat n sisteme de vizualizare complexe, n care se specific
volumul de vizualizare, centrul de proiecie i ali parametri. n continuare, vor fi
prezentate cteva sisteme de vizualizare cu proiecie perspectiv, ncepnd cu cel mai
simplu sistem i pn la sistemul complet de vizualizare care se conformeaz
standardelor GKS i PHIGS.
Proiecia perspectiv se poate defini mai intuitiv pornind de la sistemul de
observare considerat ca un sistem de referin stng. Centrul de proiecie se fixeaz n
centrul sistemului de referin de observare OV, direcia de observare (de privire) este n
sensul pozitiv al axei OVzV, iar planul de vizualizare este un plan perpendicular pe axa
OVzV, la distana d fa de centru (Fig. 5.5(a)).
Direcia de observare

Direcia de observare
yV

yV

P
P
B

OV

yP

OV

zV

xV

yV

(a) Sistem de referin de observare stng

zV

zV
xV

yV
yP
A zV

d
zV

(b) Sistem de referin de observare drept

Fig. 5.5 Proiecia perspectiv definit prin centrul de proiecie OV


i planul de proiecie perpendicular pe axa OVzV.

Punctul P(xV,yV,zV) n sistemul de referin de observare se proiecteaz n


punctul P(xP,yP,zP), aflat la intersecia dreptei OVP cu planul de vizualizare. Din
triunghiurile asemenea OVPA i OVPB, rezult:
yP =

d yV
zV

n mod asemntor se poate deduce valoarea lui xP:


xP =

d xV
zV

(5.6)

Aceste relaii se pot exprima matriceal prin definirea matricei de proiecie


perspectiv MP astfel:

95

Grafic Inginereasca-note de curs

1
0
MP =
0

0
1 0 0
0 1 0

0 1 / d 0
0

(5.7)

Transformarea de proiecie se poate scrie atunci:


X P 1
Y 0
P' = M P P , P =
Z P 0

w P 0

0 X V

1 0 0 YV
0 1 0 Z V

0 1 / d 0 w V
0

Rezult:
X P = X V

YP = YV
i

Z P = Z V
w P = Z V / d

x P = X P / w P = d X V / Z V = d x V z V

y P = YP / w P = d YV / Z V = d y V z V
z = Z / w = d
P
P
P

(5.8)

Se observ c expresiile lui xP i yP i zP obinute prin calcul matriceal sunt


identice cu cele din relaiile 4.6, rezultate din construcia geometric prezentat n Fig
5.5(a). Proiecia perspectiv nseamn deci o mprire a coordonatelor x i y cu distana
z, i, ntr-adevr, n proiecia perspectiv imaginea unui obiect este cu att mai mic cu
ct 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 stng. Se poate defini acest sistem ca un sistem de referin
drept, iar direcia de observare ndreptat spre zV. Planul de vizualizare este poziionat
perpendicular pe axa z, la distan egal cu d fa de origine (Fig.5.5(b)), d avnd
valoare negativ. Urmnd un raionament asemnotor cu cel de mai sus, rezult
matricea de proiecie perspectiv cu aceeai expresie 4.7, n care d are o valoare
negativ. Coordonatele punctului transformat sunt date de relaiile 4.8. Trebuie precizat
c n aceast convenie se proiecteaz pe planul de vizualizare punctele aflate n direcia
de observare, deci cu zV negativ.
Se remarc echivalena rezultatelor obinute, iar convenia de sistem de referin
de observare stng este util doar pentru a se urmri mai uor raionamentul de calcul.
5.5 Sistemul de referin normalizat

Sistemul de proiecie 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 dect n aplicaii foarte simple, n care se proiecteaz obiecte aflate tot timpul n
cmpul de observare. Nu aceasta este situaia 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 proiecie perspectiv este o transformare costisitoare, datorit
faptului c necesit operaii de mprire, care consum timp de calcul ridicat, dac este
executat prin program, sau circuite complexe, dac este implementat hardware.
Execuia 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, operaia de decupare (clipping) a prilor din obiectele
96

Grafic Inginereasca-note de curs

tridimensionale care nu sunt vizibile dintr-un anumit punct de observare, nu se poate


executa eficient dup proiecie i este necesar execuia ei nainte de proiectarea
coordonatelor n planul de vizualizare. Asupra acestui aspect se va reveni cu ocazia
descrierii operaiei 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 definete n sistemul de referin de observare. n forma cea
mai simpl, trunchiul de piramid de vizualizare este mrginit 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 proiecia, i planul deprtat (far). n figura Fig.
5.6 este prezentat volumul de vizualizare ntr-un sistem de referin de observare stng
i direcia de observare ctre zV pozitiv.
Direcia de observare
yV
yV = h zV/d
B
A

OV
zV

xV

zV = d

xV = g zV/d
zV = f
Fig. 5.6 Definirea trunchiului de piramid de vizualizare (frustum)
n sistemul de referin de observare stng.

Intersecia dintre cele patru plane laterale i planul de vizualizare (care, n


aceast definiie, 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).
Ecuaiile celor ase plane ale trunchiului de piramid regulat sunt:
x V = g z V d

y V = h z V d

z V = d
z V = f

(5.9)

unde: 2g dimensiunea laturii orizontale a ferestrei de vizualizare (latura AB)


2h dimensiunea laturii verticale a ferestrei de vizualizare (latura BC)
d distana planului de vizualizare i a planului apropiat
97

Grafic Inginereasca-note de curs

f distana planului deprtat.


Semnificaia volumului de vizualizare este evident: dintre toate obiectele din
scena virtual, sunt vizibile i redate n fereastra de vizualizare numai acele obiecte sau
pri din obiecte care sunt cuprinse n acest volum. Trunchiul de piramid de vizualizare
definete n acest fel i volumul de decupare (clipping), operaie care se execut ntrunul din sistemele de referin care se definesc n cadrul transformrii de proiecie, i
anume sistemul de referin normalizat. Acest sistem de referin se mai numete 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 proiecie definit n acest
paragraf, volumul canonic este un paralelipiped dreptunghic cu latura bazei egal cu 2 i
nlimea 1 (dup axa zN).
Introducerea acestui nou sistem de referin permite abordarea transformrii de
proiecie perspectiv n dou etape: o transformare din sistemul de referin de
observare n sistemul de referin normalizat (numit transformare de normalizare),
urmat de calculul proieciei prin mprirea cu w a coordonatelor omogene. ntre cele
dou etape ale transformrii de proiecie perspectiv se execut o operaie 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 urmtoarele cerine:
Se normalizeaz coordonata zN, care reprezint adncimea, astfel nct s se
obin precizie maxim n operaiile de comparaie a adncimii punctelor.
Liniile din sistemul de referin observator trebuie s se transforme n linii n
sistemul de referin normalizat.
Suprafeele plane din sistemul de referin observator trebuie s se transforme n
suprafee plane n sistemul de referin normalizat.
S-a demonstrat [New81] c aceste cerine sunt satisfcute de transformarea:
z N = a + b/z V

unde a i b sunt constante. Aceste constante se determin din urmtoarele constrngeri:


Se alege b < 0, astfel ca zN s creasc atunci cnd crete zV. Aceast condiie
conserv noiunea intuitiv de adncime: un punct are coordonata zN cu att mai mare
cu ct este mai departe de observator.
Se normalizeaz domeniul de variaie al lui zN, astfel ca domeniul zV[d,f] s se
transforme n domeniul zN[0,1].
Rezult urmtoarele relaii care definesc transformarea de normalizare:

d xV
x N =
g zV

d yV

y N =
h zV

z N = f 1 d

f d
z V

(5.10)

98

Grafic Inginereasca-note de curs

Coordonatele omogene ale unui punct n sistemul normalizat au expresiile:


X N = d x V g

YN = d y V h

Z N = z V f /(f d) df/(f d)
w N = z V

(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:
MN

X N
x V
Y

N = M y V
N
ZN
z V


1
w N

0
0
0

d / g

0
d
/
h
0
0
,
=
0
0
f /(f d) df/(f d)

0
1
0

(5.12)

Matricea de transformare de normalizare MN poate fi exprimat ca un produs de


dou matrice astfel:
y
Volumul
de vizualizare

yV

MN1

d
h
zV

OV

d
f

d
(b)

(a)
(a) Volumul de vizibilitate n sistemul de
referin observator.
(b) Scalarea care transform volumul de
vizibilitate n trunchi de piramid
regulat cu unghil la vrful piramidei
de 90 grade.
(c) Volumul de vizibilitate canonic n
sistemul de referin normalizat
tridimensional.

MN2
yN
1

Fig. 5.7 Etapele transformrii de normalizare.


99

zN

(c)

Grafic Inginereasca-note de curs

MN

1
0
=
0

0
d / g

d/h
1
0
0
0
0 f /(f d) df/(f d) 0
0

0
1
0
0
0
0

0 0
0 0
= M N2 M N1
1 0

0 1

Aceast reprezentare permite analiza mai detaliat a transformrii de


normalizare. Sistemul de referin normalizat astfel definit este un sistem de referin
stng. 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 vrful 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 operaia de decupare a obiectelor
n coordonate normalizate omogene. n urma acestei operaii, din totalitatea obiectelor
scenei virtuale sunt reinute numai acele obiecte sau pri (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:
xN = XN wN =

d xV
d yV
f
d
1

; y N = YN w N =
; zN = ZN w N =
g zV
h zV
f d
z V

S-au obinut, evident, expresii identice cu cele din relaiile 4.10, de la care s-a
pornit pentru definirea transformrii de proiecie perspectiv.
Coordonatele xN i yN n sistemul de referin normalizat reprezint coordonatele
proieciei ortografice n planul zN = 0 (care este planul de vizualizare) a punctului
corespunztor. Este de remarcat faptul c transformarea de proiecie perspectiv din
sistemul de referin observator a devenit o transformare de proiecie ortografic n
sistemul de referin normalizat. Dar aceaste operaii de trecere de la coordonate
omogene la coordonate tridimensionale i proiecia ortografic nu se efectueaz n
sistemul normalizat ci ntr-un alt sistem de referin, sistemul ecran 3D, obinut prin
transformarea fereastrei de vizualizare n poart de afiare.
Unghiul dintre planele laterale ale piramidei de vizualizare (care trec prin axa
OVyV i au ecuaiile xV = g zV/d ) se numete unghi de vizualizare pe orizontal
(horizontal field of view fovx). Unghiul dintre planele piramidei de vizualizare care trec
prin axa OVxV se numete unghi de vizualizare pe vertical (vertical field of view
fovy). Valorile acestora se deduc din parametrii de proiecie perspectiv:
g
h
fovx = 2arctg , fovy = 2arctg
d
d

(5.13)

Valorile unghiurilor de vizualizare variaz pentru diferite sisteme grafice n


funcie de dispozitivele de afiare folosite.
O alt convenie de definire a unui sistem de vizualizare este aceea de a
considera sistemul de referin de observare ca un sistem drept, iar direcia de observare
i volumul de vizualizare ndreptate ctre zV negativ. Urmrind un raionament
asemntor celui de mai sus, se obine aceeai expresie a matricii de normalizare (relaia
5.12), n care valorile d i f au valori negative, iar sistemul de referin normalizat
100

Grafic Inginereasca-note de curs

rezultat este un sistem de referin stng.


Exemplu

(b) xV = 2
yV = 2
zV = 20
===0

(a) xV = 2
yV = 2
zV = 20
===0

(c) xV = 2
yV = 2
zV = 20
===0

(d) xV = 2
yV = 2
zV = 20
===0

(e) xV = 2
yV = 2
zV = 20
= 30
==0

(f) xV = 2
yV = 2
zV = 20
= 30
==0

Fig. 5.8 Transformri de proiecie perspectiv


pentru diferite puncte i direcii de observare a scenei
101

Grafic Inginereasca-note de curs

Se reia scena virtual din Exemplul anterior. Imaginile din figura de mai jos
corespund obiectelor instaniate 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 direcia de observare ndreptat ctre zV negativ. Originea OV are
valori diferite n diferitele imagini ale figurii, aa cum este indicat pentru fiecare dintre
ele, i orientare dat prin unghiurile de giraie, tangaj, ruliu ( ,, ).
Transformarea de perspectiv este definit prin parametrii: d = 1, f = 40, g
= 1, h = 1. Succesiunea de transformri efectuate pentru obinerea acestor imagini este:
Transformarea de modelare, diferit pentru fiecare din cuburi, cu matricele M1,
M2, M3, M4 calculate. Dup transformarea de modelare (instaniere), toate obiectele
sunt reprezentate n sistemul de referin universal i, n continuare, vor fi supuse toate
acelorai transformri.
Transformarea de observare cu matricea:
M V = R Z () R X ()R Y ( )T ( x V , y V , z V ) ,
cu valorile parametrilor xV, yV, zV, , , corespunztoare fiecrei imagini redate.
Transformarea de normalizare cu matricea:
0
0
1 0
0 1
0
0
MN =
0
0 1.025 1.025

0
1
0
0
Imaginile generate pe ecran mai necesit i alte transformri grafice, pe lng cele
prezentate pn acum: transformarea n coordonate ecran 3D, prin care se efectueaz o
coresponden ntre fereastra de vizualizare i zona de afiare alocat pe ecran (numit poart
viewport), precum i o transformare de rastru, prin care se genereaz mulimea pixelilor afiai
pe ecran. Aceste transformri vor fi descrise paragrafele urmtoare
n acest sistem de proiecie 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 lsat ca un exerciiu pentru cursani. De asemenea, tot ca un
exerciiu, se poate deduce matricea de normalizare n situaia 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 proiecie (tipul de proiecie, centrul de proiecie, direcia 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 numr mare
de aplicaii de grafic proiectiv (CAD- Computer Aided Design) i unele aplicaii de realitate
virtual neimersiv de tip desktop, n care mediul grafic este generat pe monitorul unui
calculator.
Dar restriciile impuse acestui sistem de vizualizare (de exemplu, s-a considerat c
centrul de proiecie 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 cmp de
vizualizare de dimensiune mare. Astfel de situaii 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 cmp de vizualizare tipic de 35-45 vertical-orizontal. Pentru cmpuri
102

Grafic Inginereasca-note de curs

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 corespunztoare, permit obinerea unor cmpuri 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 proiecie este diferit de acesta i este specificat prin
punctul PRP (projection reference point). Planul de vizualizare (pe care se execut
proiecia imaginii) nu este n mod necesar perpendicular pe linia care unete centrul de
proiecie cu centrul ferestrei de vizualizare, ceea ce permite realizarea proieciilor
oblice. Fereastra de vizualizare este poziionat 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
definete sistemul de referin de observare; n cea de-a doua etap se definete
transformarea de normalizare, iar n ultima etap se definete transformarea fereastrpoart.
5.7 Definirea sistemului de referin de observare
Sistemul de referin de observare se definete prin urmtorii parametri specificai n
sistemul de referin universal:

Punctul de observare VRP (View Reference Point).


Direcia normal la planul de vizualizare, VPN (View Plane Normal).
Un vector a crui proiecie 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 minii 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). Direcia de observare este orientat n sensul negativ al
vectorului VPN.
n planul de vizualizare se definete 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 direcia VPN) centrul sistemului de referin de observare
(VRP) pe planul de vizualizare. Direcia axei v este paralel cu proiecia (dup direcia
VPN) a vectorului VUV pe planul de vizualizare, astfel nct vectorul VUV specific
dac scena este redat n direcie vertical (n sus sau n jos) sau pe direcie orizontal
(spre dreapta sau spre stnga).
5.8 Definirea transformrii de normalizare

Parametrii transformrii de normalizare definesc corespondena ntre volumul de


vizualizare specificat n sistemul de referin observator i volumul canonic n sistemul
103

Grafic Inginereasca-note de curs

de referin normalizat. Se specific urmtorii parametri de definire a sistemului de


referin normalizat relativ la sistemul de referin de observare:
Tipul proieciei (paralel sau perspectiv).
Centrul de proiecie PRP (Projection Reference Point).
Distana VPD (View Plane Distance) a planului de vizualizare fa de centrul
sistemului de referin de observare, VRP.
Distana planului apropiat (near) i al planului deprtat 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 distana dat de
valoarea VPD fa de centrul sistemului de observare, VRP. n planul de vizualizare se
definete sistemul de coordonate plan uv, n care fereastra de vizualizare este un
dreptunghi ntre limitele umin, umax, vmin, vmax.Volumul de vizualizare se definete prin
dou plane paralele cu planul de vizualizare aflate la distanele near i far de centrul
sistemului de referin observator VRP i planele care trec prin centrul de proiecie PRP
i laturile ferestrei de vizualizare.

Direcia de
observare

far

VPD
near
V
VRP U

(umax, vmax)

VPN

Planul de
vizualizare

(umin, vmin)

Planul
deprtat

Fereastra de
vizualizare
PRP

Planul apropiat

Fig. 5.9 Specificarea sistemului de vizualizare PHIGS n proieca perspectiv.

Exist dou posibiliti de poziionare a centrului de proiecie PRP fa


de fereastra de vizualizare:

104

Grafic Inginereasca-note de curs

VPN

VPN

Planul de
vizualizare

Planul de
vizualizare

PRP
Fereastra de
vizualizare

Fereastra de
vizualizare
(a)

PRP

(b)

Fig. 5.10 (a) Proiecia normal (b) Proiecie oblic.

Dac linia care unete centrul de proiecie cu centrul ferestrei de vizualizare este
paralel cu vectorul VPN, normal la planul de vizualizare, atunci se obine o proiecie
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 proiecia este o proiecie oblic (Fig. 5.10(b)).
Implementarea sistemului de
vizualizare PHIGS se face prin transformri geometrice succesive, la fel ca n
exemplele prezentate pn acum. Trebuie precizat c n sistemul PHIGS standard
sistemul de referin de observare UVN este sistem drept, iar volumul de vizualizare i
direcia de observare sunt orientate ctre 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 proiecie PRP i cu axele paralele cu axele sistemului UVN (s-a
ales aceast denumire pentru simplificarea notaiilor, dar acest sistem nu este sistemul
de referin universal pentru care, n mod obinuit, s-a folosit notaia Oxyz). Aceast
transformare se efectueaz printr-o translaie invers celei definite de vectorul de poziie
al punctului PRP.
Ca urmare a acestei transformri se modific corespunztor valorile VPD, near,
far, umin, umax, vmin, vmax. Fie d, n, f, xmin, xmax, ymin, respectiv ymax, valorile rezultate
dup translaie. 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 semnificaii asemntoare 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
unete centrul de proiecie 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
105

Grafic Inginereasca-note de curs

proporionale cu z.
Planul
deprtat
y
Planul apropiat
Planul de
vizualizare

Volumul de
vizualizare
Axa volumului de
vizualizare

(0, ymax, d)
ymax
PRP

ymin

(0, ymin, d)
(a) Situaia dup
translaia
punctului PRP n origine

d
n
f

Forfecare

(b) Situaia dup


transformarea de
forfecare. Volumul de
vizualizare este simetric,
i axa acestuia suprapus
peste axa z.

(xmax+xmin)/2, (ymaxymin)/2, d

(xmax+xmin)/2, (ymaxymin)/2, d

Fig. 5.11 Transformare de forfecare n sistemul de vizualizare standard.

Este simplu de observat c matricea:


M N0

1
0
=
0

0 ( x max + x min ) 2d 0
1 ( y max + y min ) 2d 0
0
1
0

0
0
1
106

(4.14)

Grafic Inginereasca-note de curs

efectueaz o simetrizare a volumului de vizualizare. De exemplu, interseciile muchiilor


orizontale ale ferestrei de vizualizare cu planul x = 0 se transform astfel:

[
= [ (x

M N0 [0 y max d 1] T = (x max + x min ) 2 ( y max y min ) 2 d 1


M N0 [0 y min

d 1] T

max

+ x min ) 2 ( y max y min ) 2 d 1

A doua transformare component este transformarea de scalare MN1, prin care


volumul de vizualizare este transformat ntr-un volum simetric, cu unghiul de la vrful
piramidei de 90:
M N1

0
2d ( x max x min )

0
2d ( y max y min )
=

0
0

0
0

0 0
0 0
1 0

0 1

(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):
M N1 M N0 [( x max + x min ) / 2 ( y max + y min ) / 2 d 1]T = [0 0 d 1] T

Ultima component a transformrii de normalizare transform volumul de


vizualizare n volum canonic (paralelipiped dreptunghic). Matricea acestei transformri,
MN2, este asemntoare matricei descrise n paragraful precedent, dar se ine seama de
faptul c planul de vizibilitate apropiat nu mai coincide cu planul de vizualizare:
M N2

1
0
=
0

1
0
0

0 f /(f n) nf/(f n)

0
1
0

(5.15)

Sistemul normalizat astfel definit este un sistem de referin stng. n acest


sistem se efectueaz operaiile de decupare a obiectelor, dup care secvena
transformrilor 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 afiare alocat pe display numit
poart de afiare (viewport). Fereastra de vizualizare este definit ntr-un sistem de
referin bidimensional n planul zN = 0 al sistemului de referin normalizat. Poarta de
afiare 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 numrul de pixeli corespunztori pe orizontal i pe vertical a zonei afiate.
(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 stng, la fel ca i sistemul de referin normalizat.

107

Grafic Inginereasca-note de curs

yS

yN

yPmax

ymax
yN
yCF

yS

CP

yCP

CF

ymin

yPmin

xmin xN xCF

xmax

xN

xPmin

xS

xCP

xPmax

xS

Fig. 5.12 Transformarea de la fereastra de vizualizare la poarta de afiare.

Pentru definirea transformrii n sistemul de referin ecran 3D, se calculeaz


mai nti coordonatele centrului CF al ferestrei i ale centrului CP al porii:
x CF = ( x max + x min ) 2 ; y CF = ( y max + y min ) 2

x CP = ( x P max + x P min ) 2 ; y CP = ( y P max + y P min ) 2

(5.16)
Corespondena dintre coordonatele unui punct P(xN, yN) din fereastr cu ale
punctului P(xS, yS) n poarta de afiare se formuleaz matematic astfel:
x S x CP x P max x P min y S y CP y P max y P min
;
=
=
x N x CF
x max x min y S y CF
y max y min

Se definesc factorii de scalare ai transformrii:


sx =

x P max x P min
x max x min

sy =

y P max y P min
y max y min

(5.17)

sz =1

Rezult:
x S = x CP + s x ( x N x CF ) = s x x N + x CP s x x CF
y S = y CP + s y ( y y CF ) = s y y N + y CP s y y CF

(5.18)

zS = z N

Se poate deduce matricea de transformare ecran 3D prin compunerea a trei


transformri succesive. Mai nti se execut o translaie, astfel ca centrul CF al ferestrei
s ajung n origine, deci cu matricea de translaie T(xCF , yCF ,0). Fereastra centrat n
origine se scaleaz cu factorii de scar sx, sy, definii de relaia 5.17, astfel nct fereastra
s ajung la dimensiunea porii, iar coordonata z se las nemodificat. Matricea de
scalare este deci S(sx, sy, sz). Ultima transformare necesar este o translaie, prin care
centrul porii este adus n punctul CP, deci cu matricea de translaie T(xCP, yCP, 0).
Rezult matricea de transformare din sistemul de referin normalizat n sistemul de
referin ecran 3D:

108

Grafic Inginereasca-note de curs

M NS

M NS

1
0
=
0

0
s x
0
=
0

0 0 x CP s x 0 0
1 0 y CP 0 s y 0
0 1
0 0 0 1

0 0
1 0 0 0
0 0 x CP s x x CF
s y 0 y CP s y y CF
;

0 1
0

0 0
1

0 1 0 0 x CF
0 0 1 0 y CF
0
0 0 0 1

1
1 0 0 0
X S
X N
Y

S = M YN
NS
ZS
ZN

w S
w N

(5.19)

Din aceste relaii 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 mprirea cu wS.
Planul zS = 0 din sistemul de referin ecran 3D este planul de proiecie.
Coordonatele xS i yS reprezint coordonatele proieciei ortografice n planul zS = 0
(care este planul de porii de afiare). Transformarea de proiecie perspectiv din
sistemul de referin de observare a devenit o transformare de proiecie ortografic n
sistemul de referin ecran 3D. Coordonata zS n sistemul de referin ecran 3D este
utilizat n algoritmii de eliminare a suprafeelor ascunse. Volumul de vizualizare n
sistemul ecran 3D este un paralelipiped dreptunghic cu baza un dreptunghi de
dimensiuni egale cu dimensiunile porii afiate i nlimea egal cu 1 (zS [0,1]) (Fig.
5.13).
yS
Poarta de
afiare

zS

xS

Fig. 5.13 Volumul de vizualizare n sistemul de referin ecran 3D

5.10 Decuparea obiectelor

ntr-un sistem n care este definit punctul de observare i un volum de


vizualizare, nu intereseaz dect obiectele din interiorul acestui volum, a cror proiecie
se genereaz n fereastra de vizualizare. De aceea, n vizualizarea scenelor
tridimensionale, se execut operaia de decupare la volumul de vizualizare, prin care se
rein numai obiectele sau prile din obiecte cuprinse n acest volum.
Operaia de decupare la volumul de vizualizare poate fi definit astfel: fiind dat
un obiect tridimensional i un volum de vizualizare, pot exista trei posibiliti:
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.
109

Grafic Inginereasca-note de curs

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 mprirea cu w.
Operaia de decupare n spaiul tridimensional reprezint o extindere a decuprii
n planul bidimensional, de aceea se va prezenta mai nti decuparea n plan.
5.11 Decuparea n plan

Fiind dat un poligon oarecare n plan i o regiune de decupare, problema


decuprii poligonului este de a reine numai acea parte din poligon care se afl n
interiorul regiunii de decupare. Se consider cazul cel mai frecvent ntlnit, 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, att n plan ct i n spaiu, se bazeaz pe
algoritmul de decupare Sutherland-Hodgman. Algoritmul Sutherland-Hodgman mparte
planul bidimensional n nou regiuni, dup poziia fa de regiunea dreptunghiular de
decupare dat prin ecuaiile a patru drepte: x = xmin; x = xmax;
y = ymin; y = ymax.
(Fig. 5.14).
Fiecrei regiuni i corespunde un cod de vizibilitate (cunoscut sub numele de cod
Sutherland-Cohen) reprezentat pe 4 bii, b0, b1, b2, b3, definii astfel:
b0 = semn(x xmin)
b1 = semn(xmaxx)
b2 = semn(y ymin)
b3 = semn(ymaxy)
n continuare codurile de vizibilitate se reprezint ca o secven de cifre binare.
y
1000

1001

1010
0010

0000

0001

y = ymax

y = ymin
0101

0110

0100
x = xmin

x = xmax

Fig. 5.14 Codurile de vizibilitate Sutherland-Cohen.

Un poligon oarecare din plan poate fi complet inclus n regiunea de decupare,


110

Grafic Inginereasca-note de curs

poate fi complet n afara regiunii de decupare sau o poate intersecta. Folosind codurile
de vizibilitate ale vrfurilor poligonului se pot identifica direct (fr s se execute
calcule de intersecii) dou situaii ale poligonului fa de regiunea de decupare:
Acceptare sigur. Dac toate vrfurile poligonului se afl n regiunea de
decupare, atunci polinomul este vizibil n ntregime. Fie c1, c2, ., cn, codurile de
vizibilitate ale celor n vrfuri ale poligonului i SC rezultatul reuniunii acestor coduri
(operaia OR inclusiv): SC = c1| c2 || cn. Dac SC = 0, atunci poligonul este sigur
vizibil (Fig. 5.15 (a)).
Rejecie sigur. Dac toate vrfurile 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 rejecie sigur se calculeaz intersecia
codurilor de vizibilitate (operaia 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 corespunztor unui bit diferit de 0 din codul PC (Fig. 5.15 (b)).
Dac nu este ndeplinit nici condiia de acceptare sigur, nici condiia de
rejecie sigur, atunci decuparea se calculeaz prin intersecia laturilor poligonului cu
dreptele care mrginesc regiunea de decupare (Fig. 5.15 (c)).
Dreapta (infinit) corespunztoare unei laturi a regiunii de decupare mparte
planul n dou semiplane: semiplanul (regiunea) vizibil, care se afl de aceeai 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 numr de pai egal cu numrul de laturi ale regiunii
de decupare. n fiecare pas se decupeaz poligonul (iniial sau provenit dintr-un pas
anterior) cu o latur a regiunii de decupare: se elimin acea poriune din poligon care se
afl n semiplanul invizibil corespunztor laturii i se reine numai poriunea vizibil.
1010
1010
0010
0010

0110
(a) Acceptare sigur
SC = 0000

(b) Rejecie sigur


PC = 0010
1000

0010
0001

(c) Decupare prin intersecie


SC = 1111, PC = 0000

0100
Fig. 5.15 Teste de vizibilitate pentru decuparea n plan.
111

Grafic Inginereasca-note de curs

Poligonul se reprezint printr-o list ordonat de vrfuri V1V2Vn, i fiecare


pereche de dou vrfuri 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 pornete de la un poligon dat printr-o list ordonat
de vrfuri i se creeaz lista vrfurilor poligonului rezultat prin decupare relativ la
dreapta suport a unei laturi a regiunii de decupare. Iniial, lista vrfurilor poligonului
rezultat este considerat vid. Un segment orientat ViVj se poate afla ntr-una din patru
situaii posibile fa de o latur de decupare (Fig. 5.16).
Dac ambele vrfuri se afl n semiplanul vizibil corespunztor laturii de
decupare, atunci se adaug n list vrful Vj (Fig. 5.16 (a)).
Dac ambele vrfuri se afl n semiplanul invizibil, atunci nu se adaug nici un
vrf n list (Fig. 5.16 (b)).
Dac primul vrf al segmentului (Vi) se afl n semiplanul vizibil, iar al doilea
(Vj) se afl n semiplanul invizibil (segmentul este orientat de la semiplanul vizibil ctre
semiplanul invizibil), atunci se calculeaz intersecia I dintre segment i dreapta de
decupare i se adaug intersecia I n list (Fig. 5.16(c)).
Dac primul vrf al segmentului (Vi) se afl n semiplanul invizibil, iar al doilea
(Vj) se afl n semiplanul vizibil (segmentul este orientat de la semiplanul invizibil ctre
semiplanul vizibil), atunci se calculeaz intersecia I dintre segment i dreapta de
decupare n lista vrfurilor se adaug intersecia I i apoi vrful Vj (Fig. 5.16 (d)).
Vi
Vi
Vj

(a) Vi vizibil,
Vj vizibil
Se adaug Vj

Vj

Semiplanul
vizibil

Semiplanul
invizibil

(b) Vi invizibil,
Vj invizibil
Nu se adaug
nici un vrf

Semiplanul
invizibil

Semiplanul
vizibil

Vi

Vj

Semiplanul
invizibil

Vj
Vi

I
(d) Vi invizibil,
Vj vizibil
Se adaug I, Vj

(c) Vi vizibil,
Vj invizibil
Se adaug I
Semiplanul
vizibil

Semiplanul
invizibil

Semiplanul
vizibil

Fig. 5.16 Intersecia dintre o latur a poligonului i


o dreapt de decupare.

n primul pas, poligonul iniial V1V2Vn 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 urmtoarea latur a regiunii de
decupare (Fig. 5.17 (b)). Dup parcurgerea unui numr de pai egal cu numrul de laturi
112

Grafic Inginereasca-note de curs

ale regiunii de decupare se obine poligonul complet decupat (Fig. 5.17(d)).


V1

V1
I4

I1

I1

I2

I2

V2

V3

Semiplan
invizibil

Semiplan
vizibil

Semiplan
vizibil

x = xmin

V4

I3

V3

Semiplan
invizibil
x = xmin

(b) Poligonul I1I2V3V4V1 decupat


n semiplanul x xmax

(a) Poligonul V1V2V3V4 decupat


n semiplanul x xmin

Fig. 5.17 (a), (b) Decuparea relativ la laturile verticale ale regiunii de decupare
n algoritmul Sutherland-Hodgman.

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 decuprii oricrui tip de poligon (convex, concav sau cu
guri) relativ la o regiune de decupare oarecare.
Decuparea (n plan sau n spaiu) poate fi executat n orice operaie care
necesit construirea de poligoare sau obiecte tridimensionale noi prin calcul, pornind de
la obiecte de baz, care sunt intersectate cu alte obiecte sau suprafee.
n generarea imaginilor bidimensionale, decuparea, ca operaie component a
secvenei de transformri 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 porii de afiare i
redate pe display. Dac nu se efectueaz decuparea poligoanelor la limitele ferestrei,
coordonatele vrfurilor n sistemul de referin al porii de afiare depesc limitele
porii, iar rezultatul conversiei de rastru este incorect.
Se poate efectua o decupare a poligoanelor i liniilor i n poarta de afiare, prin
testul individual al coordonatelor fiecrui pixel i rejectarea acelora care nu se
ncadreaz n limitele porii de afiare. Acesta este ns un procedeu deosebit de
costisitor ca timp de execuie i nu se pune problema utilizrii lui n grafica interactiv
i n realitatea virtual

113

Grafic Inginereasca-note de curs

V1

Semiplan
vizibil

I1

Semiplan
.
invizibil

I1

I1
I2

V1

y = ymax

V4

I2
y = ymin

Semiplan
invizibil

I4

Semiplan
vizibil

I3
I5

I6

I2

I8

I4

I7

I1
I3

I2
I5

I6

V3

(d) Poligonul I2I5 I6 I3I4V1 decupat


n semiplanul y ymin

(c) Poligonul I2V3 I3 I4V1 decupat


n semiplanul y ymin

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

5.12 Decuparea suprafeelor relativ la volumul de vizualizare

Algoritmii de decupare a obiectelor n spaiul tridimensional pot fi considerai ca


o extensie a algoritmilor de decupare din plan, prin nlocuirea regiunii de decupare
plane cu un volum de decupare i efectuarea calculelor de intersecie a unei suprafee n
spaiu cu planele volumului de decupare.
Decuparea la volumul de vizualizare este un caz particular al decuprii spaiale,
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 execuie a decuprii pentru sistemul de
vizualizare definit n sectiunea precedent (Fig. 5.5) i se va evidenia de ce decuparea
se execut cel mai eficient n sistemul de referin normalizat, afirmaie care nu a fost
nc motivat.
Volumul de decupare se definete prin ase plane n sistemul de referin de
observare, ale cror ecuaii sunt date de relaiile 5.9.
Fiecare plan mparte spaiul tridimensional n dou semispaii, semispaiul
vizibil, aflat de aceeai parte a planului ca i volumul de decupare, i semispaiul
invizibil, n partea opus a volumului. Decuparea unei suprafee n raport cu acest plan
se efectueaz asemntor cu decuparea unui poligon fa de o latur de decupare:
fiecare latur orientat introduce zero, unul sau dou vrfuri n lista se vrfuri a
suprafeei rezultate, n funcie de orientare i de intersecia ei cu planul. Un vrf este
vizibil n raport cu un plan dac se afl n semispaiul vizibil determinat de planul dat.
De exemplu, un vrf este vizibil n raport cu planul y V = hz V d , dac yV hzV/d (Fig.
5.16 (a)).
114

Grafic Inginereasca-note de curs

n mod asemntor, decuparea relativ la celelate plane ale volumului de


decupare necesit testele:
yV

h
g
g
z V ; x V z V ; x V z V ; z V d; z V f
d
d
d

(5.20)

Aceste teste implic operaii asupra coordonatelor vrfurilor, operaii care n


form matriceal nseamn nmulirea cu matricea MN1, component a matricei de
normalizare. Aa cum se poate observa n Fig. 5.18(b), matricea MN1 transform
sistemul de referin de observare ntr-un sistem de referin Oxyz, n care volumul
de vizualizare (deci volumul de decupare) este un trunchi de piramid regulat cu
unghiul de la vrful piramidei de 90. Relaiile 5.20 de testare a vizibilitii unui punct
n sistemul de referin de observare sunt echivalente cu urmtoarele relaii n sistemul
Oxyz:
g d 0

0 hd
MN1 =
0
0

0
0

yV

0 0

0 0
1 0

0 1

y = z
y

yV = hzV/d

zV
yV = hzV/d
zV = d

zV = f

(a)

(b)
z = d

z = f

yN
1
0
M N2 =
0

0 f (f - d) - fd (f - d)

0
1
0

0
1

0
0

0
0

(a) Volumul de decupare


n sist. ref. de observare
(b) Volumul de decupare
n sist. Oxyz
(c) Volumul de decupare
n sist. ref. normalizat

yN = 1

zN
yN = 1
(c)
zN = 0

zN = 1

Fig. 5.18 Volumul de decupare n sistemul de vizualizare.


(proiecie n planul x = 0)

x z; x z; y z; y z; z f; z d
115

(5.21)

Grafic Inginereasca-note de curs

Dac s-ar executa decuparea n sistemul de referin intermediar Oxyz, atunci


toate punctele din sistemul de referin de observare se transform mai nti cu matricea
MN1, pentru trecerea n sistemul Oxyz, apoi se execut decuparea, iar dup decupare,
vrfurile vizibile se transform cu matricea MN2, pentru trecere n sistemul de referin
normalizat i proiecie n fereastra de vizualizare (Fig. 5.16(c)). Aplicarea separat a
dou transformri, mai nti 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 suprafeele 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, fr s mai fie necesar mprirea cu wN:
XN wN ; XN wN ;
YN wN ; YN wN ;
(5.23)
ZN wN ; ZN 0;
Codul de vizibilitate C al unui vrf n coordonate normalizate omogene se
exprim pe 6 bii i fiecare bit se poziioneaz n funcie de rezultatul unuia din testele
din relaia 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)
Spaiul omogen normalizat se mparte n 27 de regiuni dup poziia lor fa de
planele care definesc volumul canonic de vizualizare. n interiorul volumului canonic,
toate punctele au codul de vizibilitate cu toi biii egali cu 0 (C = 000000). n toate
celelalte regiuni, codul de vizibilitate este diferit de 0, avnd unul sau mai muli bii
egali cu 1.
Algoritmul Sutherland-Hodgman de decupare n spaiu se desfoar n mod
asemntor cu algoritmul de decupare n plan. Pentru o suprafa dat prin vrfurile ei
n spaiu, decuparea relativ la un volumul dat prin ecuaiile planelor sale se efectueaz
n modul urmtor:
Se calculeaz codurile de vizibilitate ale vrfurilor suprafeei.
Se efectueaz testele de acceptare i rejecie sigur. Pentru suprafeele care nu
ndeplinesc nici unul din aceste teste se continu cu decuparea prin intersecia cu
volumul de decupare.
Decuparea prin intersecie a unei suprafee se efectueaz ntr-un numr de pai
egal cu numrul de plane ale volumului de decupare. n fiecare pas se obine o nou
suprafa, din care a fost eliminat poriunea invizibil n raport cu planul de decupare
respectiv.
Dup efectuarea decuprii, se calculeaz coordonatele xN, yN, zN ale vrfurilor
suprafeelor vizibile rezultate (prin mprirea cu wN), iar toate celelalte vrfuri (ale
116

Grafic Inginereasca-note de curs

suprafeelor invizibile) sunt ignorate. Acest lucru nseamn c operaia de mprire


omogen se execut pentru un numr strict necesar de vrfuri, ceea ce reprezint un
ctig n viteza de execuie.
Se pune problema dac nu ar fi mai simplu s fie efectuat decuparea n plan,
deci dup calculul proieciilor suprafeelor, dat fiind c algoritmul de decupare n plan
este mai simplu. Acest lucru ar nsemna ca toate suprafeele s fie proiectate pe planul
de vizualizare, dup care s se efectueze decuparea relativ la fereastra de vizualizare.
Aceast soluie este ns inacceptabil, datorit faptului c n fereastra se proiece se
proiecteaz att punctele (vrfuri ale suprafeelor) aflate n volumul de vizualizare, ct
i cele aflate ntr-un volum simetric cu acesta fa de planul zV = 0, care se afl n
spatele observatorului. Tratarea tuturor acestor suprafee proiectate n fereastra de
vizualizare dar invizibile, consum un timp de execuie n mod inutil. De aceea,
decuparea obiectelor la volumul de vizualizare nu se poate executa corect i eficient
dect n spaiul tridimensional, i anume n coordonate normalizate omogene.
5.13 Eliminarea obiectelor aflate n exteriorul volumului de vizualizare

Se poate detalia modul de execuie a decuprii relativ la volumul de vizualizare.


Algoritmul de baz se refer la decuparea unei suprafee n spaiu, dat ca o succesiune
de vrfuri i, implicit, o succesiune de segmente de dreapt orientate (laturile
suprafeei), relativ la un volum de decupare, care este volumul canonic n coordonate
omogene normalizate.
Decuparea punctelor n spaiu este un simplu test de vizibilitate (ecuaiile 5.23),
iar decuparea unei linii este un caz particular (cu n = 2) al algoritmului de decupare a
unei suprafee.
Decuparea unui obiect tridimensional, modelat ca o colecie de fee (suprafee
plane) se reduce la decuparea fiecrei fee n parte, iar obiectul rezultat este compus din
toate feele sale vizibile i prile rezultate prin decupare.
O cretere a eficienei n operaia de decupare se poate obine folosind teste de
rejecie 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 interseciei (PC) codurilor de
vizibilitate ale unui obiect tridimensional depinde de modul de reprezentare al acestuia.
Pentru obiectele tridimensionale modelate prin fee date ca list de indeci la vrfuri se
calculeaz direct valorile SC i PC ale celor N vrfuri ale obiectului. Pentru obiecte
reprezentate prin fee separate, se pot colecta codurile de vizibilitate ale feelor
componente i calcula reunuinea SC i intersecia PC.
Ce anume se execut n fiecare din situaii 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 operaiile referitoare la acest obiect i se
trece la obiectul urmtor.
Selecia obiectelor, adic identificarea obiectelor potenial vizibile pentru
redarea imaginii acestora i eliminarea obiectelor sigur invizibile (culling), este o
resurs puternic de cretere a eficienei de redare a scenelor virtuale. n scenele virtuale
de dimensiuni mari, care conin un numr mare de obiecte, n fiecare cadru de imagine
sunt vizibile i deci trebuie s fie prelucrate un numr mult mai mic obiecte dect
numrul total de obiecte ale scenei. De aceea, identificarea ct mai devreme posibil a
117

Grafic Inginereasca-note de curs

obiectelor sigur invizibile i eliminarea lor conduce la reducerea substanial a timpului


de redare a scenei. n redarea scenelor complexe, acest procedeu se implementeaz mai
eficient dect 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 ct mai simplu, care include toate vrfurile
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 intersecia codurilor de
vizibilitate ale vrfurilor 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 execuiei eficiente a testului: decizia de
eliminare a unui obiect se poate lua prin considerarea unui numr de opt vrfuri, n locul
unui numr foarte mare de vrfuri ct are un obiect n mod obinuit.
Volumul de delimitare al unui obiect se definete 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 vrfuri opuse (xmin, ymin, zmin) i (xmax, ymax, zmax). Vrfurile lui sunt transformate
din sistemul de referin local n alte sisteme de referin (universal, de observare, etc.),
la fel ca i vrfurile 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 poziii diferite fa de volumul de
vizualizare. Volumul de delimitare al primului obiect este complet exterior fa de
volumul de vizualizare i obiectul corespunztor (ceainic teapot) este ignorat pentru
punctul de observare dat. Cel de-al doilea obiect (icosaedru) este complet vizibil,
volumul su 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 suprafeelor 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 corespunztor.

118

Grafic Inginereasca-note de curs

yV

OV

zV

xV

Fig. 5.19 Eliminarea obiectelor (culling) pe baza volumului de delimitare


(bounding box).

5.15 Detecia coliziunii

Detecia 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 cnd un obiect se atinge de un altul exist un rspuns de coliziune:
deformarea obiectelor, schimbarea traiectoriei de deplasare, explozia, etc. La
interaciunea dintre utilizator i obiectele virtuale se pot produce fore, vibraii, i alte
reacii tactile care sunt prelucrate n sistem.
Detecia coliziunii se poate calcula aproximativ, folosind volumele de
delimitare, sau exact, prin considerarea tuturor punctelor obiectelor. Dat fiind c
volumul de delimitare depeste n multe puncte suprafaa de frontier a obiectului,
calculul aproximativ al coliziunii introduce coliziuni false ntre obiecte: nu obiectele sau 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
interptrund, atunci se calculeaz coliziunea exact prin considerarea tuturor punctelor
obiectelor.

119

Grafic Inginereasca-note de curs

Capitolul 6
Modelare grafica
6.1. Introducere
Aplicabilitatea modelrii 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, fr a fi necesar realizarea fizic a acestora.
Aplicabilitatea modelrii n inginerie i domeniile conexe ale acesteia, se
bazeaz pe prelucrarea informaiilor obtinute prin metode specifice.
Aria de utilizare se ntinde de la scopuri didactice pana la prelucrari complexe de
imagini ce permit extragerea de informaii suplimentare de mare valoare.
Aceste obiective implic mai multe etape :
realizarea investigaiilor imagistice specifice;
procesarea imaginilor pentru extragerea informaiilor utile;
interpretarea i prelucrarea rezultatelor procesrii n conformitate cu
obiectivele propuse;
generarea unui model al corpului de proiectat care s raspunda cerinelor, fiind
reprezentat grafic pe monitor n mod high details;
analiza prin Metoda Elementelor Finite a comportrii pieselor, n vederea
determinrii strii de tensiuni pentru diferite tipuri de solicitri n structura
mecanica asupra creia s-au aplicat.

6.2. Conceptul de model i modelare


6.2.1 Conceptul de model

n domeniul tiinifico-tehnic, modelul se consider a fi un sistem abstract sau


material cu ajutorul cruia pot fi studiate indirect proprietile unui alt sistem, mai
complex (sistemul surs), cu care modelul prezint o analogie limitat i orientat.
Modelul este o reprezentare a aspectelor eseniale ale unui sistem (real sau
virtual).
Necesitatea construciei modelului este determinat de cele mai multe ori de
necesitatea studiului, construciei sau conducerii unui sistem (real sau virtual), n
condiiile imposibilitii efecturii acestor activiti asupra sistemului dat, din motive
economice, ecologice, de complexitate, de accesibilitate, de periculozitate etc.
Sistemul, real sau virtual, de la care se pornete (obiectul investigaiei) este sursa
informaiilor necesare modelrii i este numit sistem surs.
Definirea modelului trebuie s in seama de urmtoarele:
reprezentarea s fie simplificat, oferind deci i posibiliti de studiu mai
simple pentru beneficiarul modelului; gradul de simplificare trebuie privit prin prisma
120

Grafic Inginereasca-note de curs

posibilitii de construire a modelului, precum i prin cea a posibilitii de utilizare a


acestuia n scopul propus;
relevarea trsturilor caracteristice, care difereniaz sistemul studiat de alte
sisteme;
reinerea doar a acelor trsturi care sunt adecvate scopului.
Construirea modelelor i simularea se constituie n metode moderne,
cvasigeneralizate de cunoatere a unor sisteme surs, cu tehnici, procedee i mijloace
specifice. Modelele sunt utilizate la ora actual n toate disciplinele tiinifico-tehnice.
Generalizarea utilizrii modelelor se datoreaz, n principal, urmtoarelelor
avantaje:
au o accesibilitate, pentru studiu, mai ridicat dect a sistemelor surs;
necesit costuri mai mici pentru realizare i testare;
necesit mai puin timp pentru realizare i testare;
schimbrile n structura modelului sunt uor de implementat;
schimbrile de comportament sunt mai simplu de izolat, neles i
comunicat;
permit, fr probleme, experimentri, indiferent de periculozitatea
mediului n care fiineaz sistemul surs;
pot oferi informaii i asupra unor sisteme care nu sunt realizate, sau nu pot fi
executate cu tehnologiile existente.
Calitatea unui model este exprimat, n primul rnd, de fidelitatea cu care
modelul reproduce comportamentul cunoscut al sistemului modelat. Comportamentul
modelului este relevat prin funcionare, deci n cadrul operaiilor conexe modelrii, care
in de simulare. Fidelitatea depinde de urmtoarele:
corectitudinea cu care s-a efectuat aprecierea a ceea ce este esenial,
relevant pentru scopul urmrit;
procedeele de constituire a modelului;
calitatea i cantitatea cunotinelor disponibile care au putut fi utilizate.
Cele de mai sus se pot constitui n criterii de fidelitate, cu ajutorul crora pot fi
difereniate calitativ modelele unui sistem surs. Aceste criterii influeneaz parcurgerea
etapelor construirii modelului.
Calitatea unui model mai este determinat i de alte aspecte: simplitatea,
inteligibilitatea, costul etc.
Funcionarea (comportamentul) sistemului surs reprezint obiectul interesului
cercettorului; pentru cunoaterea acesteia se iniiaz procesul de modelare. n general,
prin relevarea acesteia, este implicit relevat i structura configuraiei geometricospaiale a sistemului surs mecanic sau mecatronic (la roboii industriali spre exemplu).
De foarte multe ori, configuraiile geometrico-spaiale iau forma unor structuri de
rezisten pentru susinerea componentelor funcionale, dar pot exista icazuri n care
acestea nu sunt relevante funcional, fiind totui elemente ale unui sistem surs.
Definitivarea complet a acestor configuraii geometrico-spaiale se realizeaz prin
procedeele i tehnicile de modelare geometric. Modelul geometric rezultat face parte
dintr-un subset de modele (n sens general), ataat celui care relev esena funcionalcomportamental.
Criteriile de clasificare cunoscute se refer la aceast din urm esen i
difereniaz modelele, cu observaia c, n afara celor prezentate n continuare, pot
exista i altele, funcie de specificitatea domeniului din care face parte sistemul surs.
121

Grafic Inginereasca-note de curs

n funcie de materialitatea lor, modelele pot fi abstracte (teoretice,


matematice) sau materiale (fizice, replici).
A. Modelele abstracte pot fi difereniate funcie de modul de abordare de ctre
cel care modeleaz i de profunzimea cunotinelor sale despre sistemul surs:
a) n funcie de forma de prezentare, care poate fi:
clasic (exprimat prin relaii matematice):
matematic-analitice, la care sunt luate n considerare cunotine despre
proprietile sistemului surs att din punct de vedere calitativ, ct i cantitativ; pentru a
construi modelele se pornete, de obicei, de la legi fizice care se pot concretiza n relaii
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 consecine comportamentale ale modelului;
exprimat prin mulimi de date corelate de intrare i de ieire;
descriptiv, legat ntr-o anumit msur 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 funcie de aspectul care intereseaz al sistemului surs:
modele la care se urmrete compoziia, 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 cunoaterii
intrrilor i ieirilor corespunztoare ale sistemului (sistem considerat cutie neagr); este
denumit i model informaional, pentru c la construirea modelului se ine seama doar
de informaii, sub forma unor valori concrete ale unor variabile de intrare/ieire (pe baza
acestora se pot desfura operaii de conducere ale sistemului surs, modelul servind
acestui scop);
modelele hibride, la care particip ambele aspecte.
Modelul conceptual este, deci, o construcie de legturi logico-matematice
ntre variabilele definitorii ale sistemului surs, pe cnd cel informaional se
bazeaz pe informaii care sunt oferite n exterior n timpul funcionrii. n practic se
prefer modelele hibride, n care se realizeaz un echilibru adecvat ntre aspectul
informaional i aspectul conceptual.
B. Modelele materiale (fizice, concrete, substaniale, replici) permit rezolvarea
pe cale experimental a unor probleme care nu pot fi rezolvate pe cale analitic, logicomatematic, fie datorit necunoaterii metodelor de calcul adecvate, fie datorit gradului
mare de complexitate a acestora, conducnd la activiti mult prea laborioase i
costisitoare.
Funcie de natura acestor modele, se disting:
a) modele similare, de aceeai natur cu sistemul surs, care difer de acesta din
urm doar prin numrul sau valoarea dimensiunilor sau caracteristicilor; se bazeaz pe
teoria similitudinii, fiind utilizate frecvent n inginerie (construcii de
cldiri/drumuri/poduri, construcii de maini, hidrotehnic/pneumotehnic); n domenii
specifice, precum hidraulica sau aerodinamica; nu se poate concepe nici un studiu serios
fr 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.
122

Grafic Inginereasca-note de curs

b) modele analoage, bazate pe fenomene diferite de cele din sistemul surs, dar
la care relaiile matematice care descriu comportamentul modelului au aceeai form cu
cele care guverneaz sistemul surs.
6.2.2 Conceptul de modelare

n sens restrns, modelarea reprezint activitatea de elaborare propriu-zis a


modelului unui sistem surs; activitile desfurate 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 restrns sunt,
n general, urmtoarele:
a) construirea modelului pe baz:
analiza preliminare a sistemului surs n vederea evidenierii
parametrilor relevani i a legturilor funcionale 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 condiii echivalente;
d) corectarea modelului, n sensul apropierii comportamentului de cel al
sistemului surs.
n sens mai larg, prin modelare se nelege metoda de studiu bazat pe utilizarea
modelelor, metod la care apeleaz, la ora actual, majoritatea cercetrilor din toate
domeniile tehnice (i nu numai). n ultim instan, n aceast semnificaie metoda
cuprinde coninutul teoriei generale a modelrii.

6.3. Metode i mijloace pentru realizarea formelor complexe


n modelarea geometric
6.3.1 Introducere

Funcie de structurile de date i de informaiile de model stocate, sistemele 3D


sunt clasificate n:
Orientate pe muchii (wireframe);
Orientate pe suprafee (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 att n complexitate ct i n
acurateea geometriei. Acestea sunt probabil motivele pentru care modelarea de solide
nu este nc tehnica exclusiv n sistemele CAD industriale.
Modelele solide pot fi obinute prin urmtoarele tehnici mai frecvente:
Geometria constructiva a solidelor (CSG),
123

Grafic Inginereasca-note de curs

Prin frontiere (B-rep),


Prin enumerare spaial (octree),
Prin baleiere (sweeping etc.),
Analitic (ASM Analytic Solid Model),
Parametric/procedural.
La conceperea lor, formele modelelor solide pot fi gndite 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 generrii tehnologice (de rotaie,
extrudate etc.).
Formele geometrice elementare necesare construirii unor obiecte complexe, pot
fi obinute utiliznd accesul la forme primitive standard puse la dispoziie 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
necesiti, entiti geometrice elementare. Se pot, astfel, crea suprafee pornind de la
curbe, sau volume pornind de la suprafee. Cea mai simpl metod este atribuirea de
grosimi formelor plane (procedeu echivalent extrudrii).
O problem n metoda de generare utiliznd primitive este numrul mare de
operaii booleene standard. Acest lucru este deseori considerat un ezavantaj, din cauza
complexitii i a costului ridicat al operaiilor booleene.
Pe de alt parte, operaia manual de grupare a unor fee orientate coerent pentru
a obine un solid este laborioas i mpotriva spiritului general al CAD, astfel nct s-au
elaborat operatori speciali pentru a asista crearea modelelor solide.
Un astfel de operator special, aplicat unor suprafee convenabil create, este cel
de ngroare (thicken). Acest operator ia o suprafa de baz, definete o suprafa offset
a sa i apoi nchide spaiul dintre ele cu o band lateral. Acest operator este potrivit
pentru pentru obiectele care au suprafeele superioar i inferioar (suprafeele legate cu
o band) similare.
Suprafaa care nchide corpul (banda), poate fi riglat sau poate fi complex, de
tip loft-at, ce ine seama i de direciile normalelor celor dou suprafee iniiale (baz i
offset), pentru asigurarea seamainuitii (evitarea muchiilor acuite).
6.3.2 Tehnici de descriere a modelelor geometrice 3D

Modelele de solide trebuie s satisfac un grup de cerine:


Validitatea: s existe un obiect real corespunztor oricrui model posibil
creat;
Universalitatea: s se poat crea un model pentru orice obiect 3D;
Unicitatea interpretrii: unei reprezentri concrete i corespunde doar un
singur obiect;
Unicitatea expresiei (neambiguitatea): unui obiect 3D i corespunde doar un
singur model;
Caracterul complet: toate operaiile suportate s fie aplicabile tuturor
reprezentrilor (s genereze n toate cazurile entiti valide ca operanzi pentru
toate operaiile);
Conciziunea: informaia coninut n model s fie minim.
124

Grafic Inginereasca-note de curs

6.3.2.1 Modelarea prin frontiere (B-rep)


Modelele 3D construite prin enumerarea feelor ce separ obiectele de restul
mediului (obiecte definite prin nveliul lor) se numesc modele prin frontiere B-rep
(Boundary-representation). Modelul memoreaz i poziia interiorului obiectului fa de
fee. Tehnica este avantajoas pentru vizualizri dar nu este bine adaptat pentru unele
operaii analitice, precum calculul centrului de greutate sau al momentelor de inerie.
n figura 1.b este reprezentat schematic modelul B-rep al obiectului din figura
1.a.

Modelele prin frontiere au dificulti n respectarea cerinelor pentru modele


solide valide. Pot aprea fee flotante, cu muchii ce aparin doar unei fee. ntr-un model
corect, o muchie se afl la ntlnirea a dou i numai a dou fee. O alt problem este
compatibilitatea: suprafaa generat trebuie s fie fizic posibil. Sunt excluse autointersectrile i ambiguitile de orientare. Normalele celor dou fee ce se ntlnesc
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 poteniale, utilizatorul va avea acces doar la nivelul
unei interfee tip CSG.
6.3.2.2 Modelarea prin geometria constructiv a solidelor (CSG)

Modelele complexe se pot crea grupnd componente mai simple, denumite subobiecte sau primitive. Exemple de sub-obiecte frecvente sunt: cuburi, conuri, cilindri,
sfere. n tehnica de geometrie constructiv a obiectelor CSG, modelul este
125

Grafic Inginereasca-note de curs

reprezentat printr-un arbore (sau graf pentru modelele complexe). La capetele ramurilor
arborelui se afl obiecte primitive exprimabile parametric, iar n noduri operatori pe
mulimi. Fiecrui nod i corespunde un sub-obiect (chiar dac nu este calculat).
Tehnica CSG este avantajoas n cazul modificrii geometriei, dar nu este
adaptat vizualizrii. De aceea, se pstreaz 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 modelrii CSG sunt validitatea inerent, unicitatea
interpretrii, caracterul complet, consecvena i conciziunea.
Principalul dezavantaj este complexitatea calculelor pentru evaluarea arborelui
CSG n vederea vizualizrii. Acest lucru face ca editarea interactiv s fie rar ntlnit n
sistemele CSG. Un alt dezavantaj este imposibilitatea reprezentrii tuturor obiectelor
fizice, de exemplu a celor cu suprafee curbe cu form liber.
6.3.2.3 Modelarea prin enumerare spaial
Spaiul modelului este divizat n elemente de volum, asemntor cazului
imaginilor 2D, descrise prin muimea de pixeli constitueni (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 uniti 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 rnd, 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
revoluie).
Baleierea const n deplasarea unui punct, a unui segment sau a unei suprafee,
pe o anumit traiectorie. Pentru forme complexe, traiectoria este o curb complex.
Metoda este utilizat mai ales pentru obinerea 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 asemntoare formulrilor izoparametrice tridimensionale
din analiza cu elemente finite (FEA). Este adecvat descrierii modelelor cu forme
complexe i calculelor proprietilor volumetrice. Exemple tipice sunt hiper-peticele
parametrice tricubice (generalizare a peticelor bidimensionale - bicubice). Un hiperpetic
este o aplicaie a unui domeniu cubic unitar parametric descris de u, v, i w, ntr-un solid
descris de x, y i z n spaiul modelului (cartezian). Orice obiect va putea fi reprezentat
ca un ansamblu de hiperpetice cvasi-disjuncte, prin divizarea sa convenabil.
126

Grafic Inginereasca-note de curs

6.3.2.6 Modelarea prin instanierea primitivelor


Metoda prin instanierea 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 (instana). Pentru
prelucrri mecanice sau operaii analitice, metoda este avantajoas pentru descrierea
poriunilor din obiecte, dar interfaa cu utilizatorul este complex.
6.3.3 Metoda booleean de creare a modelelor solide utiliznd forme
geometrice elementare

Metoda dominant pentru crearea de modele solide se bazeaz pe operaii


booleene. Utilizarea operaiilor 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 operaiile
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 foreaz utilizatorul s gndeasc n termenii


teoriei mulimilor din matematic n sisteme de coordonate tridimensionale cu obiecte
primitive. Creearea unei fante ntr-un bloc, de exemplu, cere poziionarea relativ a
dou prisme n mod convenabil n spaiul 3D i aplicarea funciei diferen pentru
extragerea unei pri din blocul de baz. Asemntor se pot obine obiecte complexe
prin operaii de tip reuniune sau intersecie.
127

Grafic Inginereasca-note de curs

Operaiile booleene se folosesc i pentru operaii utilitare precum verificarea


coliziunilor (prin testarea intersectrilor) i generarea seciunilor (prin intersecii i
diferene).
6.3.4 Metoda de creare a modelelor solide orientat pe prelucrare

n opoziie cu crearea prin operaii booleene cu primitive geometrice, metoda


orientat pe prelucrare este bazat pe comenzi de nivel nalt orientate ctre procesul de
fabricaie, precum comenzile echivalente procedeelor tehnologice de: extrudare,
strunjire, frezare, gurire sau perforare. Aceast metod este mai aproape de modul de
gndire al proiectantului. Principiul este utilizat de sistemele de modelare prin
caracteristici (feature-based modeling).
n figura 3.b este prezentat acelai obiect ca n figura 3.a, dar exemplificnd
obinerea 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 vzut ca geometria sculei sau,
mai exact, ca seciune prin scul. Translatarea sau rotirea unui profil este interpretat ca
o operaie de modelare ce are efecte similare asupra formei obiectului cu o operaie de
prelucrare corespunztoare ce mic scula fa de semifabricat (sau invers). De notat c
extrudarea, strunjirea, frezarea etc, ca i comenzi de proiectare, nu determin tehnologia
de fabricaie utilizat n realitate.
Pentru a face mai natural utilizarea acestei metode, s-a introdus conceptul de
spaiu de lucru. Spaiul de lucru este un plan n spaiul 3D utilizat pentru construirea
profilurilor. Selectarea unui spaiu de lucru produce automat o transformare a vederii
pentru a putea utiliza comenzi normale 2D pentru construirea de profiluri n spaiul 3D.
Transformarea are loc astfel nct planul de lucru s devin perpendicular pe direcia de
privire. Pentru obinerea unor piese complexe, cum ar fi piulie, roi dinate, arcuri
elicoidale etc, se utilizeaz transformri suprapuse (simultane), combianate cu metodele
obinuite de modelare.
128

Grafic Inginereasca-note de curs

Etapele principale sunt:


1. Definirea seciunii P a sculei prin metode simple 2D, utiliznd conceptul de
plan de lucru;
2. Alegerea funciei de comand, prelucrea asociat care definete micarea
sculei; micri simple pot fi suprapuse pentru a defini transformri complexe;
Se aplic, apoi, metodele de modelare cunoscute (operaii booleene, sweeping,
lofting etc.), pentru a realiza intern operaiile tip prelucrare.
6.3.5 Reprezentarea obiectelor utiliznd curbe

Una din principalele probleme n compartimentul de proiectare a produselor este


proiectarea formei acestora. Este necesar o tehnic simpl de descriere a formei
oricror obiecte.
n cazul formelor simple, este suficient utilizarea unor entiti 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 entiti sintetice
(curbe spline i Bezier). Este neraioanl descrierea obiectelor complexe perin mulimi
de puncte (enumerare). Acest mod de reprezentare ar necesita o capacitate enorm de
memorare. Dezavantajul specific este urmtorul: 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 nite 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 entitilor sintetice a condus la aplicarea metodelor de interpolare: se caut
o funcie continu, care n anumite puncte de sprijin, ia valori date. Pe lng condiiile
de a trece prin puncte (sau ct mai aproape de ele), se mai introduce i condiia ca dou
curbe ce se ntlnesc ntr-un punct s realizeze un anumit grad de netezime, pentru a
evita puncte singulare. Matematic, se pune condiia ca primele n derivate a celor dou
129

Grafic Inginereasca-note de curs

funcii ce se ntlnesc s fie continue n acel punct. De exemplu, pentru cazul a trei
puncte se poate utiliza un polinom de gradul doi, deci o funcie de tipul: f(x)= a. x2 + b.
x+c.
Punerea condiiilor ca funcia s treac prin cele trei puncte, conduce la un
sistem de trei ecuaii cu trei necunoscute: a, b i c. Acest sistem este determinat: exist
un singur polinom cu proprietile cerute. De regul, acest polinom are un mare
dezavantaj: gradul crete cu creterea numrului de puncte. Prin aceasta se ajunge la o
comportare nedorit a funciei ntre punctele de trecere: tendina spre oscilaii (figura 4,
curba Lagrange/Newton). Aceast tendin puternic de oscilaie a curbei de interpolare
ntre punctele date nu este de neglijat la metodele clasice precum Newton sau
Langrange.
n cazul utilizrii funciilor spline acest fenomen nu apare, din cauz c acestea
sunt polinoame definite pe subdomenii. ntre fiecare dou puncte vecine, numite noduri,
se definete cte o funcie grad mai mic.
S-a dovedit c funciile spline cubice sunt potrivite pentru majoritatea
aplicaiilor. Polinoamele utilizate pe intervale ntre dou puncte succesive sunt de grad
maxim trei, independent de numrul punctelor. Pentru a obine coeficienii
polinoamelor, trebuie rezolvate sisteme de ecuaii. Condiiile impuse (trecerea prin
punctele date i netezimea la traversri), genereaz ecuaiile sistemului. Pentru
asigurarea unicitii soluiilor mai sunt necesare nc dou condiii, care se pot obine
obinuit, n trei moduri, pe baza unor condiii la limit. De exemplu, se pot descrie
valorile primei derivate (tangenta), la capetele domeniului (n primul i n ultimul
punct). Mai frecvent se ntlnete curba spline natural, n cazul creia derivatele de
ordinul doi sunt nule la captele intervalului. Curbele spline pot fi astfel asemnate cu
segmente de dreapt. n a treia variant, curba spline periodic, se pune condiia ca
derivatele de ordinul nti i cele de ordinul doi s aib aceleai valori la cele dou
capete ale intervalului. Astfel de curbe spline vor putea fi alturate succesiv genernd 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 condiia de a trece prin punctele date, cu excepia primului i
ultimului punct. Celelalte puncte servesc la seamarolul formei curbei. Curbele Bezier
au, seamarar curbelor spline, avantajul c se scriu mai uor condiiile 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 obine puncte pe segmentele Bezier prin interpolri liniare repetate.
130

Grafic Inginereasca-note de curs

Forma unei curbe Bezier poate fi uor seamarolat. Ea ncearc s se apropie de


poligonul ce trece prin punctele de seamarol, denumit poligon de seamarol. Curba va fi
ntodeauna n interiorul nfurtoarei convexe a tuturor punctelor (figura 5).

Creterea numrului de puncte de control duce la creterea numrului i gradului


polinoamelor necesare. Acest lucru face ca mici modificri ale punctelor de control s
produc mari modificri ale ntregii curbe. De asemenea cresc resursele necesare
calculrii polinoamelor. Pentru eliminarea dezavantajelor menionate, se altur
(concateneaz) mai multe curbe Bezier de ordin sczut. Aceast alturare este foarte
simpl la curbele Bezier, putndu-se menine 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 obine dac punctele c, d i e
sunt coliniare. Acest lucru se ntmpl pentru c tangenta la curba Bezier n punctul de
capt se suprapune peste segmentul de capt.
Utilizarea unei succesiuni de curbe Bezier de ordin mic reduce volumul de
calcule, dar se menine influena modificrii 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 excepia punctelor de capt (t = 0 i t = 1), valorile
polinoamelor sunt nenule. Curba rezultant se obine 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 capt.
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.

131

Grafic Inginereasca-note de curs

132

Grafic Inginereasca-note de curs

Dac vectorii punctelor sunt exprimai n coordonate omogene se obin curbele


Bezier raionale, cu coordonatele punctelor exprimate ca rapoarte de polinoame n t. Se
aduce astfel un grad suplimentar de libertate n obinerea formei curbelor, prin alegerea
convenabil a coordonatei omogene a fiecrui vector. De exemplu, reprezentarea
conicelor (arce de cerc, de elips etc. ) nu se poate face exact utiliznd curbe Bezier
obinuite, dar este posibil prin curbe Bezier raionale.
6.3.5.3 Curbe B-spline
Cele dou tipuri de curbe analizate nu convin n totalitate pentru reprezentri
geometrice. Idealul ar suma avantajul curbelor spline cubice cu cele ale curbelor Bezier
i ar evita dezavantajele acestora, pe ct posibil.
O soluie practic o constituie curbele B-spline, a cror form amintete curbele
Bezier:

unde B0,k (t),,Bn,k (t) sunt funciile de baz B-spline, definite recursiv:

Ordinul curbei (k) este independent de numrul punctelor (n), ceea ce rezolv un
dezavantaj al curbelor Bezier.
O deosebire esenial ntre curbele Bezier i B-spline se evideniaz comparnd
figurile 7 i 8. Toate funciile sunt nenule doar pentru puine valori ale
variabilei t. Din acest cauz, modificarea unui punct va avea efect doar n poriunile de
curb din vecintatea sa.

133

Grafic Inginereasca-note de curs

Uneori este necesar renunarea la netezime n anumite puncte ale curbei,


dorindu-se prezena unor discontinuiti. Curbele Bezier permit acest lucru dac se
concateneaz mai multe curbe. Curbele B-spline permit o cale mai simpl de
introducere a unor vrfuri: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 influena forma
ntregii curbe,pentru k = 2 curba este poligonul ce leag punctele ce definesc curba.
Creterea 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
corespunztoare, deci curbele Bezier sunt un caz particular al curbelor B-spline.
n mod obinuit, nodurile sunt uniform distribuite, obinndu-se curbele Bspline
uniforme. Alegnd n alt mod distribuia nodurilor, se obin curbe B-spline
neuniforme, care aduc un grad de libertate suplimentar n obinerea formei curbelor.
Dac vectorii punctelor sunt exprimai n coordonate omogene,se obin curbele
B-spline raionale (cu coordonatele punctelor exprimate ca rapoarte de polinoame). Se
aduce un grad suplimentar de libertate n obinerea formei curbelor, prin alegerea
convenabil a coordonatei omogene a fiecrui vector.
Aplicnd simultan o distribuie neuniform a nodurilor i exprimarea vectorilor
n coordonate omogene, se obin cele mai complexe curbe Bspline: neuniforme
raionale (NURBS Non-Uniform Rational B-spline).
Din cauza multelor proprieti pozitive, n principal seamarolul local, curbele Bspline au intrat puternic n domeniul modelrii pentru CAD. Calculul lor nu este dificil,
ele pot fi uor extinse la mai multe dimensiuni (cum sunt suprafeele).
Un domeniu neateptat de utilizare l constituie reprezentarea textelor i scrisului
n programele de aplicaii pentru procesare texte, tehnoredactare, grafic.
Avantajele sunt evidente. Caracterele individuale necesit spaiu redus dac
trebuie memorate doar punctele de seamarol. Mrirea, micorarea, rotirea i alte
134

Grafic Inginereasca-note de curs

modificri asemntoare sunt uor de realizat, deoarece trebuie modificate doar punctele
modelului.

6.3.6 Obinerea de suprafee pornind de la curbe

Exist dou clase de suprafee utilizate n proiectarea asistat de calculator:


Suprafee plane
Petice
Suprafeele plane care, cu toate c au limitri, permit realizarea de modele
robuste rezonabil de complexe. Modelele faetate ce rezult utilizeaz poligoane plane
pentru a reprezenta inclusiv suprafee curbe, prin discretizare cu un grad de aproximare
acceptat. Prin procesul de modelare se realizeaz generarea informaiilor 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 (faete), de obicei
triunghiulare pentru o precizie suficient de bun.
Peticele (patches) realizeaz descrierea geometric a unor suprafee strmbe.
Peticele pot fi definite implicit prin funcii de forma f(x,y,z) = 0, sau parametric.
Reprezentarea parametric este mai util n CAD. Fiecare coordonat este tratat
ca o funcie 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 evideniaz dou clase de
suprafee:
obinute prin interpolare
obinute prin baleiere.
n prima clas se nscriu de exemplu, suprafeele generate prin aplicaie
bilinear, lofting simplu sau dublu (Coons), peticele Bezier i cele bicubice, iar n a
doua clas se ncadreaz de exemplu, suprafeele obinute prin extrudare, sweeping i
cele de revoluie.

135

Grafic Inginereasca-note de curs

Suprafeele complexe ale modelelor vor fi realizate, de obicei, din mai multe
petice alturate. n acest caz se pun mai multe probleme pentru ca suprafeele s fie fizic
realizabile:
Compatibilitatea (coerena): normalele la suprafa de-a lungul muchiilor
comune s fie orientate corespunztor pentru cele dou petice;
Autointersectarea : peticele s nu se autointersecteze i nici unele cu
altele;
Continuitatea: funcionalitatea i estetica cer continuitate de ordin superior (i
pentru derivate).
6.3.6.1 Aplicaie biliniar
Generarea unei suprafee pornind de la patru puncte se poate obine prin
aplicaie bilinear. Punctele Q ale peticului rezultat utiliznd punctele P00, P01, P10, i
P11 se pot calcula, parametric, din ecuaia matriceal:

suprafaa rezultant fiind riglat.

O fa plan se poate obine prin interpolare, dac toate vrfurile poligonului


definind faa, sunt coplanare.
Figura 10 prezint o suprafa obinut utiliznd patru din vrfurile unui cub.
6.3.6.2 Lofting
Prin lofting se realizeaz potrivirea unei poriuni de suprafa (patch ), pe dou
curbe parametrice limitatoare (frontierele), utiliznd interpolarea ntre dou funcii
parametrice opuse utilizate pentru sprijinirea pe cele dou frontiere.
Un caz particular este cel al suprafeelor riglate (figura 11), cnd cele dou
funcii 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 suprafeei rezultate prin lofting linear
pornind de la curbele C1 i C2 (orict de complexe) se pot calcula, n form
parametric.

136

Grafic Inginereasca-note de curs

O generalizare simpl conduce la o operaie care genereaz o suprafa care


interpoleaz o familie de curbe parametrice paralele. Operaia este aplicat, de exemplu,
pentru definirea suprafeei din curbele ce definesc seciunile succesive.
Este o operaie de proiectare la nivel nalt, o metod eficient de a specifica mai
muli coeficieni simultan printr-o operaie coerent unic i geometric semnificativ i
intuitiv.
Conceptual, operaia este aproape direct, dar aplicarea ei este relativ
complicat. nti trebuie stabilite corespondenele parametrice ntre cele dou curbe.

Se pot normaliza cele dou curbe astfel nct ambele s aib parametrii pe
domeniul unitate (0,1), dar suprafaa 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 corespunztor neuniform parametrizat. O situaie 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, suprafaa loftat nu este
cilindric, cel puin n sensul mecanic, ci conic.

137

Grafic Inginereasca-note de curs

6.3.6.3 Suprafee de tip Coons


Suprafeele Coons au aprut din necesitatea de interpolare a unei suprafee
netede rezemat pe patru curbe limit legate (figura 13). O suprafa Coons realizeaz
lofting pe dou direcii neparalele.

Punctele Q ale peticului rezultat utiliznd perechile de curbe limit C(0,t),


C(1,t), i C(s,0), C(s,1), ce se ntlnesc n punctele P00, P01, P10 i P11, se pot calcula
, parametric , din:

n multe situaii de proiectare, caracteristicile critice ale unei suprafee sunt


curbele ce o limiteaz, interiorul fiind relativ sensibil n specificaii. Aici se pot utiliza
suprafee Coons.
6.3.6.4 Petice bicubice
Din cauza faptului c expresiile analitice ale curbelor utilizate la construirea
modelelor sunt rareori cunoscute (deseori rezultnd din operaii asupra entitilor
geometrice) i c, de regul, se folosesc aproximri cubice (spline), se poate considera o
clas de petice cubice, ale cror puncte Q se pot calcula parametric din:

Coeficienii aij depind de coordonatele vrfurilor petecului, de tangentele i de


curburile n vrfuri.

138

Grafic Inginereasca-note de curs

6.3.6.5 Petice Bzier


Reprezint o extensie a curbelor B-spline, utiliznd, pentru interpolare, dou
seturi de funcii de baz Bernstein ():

De exemplu, o baz cuadratic va conduce la:

Se observ c matricea de continuitate conine doar puncte.


6.3.6.6 Suprafee capac
Problema punerii de capace apare natural, ca rezultat al unor operaii de tip
extrudare, de exemplu. Problema general const n definirea unei suprafee de
nchidere ntr-o regiune definit de o singur curb nchis. Un exemplu simplu este
nchiderea la capete a unei construcii cilindrice.
Modelele suprafeelor capac se pot obine prin generalizarea suprafeelor
Coons.
Exist cteva cazuri particulare interesante. Un astfel de caz apare cnd capacul
este plan. Soluia standard va fi un disc. Pentru forme mai complicate ale limitelor
capacului, chiar concave, soluiile se obin mai dificil. Se poate apela, dac este permis,
la faetarea regiunii capacului, ncercnd apoi construirea unui sistem spaial de
elemente triunghiulare (tesselare).
Problema generrii modelelor suprafeelor capac nu este nc rezolvat
satisfctor.
6.3.6.7 Suprafee de revoluie
Definirea suprafeelor de revoluie este larg utilizat n situaii 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 rotaie ataat, apoi
cere realizarea unei suprafee de revoluie. Deoarece cercul este reprezentabil ca o curb
B-spline raional, suprafaa de revoluie poate fi reprezentat de tip B-spline dac curba
profil este curb B-spline. Prin aceste reprezentri, posibilitile proiectantului CAD
sunt mari. El poate specifica un unghi de rotire a profilului mai mic dect 2 rad. Poate
apoi combina suprafaa sa cu alte suprafee pentru a obine un obiect mai complex.
Flexibilitatea are dezavantajele ei, deoarece, spre exemplu, proiectantul poate specifica
un profil ce intersecteaz axa de rotaie, rezultnd un corp tip dublu con, avnd un
singur punct n seciunea corespunztoare interseciei. Un astfel de obiect este, evident,
nerealizabil.
139

Grafic Inginereasca-note de curs

6.3.6.8 Suprafee extrudate


Operaia de extrudare, inspirat de procesul de prelucrare obinuit, este
nrdcinata ca metod de descriere a anumitor clase de suprafee. n sistemele de
modelare care permit doare forme primitive i combinaiile lor booleene, nepermind
suprafee cu form liber, operaia de extrudare se poate implementa n manier direct.
O operaie de extrudare este o baleiere rectilinie, caracterizat de o form profil. n
general, profilul este definit de operaii booleene ntre forme 2D. Formal, suprafaa
extrudat este produsul vectorial al formei seciunii transversale cu un segment
ortogonal (figura 3). Un exemplu comun de corpuri cu suprafee n aceast categorie l
constituie grinzile profilate.
O posibilitate de obinere a suprafeelor extrudate este definirea cte unei
instane a profilului la fiecare capt al liniei de extrudare i apoi conectarea punctelor
corespunztoare prin segmente de dreapt. Dac profilul original este nchis, rezultatul
va fi un solid nchis (lateral), cu seciune constant n orice plan perpendicular pe axa
extrudrii. Pentru profiluri curbe, suprafaa extrudat se poate obine i prin lofting, de
obicei riglat, ntre cele dou instane 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 posibiliti de generalizare a operaiei de extrudare. Se poate
generaliza direcia de extrudare (baleiere) spre a fi de-a lungul unei curbe arbitrare n
loc de o dreapt normal, rezultnd operaia sweeping. Un exemplu comun este
obinerea torului, definit ca un profil de regul circular deplasat pe o traiectorie
circular.
Operaia este o abstractizare a deplasrii unei aibe de grosime infinit de mic pe
o bar curb, astfel s rmn perpendicular pe tangenta la curba definit de bar n
punctul respectiv (figura 14). Acest tip de operaie este foarte util pentru definirea unor
forme care n esen pot fi gndite ca evi sau piese extrudate ndoite, cu profiluri
complicate.

140

Grafic Inginereasca-note de curs

O alt generalizare util este cea n care profilul poate varia n funcie de poziia
pe linia de sweeping. Pentru traiectorii rectilinii suprafaa se poate obine i prin lofting.
6.3.6.10 Suprafee offset
Operatorul offset este important pentru procesul de definire a unui model spline
al unei piese mecanice; de asemenea pentru obinerea suprafeelor necesare pentru
definirea unui plan de referin pentru prelucrare. O suprafa offset n cea mai simpl
form (figura 15), este obinut prin translaia geometric a unei suprafee cu valoare
dat (n mod uzual, pe direcia normalei). De exemplu, cele dou capete ale unei bare
profilate pot fi considerate, reciproc, obinute prin offset. De notat c suprafaa offset se
autointersecteaz i formeaz bucle dac originalul are raze de curbur mai mici dect
distana offset. Dac o suprafa se autonvecineaz (nelocal), cu mai puin dect de
dou ori distana offset, suprafaa ei offset se va autointersecta.

Suprafaa offset este o noiune natural n ntocmirea tehnologiei pentru multe


procedee de prelucrare. De exemplu, pentru frezarea unei suprafee cu frez sferic,
operaia de frezare este specificat relativ la o suprafa pe care se plimb centrul sculei,
care este definit ca o suprafa paralel cu suprafaa final (o distan constant ntre
cele dou suprafee pe direcia normal la suprafaa origine).
Suprafee offset apar i n procesul de injectare de piese din mase plastice, cnd
trebuie s se in seama de contracia materialului n faza de rcire. Nici un proces real
nu poate tolera suprafee cu bucle sau autointersectate. Este necesar detectarea i
eliminarea acestor fenomene.

6.3.6.11 Suprafee booleene i ajustate/tiate


Modele complexe se pot obine prin operaii booleene att pentru corpuri doar cu
elemente simple (figurile 2 i 3), ct i B-spline. De exemplu, un tub poate fi modelat ca
diferen ntre doi cilindri, din care unul cu raza mai mic dect cellalt.
Pentru implementarea algebrei volumetrice ntr-un sistem simplu, se poate
memora o form neevaluat a unei expresii ce descrie operaiile, urmnd a se calcula
interseciile analitice i efectua evalurile expresiilor pe msur ce sunt necesare
(tehnica CSG).
141

Grafic Inginereasca-note de curs

Sarcina nu este simpl, dar este mai uor de lucrat cu corpuri ale cror limite nu
sunt suprafee spline.
n cazul modelelor B-spline, este posibil s fie necesare operaii booleene pe
corpuri incomplet specificate (nenchise, neregularizate). Ambiguitile care apar ridic
probleme n rezolvare.
n cazul aplicrii operaiilor booleene pe corpuri definite de funcii spline, se
presupune, de obicei, c se lucreaz cu o reprezentare a obiectelor prin frontiere.
Acest lucru complic stabilirea poziiei unui punct n spaiu fa de un obiect. De
obicei, se consider un punct ca fiind interior dac este de acea parte fa de suprafeele
limit, definit de normala interioar.
Implementarea complet a operaiilor booleene este complex. Se pornete de la
faptul c ntr-o reprezentare prin frontiere se caut suprafeele limit ale obiectului
rezultat.
Rezultatul poate fi calculat efectund operaiile booleene de baz asupra
elementelor limit ale fiecrui obiect implicat, conectnd apoi, n mod corespunztor,
elementele selectate.
Principala operaie elementar n efectuarea operaiilor booleene este tierea.
Aceast operaie este util i utilizat independent, nu n cadrul unei operaii
booleene. Devine necesar acceptarea unui tip de date suprafa tiat/ajustat.
Matematic, pentru suprafee spline, modelul unei suprafee tiate are un domeniu
restrns al parametrilor. Restricia impus este uzual de forma unei curbe (B-spline),
eventual un lan de segmente de dreapt aproximnd curba real. n esen operaia de
tiere este echivalent cu determinarea curbei de intersecie a dou suprafee. Se
folosesc metode prin subdivizare sau incrementale pentru rezolvarea ecuaiilor
rezultante.
Deoarece operaiile booleene ntre modelele corpurilor cu suprafee curbe
necesit calcule foarte complexe, mari consumatoare de timp, unele modelatoare de
solide din programe CAD folosesc, n locul suprafeelor curbe, suprafee faetate. n
acest caz, suprafeele curbe sunt aproximate prin mulimi de faete plane.

142

Grafic Inginereasca-note de curs

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, Electro93
International Conference, Short Course, Edison, NJ, April 1993.
G. Burdea i P. Coiffet, La Ralit Virtuelle, Edition Hermes, Paris,
[Burd94]
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. tiinific i Enciclopedic,
Bucureti, 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,
Bucureti 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.
143

Grafic Inginereasca-note de curs

[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 ORourke, 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.

144

Grafic Inginereasca-note de curs

Prefa ............................................................................................................................................................5
Metode tradiionale de animaie ........................................................................................................7
Aplicaii ale graficii pe calculator ....................................................................................................9
Limbaje i biblioteci grafice .............................................................................................................15
i.2. Tehnologii de afisare .......................................................................................................................19
i.3. Soluii CAD ....................................................................................................................................23
i.4. Software specific ..........................................................................................................................26
i.5. MCAD i modelare de solide ...................................................................................................29
i.6 Activiti 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 spaial ........................................................................45
2.4. Generarea modelului pornind de la o mulime de puncte care aparin suprafeei de
frontier a obiectului ...........................................................................................................................46
2.5. Redarea imaginii obiectelor poligonale ...............................................................................47
2.6. Modelarea obiectelor prin reele de petice ..........................................................................48
2.7. Modelarea prin compunerea obiectelor................................................................................49
2.8. Modelarea prin divizarea spaial ..........................................................................................50
Capitolul 3 ..................................................................................................................................................53
3. Transformari geometrice ..............................................................................................................53
Transformri geometrice n spaiu .................................................................................................53
3.1. Transformri n plan ...............................................................................................................53
3.2 Sistemul de coordonate omogene............................................................................................61
3.2.1. Compunerea transformrilor ............................................................................................64
3.2.2. Transformri inverse...........................................................................................................70
3.2.3 Sisteme de coordonate .........................................................................................................71
3.3 Transformarea sistemelor de referin ...................................................................................72
3.3.1 Rotaia fa de o ax paralel cu una din axele sistemului de referin ..............76
3.3.2 Scalarea fa de un punct oarecare n spaiu ................................................................77
3.3.3 Rotaia fa de o dreapt oarecare n spaiu..................................................................78
3.4 Transformarea de modelare.......................................................................................................79
3.5 Alte transformri geometrice n spaiu ..................................................................................82
3.6 Transformri 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
145

Grafic Inginereasca-note de curs

5.2 Transformarea de proiecie ........................................................................................................93


5.3 Proiecia paralel...........................................................................................................................94
5.4 Proiecia 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 transformrii 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 suprafeelor 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 Detecia coliziunii ....................................................................................................................119
Capitolul 6 ................................................................................................................................................120
Modelare grafica ....................................................................................................................................120
6.1. Introducere .......................................................................................................................................120
Aplicabilitatea modelrii 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 spaial ...........................................................................126
6.3.2.4 Modelarea prin baleiere.................................................................................................126
6.3.2.5 Modelarea analitic (ASM)..........................................................................................126
6.3.2.6 Modelarea prin instanierea primitivelor .................................................................127

6.3.3 Metoda booleean de creare a modelelor solide utiliznd forme geometrice


elementare ............................................................................................................................................127
6.3.4 Metoda de creare a modelelor solide orientat pe prelucrare ...................................128
6.3.5 Reprezentarea obiectelor utiliznd 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 Obinerea de suprafee pornind de la curbe ....................................................................135
6.3.6.1 Aplicaie biliniar ............................................................................................................136
6.3.6.2 Lofting.................................................................................................................................136
6.3.6.3 Suprafee de tip Coons...................................................................................................138
6.3.6.4 Petice bicubice..................................................................................................................138
6.3.6.5 Petice Bzier .....................................................................................................................139
6.3.6.6 Suprafee capac ................................................................................................................139
6.3.6.7 Suprafee de revoluie ....................................................................................................139
6.3.6.8 Suprafee extrudate .........................................................................................................140
6.3.6.9 Sweeping ............................................................................................................................140
146

Grafic Inginereasca-note de curs

6.3.6.10 Suprafee offset ..............................................................................................................141


6.3.6.11 Suprafee booleene i ajustate/tiate .......................................................................141
Bibliografie ..............................................................................................................................................143

147

S-ar putea să vă placă și