Documente Academic
Documente Profesional
Documente Cultură
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
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
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
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
Jocurile distractive i filmele de animaie sunt unele din cele mai cunoscute
aplicaii de realitate virtual.
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
Programator/utilizator
model
Algoritmi de sinteza
Dispozitive de afisare
Fig. 1.1
Imagine reala
Discretizare
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
Utilizator
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 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,
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
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)
.
19
Interfaa cu
calculatorul
Date si interaciune
Procesor de afisare
Memorie video
Line (150,200)
Move to
Char
Jump
.
Disp de
afisare
Fig. 1.5
Date de interactiune
Memorie video
Comenzi de afiare
00000100000
00111100001
01111011101
10000001000
Procesor de afiare
pixeli
Controler video
Mouse
Monitor
Fig.1.6
Fig. 1.7
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
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
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
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
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.
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
27
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
30
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)
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
d'
M
M'
B
N
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)
(1.2)
(1.3)
P
p
O
( x x 0 )2 + ( y y 0 )2
= R2 ,
(1.4)
(1.5)
(x0,,y0)
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
(1.6)
(1.7)
y
R
2t
1 t2
R, y =
R
x=
2
1+ t
1+ t2
(1.8)
(1.9)
xn+1,yn+1
xn,yn
<
>
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.
Fig.1.9. Elipsa
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
( x x 0 ) 2 ( y y 0 )2
-
a2
b2
parametrice:
y= a sin(kx+),
O
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
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
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.
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).
x
c
e f
6
3
7
2
1
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
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.
(a)
(b)
(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.
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.5)
z(u ) = a z u 3 + b z u 2 + c z u + d z
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
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
Scadere
Reuniune
Bloc1
Cilindru
Bloc 2
Fig. 2.12 Arborele de construire a unui obiect din trei primitive geometrice.
2
1
(b)
(a)
Fig. 2.13 (a) Ocuparea unei
50 regiuni plane.
(b) Ordinea de numerotare a nodurilor fii.
2 3
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
52
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).
(1.14)
(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
x=x+a,
y =y+b
(1.17)
1
y 1 0
a
0
1 = x+a
b
y+b
1 0 0
x
y 1 0 1 0 = x+a
a b 1
y + b 1 = x'
y' 1
0
sy
0
0 x
0 y
s z z
A 0
0 D
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
Exemplu 1.1
3 0
.
0 1
3 0
0 1
3 2
6 2
6 3
3 3
=
4 4 0 0,2
4 0,8
1 4
1 0,8
=
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
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
0 0
1 0
1 1
0 1
1 2
0 1
0 0
1 2
1 3
0 1
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
x ' = cos(u + )
y' = sin( u + )
O
z
x = cos u
y = sin u
P = RZP ,
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
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.
c'
d
c
d'
1
M'
r
b'
a' a
Fig.3.5. Rotaia
59
ord .b'
cos
sin
sin
cos
sin
sin
cos
0,866
0,5
0,5
0,866
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
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.1)
z = Z/ w
0 0 tx
1 0 t y
0 1 tz
0 0 1
(3.2)
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)
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)
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
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
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
0 X
0 Y
, rezult
0 Z
1 w
(3.7)
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
(3.9)
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
Z' = Z
w ' = w
(3.11)
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
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
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
0
0
0
0
2
0
8 1 8.732
0 1 3.732
=
0 1 2
1 1 1
65
0
0
0 6.928
7.560
0 4.330
7.06
0
1
1
[X '
0
Y Z w]
0
t x
ty
tz
0
0
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)
r '12
r ' 22
r '32
0
r '13
r ' 23
r '33
0
tx
t y
tz
(3.15)
D 0 .
1
67
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
0,866
0,5
0
0
2,83 1
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
1
0
= I, I =
0
0
1
0
0
0
0
1
0
0
0
,
0
(3.16)
(3.17)
=I
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
cos sin 0 0
sin cos 0 0
= R z ( ) =
0
0
1 0
0
0 1
0
(3.22)
(3.23)
[R z ()] 1
- indirect -
- direct -
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
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
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
73
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
y'
y
P(6,3,0)
P'(2,1,0)
O'
x'
O
z
x
z'
0 0
0 1
1 0
0 0
0
0
0
y
P(0,1,1)
O
P(0,1,1)
P(0,-1,1)
O
x
z
P(0,-1,1)
(b)
(a)
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
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
T( x f , y f , z f ) .
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)
d 2y + d 2z ; sin = d y / d yz = d y
d 2y + d 2z
(3.29)
(3.30)
78
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
0
0
0
0
0
0
(3.31)
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 ()
(3.32)
Fig. 3.18 Scen virtual rezultat prin instanierea mai multor obiecte.
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
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)
SXY
Fig. 3.19 Transformarea de simetrie SXY transform sistemul de coordonate drept Oxyz
n sistemul de coordonate stng Oxyz.
a
1
0
0
b
0
1
0
0
0
0
(3.35)
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)
(3.37)
0
sy
0
0
0
1
(3.38)
(3.39)
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
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)
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
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
.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
P1
P2
P1
P3
P4
P3
Capitolul 5
I.
Sisteme de vizualizare
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
(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
89
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 c12 c22 c32 y V
=
0 c13 c23 c33 z V
1 0
0
0
1
(5.1)
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)
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
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
0 0 cos sin
1 0 sin sin
cos
0 1
0 0
1
1
0
T1 =
0
0
0
0 0
0 0
1 0
0 1
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
92
MV
cos
0
0
sin
cos cos sin cos sin 0
=
cos sin sin sin cos
0
0
0
1
[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 '
2 2 2 2
6 6
6 6
3 3
3 3
0
6 3
3 3 10 3
0
1
0
O' 0,0,-9 3
0 0 0
1 0 0
0 0 0
0 0 1
(5.4)
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)
Direcia de observare
yV
yV
P
P
B
OV
yP
OV
zV
xV
yV
zV
zV
xV
yV
yP
A zV
d
zV
d yV
zV
d xV
zV
(5.6)
95
1
0
MP =
0
0
1 0 0
0 1 0
0 1 / d 0
0
(5.7)
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)
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
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.
y V = h z V d
z V = d
z V = f
(5.9)
d xV
x N =
g zV
d yV
y N =
h zV
z N = f 1 d
f d
z V
(5.10)
98
YN = d y V h
Z N = z V f /(f d) df/(f d)
w N = z V
(5.11)
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)
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
zN
(c)
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
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)
(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
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.
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:
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
104
VPN
VPN
Planul de
vizualizare
Planul de
vizualizare
PRP
Fereastra de
vizualizare
Fereastra de
vizualizare
(a)
PRP
(b)
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
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
(xmax+xmin)/2, (ymaxymin)/2, d
(xmax+xmin)/2, (ymaxymin)/2, d
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)
[
= [ (x
d 1] T
max
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)
1
0
=
0
1
0
0
0 f /(f n) nf/(f n)
0
1
0
(5.15)
107
yS
yN
yPmax
ymax
yN
yCF
yS
CP
yCP
CF
ymin
yPmin
xmin xN xCF
xmax
xN
xPmin
xS
xCP
xPmax
xS
(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
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
108
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)
zS
xS
1001
1010
0010
0000
0001
y = ymax
y = ymin
0101
0110
0100
x = xmin
x = xmax
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
0010
0001
0100
Fig. 5.15 Teste de vizibilitate pentru decuparea n plan.
111
(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
V1
I4
I1
I1
I2
I2
V2
V3
Semiplan
invizibil
Semiplan
vizibil
Semiplan
vizibil
x = xmin
V4
I3
V3
Semiplan
invizibil
x = xmin
Fig. 5.17 (a), (b) Decuparea relativ la laturile verticale ale regiunii de decupare
n algoritmul Sutherland-Hodgman.
113
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
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
h
g
g
z V ; x V z V ; x V z V ; z V d; z V f
d
d
d
(5.20)
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
yN = 1
zN
yN = 1
(c)
zN = 0
zN = 1
x z; x z; y z; y z; z f; z d
115
(5.21)
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
yV
OV
zV
xV
119
Capitolul 6
Modelare grafica
6.1. Introducere
Aplicabilitatea modelrii in domeniul ingineriei
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
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
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
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:
131
132
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
modificri asemntoare sunt uor de realizat, deoarece trebuie modificate doar punctele
modelului.
135
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:
136
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
138
140
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.
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
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
[Prep85]
144
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
147