osnovni koncepti grafi Čkog...
TRANSCRIPT
-
1
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Interaktivna manipulacija oblikom igra glavnu ulogu uCAD/CAM/CAE sistemima. Programiranje koje kreira grafikidisplej na displej monitoru je dakle bitan dio CAD/CAM/CAEsoftvera. Dakle, mi treba da analiziramo terminologiju ikoncepte koji su u osnovi grafikog programiranja.
Grafike biblioteke
Termin raunarsko programiranje je koriten da oznaipisanje kompozicije koristei neke raunarske komande usaglasnosti sa prethodno definiranom gramatikom.Kompozicija e generisati odgovarajui niz eljenih brojeva ikaraktera na terminalu ili u data fajlu, kada se izvri saunosom odredjenog broja karaktera. Danas, pak, nijeneoubiajeno za programsku kompoziciju, osim to radi sabrojevima i karakterima, da prihvata grafike informacije kaoulaz i proizvede grafiki displej kao izlaz.
-
2
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Aktivnost koja ukljuuje grafiku kao ulaz i izlaz se naziva
grafiko programiranje, a oblast koja se na nju odnosi se
naziva kompjuterska grafika ( computer graphics).
Pored osnovnog softvera tj. Operativnog sistema ( OS ), te
editora i kompajlerskog softvera koji su potrebni kod
konvencionalnog programiranja, neki osnovni grafiki softver
je potreban za grafiko programiranje.
Grafiki softver se moe podjeliti u dvije grupe: drajveri
uredjaja ( device drivers) i grafike biblioteke.
Drajver uredjaja se moe posmatrati kao dio programskog
koda zavisnog od tipa raunara koji direktno kontrolira
procesnu jedinicu displeja, grafikog uredjaja tako da je
elektronski mlaz usmjeren na eljenu poziciju. Svaki drajver
uredjaja zavisi od samog uredjaja , kao da se radi o
hardverskoj vezi za specifinu procesnu jedinicu displeja.
-
3
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Dakle procesna jedinica displeja grafikog uredjaja radi sa
specifinim drajverom uredjaja. Ovo je analogno nainu na
koji jedan tip asamblerskog jezika se moe razumjeti samo
od strane specifinog tipa raunara a program napisan u
tom asamblerskom jeziku se moe izvriti samo na tom tipu
raunara. Ista se stvar deava kada grafiki program se pie
direktno sa drajverom uredjaja, kao to to prikazuje slijedea
slika. To znai da grafiki program treba biti ponovno
napisan sa komandama odgovarajueg drajvera uredjaja
kada se koristi razliit grafiki uredjaj. Nadalje, svaka
komanda drajvera uredjaja ima samo primitivne mogunosti,
tako da program koji je napisan sa tim komandama bi bio
vrlo dugaak ako bi trebao da izvrava bilo kakav realan
zadatak. To bi rezultiralo u programu sa slabom itljivou (
readability).
-
4
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Programeri danas ele da piu programe u jezicima visokog
nivoa. Pri tome ni grafiko programiranje ne moe biti
izuzetak, naroito kada se uzmu u obzir neprilike
prouzrokovane koritenjem komandi niskog nivoa za
drajvere uredjaja.
Tip grafikog programiranja sa direktnim koritenjem drajvera
uredjaja
-
5
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Zbog toga je uspostavljena opta praksa da se opremi
grafiki uredjaj sa bibliotekom koja se naziva grafika
biblioteka ( graphics library). Slino kao i matematska
biblioteka (math library) kod konvencionalnog programiranja,
grafika biblioteka je skup subrutina, svaka od kojih ima
neku specifinu namjenu. Naprimjer, subrutina moe crtati
liniju ili krug. Grafika biblioteka se gradi na vrhu drajvera
uredjaja, kao to je prikazano na narednoj slici:
Tip grafikog programiranja sa koritenjem grafike biblioteke
-
6
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Svaka subrutina je kreirana koritenjem podravajueg seta
komandi drajvera uredjaja. Naprimjer, subrutina za crtanje
kruga moe biti komponovana od serije komandi drajvera
uredjaja koje crtaju kratke pravolinijske segmente.
Subrutine grafike biblioteke se mogu koristiti na potpuno isti
nain kao i matematske biblioteke, to jest, potrebna
subrutina se poziva iz glavnog programa kao to se sinusne
i kosinusne funkcije iz math biblioteke pozivaju kada su
potrebne vrijednosti ovih funkcija. Jedan problem sa
subrutinama u grafikoj biblioteci je da njihova imena i nain
na koji se pozivaju (napr, ulazni i izlazni argumenti), variraju
za svaku grafiku biblioteku. Ovo ne mora biti problem ako
jedna grafika biblioteka moe voditi sve postojee grafike
uredjaje: ovaj aranman je teoretski mogu ako svi drajveri
postojeih uredjaja podravaju grafiku bibloteku.
-
7
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Medjutim, zbog praktinih razloga softverski vendori ne
mogu ili ne ele da razvijaju grafiku biblioteku koja moe da
se interfejsira sa svim drajverima uredjaja, tako da su sve
grafike biblioteke vezane samo sa ogranienim brojem
grafikih uredjaja, i kao rezultat toga, grafiki program
moda mora biti ponovno napisan sa drugom grafikom
bibliotekom, ako se koristi mnogo tipova grafikih uredjaja.
Jedan od naina prevazilaenja ovog problema bi bio za one
koji razvijaju grafike biblioteke da koriste isti skup subrutina
sa istim imenom, argumentima i mogunostima ( u praksi je
pak svaka subrutina implementirana sa skupom komandi
drajvera uredjaja koji su nezavisno izabrani od strane
svakog razvojnog inenjera koji pie program). Na ovaj
nain, grafiki programi ne bi morali biti modificirani na
izvornom ( source) nivou, ak i kada se promjeni grafiki
uredjaj.
-
8
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Jedan primjer ovakvog pristupa je bio CORE grafiki sistem
predloen 1977 od strane Specijalne interesne grupe za
kompjutersku grafiku ( Special Interest Group on Computer
Graphics- SIGGRAPH), u okviru udruenja za raunarske
maine ( Assosiation for Computing Machinery ACM ).
Medjutim CORE grafiki sistem nije obezbjedivao dovoljno
komandi da bi se koristile sve mogunosti raster grafikih
sistema, poto ovi sistemi jo nisu bili dovoljno razvijeni
kada je CORE razvijen. Grafiki kernel sistem ( Graphics
Kernel System- GKS), je razvijen od strane medjunarodne
organizacije za standarde ( International Standard
Organization-ISO), negdje u isto vrijeme. GKS se smatrao
standardom za dvodimenzionalnu grafiku, i on je kasnije
proiren na GKS-3D za trodimenzionalnu grafiku.
I CORE i GKS imaju neke nedostatke u odnosu na podrku
-
9
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
za dinamike displeje kao i raznovrsne tipove korisnikih
interfejsa. Zbog toga je ISO sugerisao drugi standard :
Programerski hijerarhijski interaktivni grafiki sistem (
Programmers Hierarchical Interactive Graphics System
PHIGS), koji je postao de facto standardna grafika
biblioteka za veinu radnih stanica. Kasnije PHIGS je bio
proiren da postane PHIGS Extension to X ( PEX),
ukljuivanjem X prozora ( X Windows) sistem za rad u okviru
prozora ( tj., kreiranje, manipulisanje, i zatvaranje prozora).
Odatle, grafiki programi pisani u PEX-u se mogu koristiti
nezavisno od tipa radnih stanica i mrenog okruenja,
beneficija koja je naslijedjena od X Windows sistema.
Razvijen nezavisno od organizacija za standadizaciju,
pojavio se kao komercijalna grafika biblioteka, OpenGL,
koja postaje sve popularnija, zbog raznovrsnosti jer moe da
-
10
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
drajvuje i inenjerske radne stanice kao i personalne
raunare ( pod Windows NT OS ), i u mrenom okruenju.
OpenGL je proirenje od GL, koja je bila vlastita grafika
biblioteka maina Silicon Graphics. Zbog popularnosti Sun
maina u raunarskim aplikacijama, OpenGL je postao
defacto standardna grafika biblioteka.
KOORDINATNI SISTEMI
Dva osnovna zadatka koja se zahtjevaju da bi se prikazala
slika objekta na grafikom uredjaju su :
1) specificiranje lokacije svih taaka objekta u prostoru, i
2) odredjivanje koje lokacije na displej monitoru se trebaju
zaposjesti od strane ovih taaka.
Dakle, nuan je koordinatni sistem da obezbjedi referencu za
specificiranje lokacije take i u prostoru i u monitoru.
-
11
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Razumjevanje relacija izmedju razliitih koordinatnih sistema
je bitno, naroito u raunanju gdje je trodimenzionalna taka
projektovana na displej monitor. Projekcija se pojavljuje na
isti nain kao to se i slika projektuje na retinu oka
posmatraa.
Jedan koordinatni sistem je koordinatni sistem uredjaja (
device coordinate system), koji se koristi kao referentni u
definiranju lokacije na displej monitoru. Openito,
koordinatni sistem uredjaja ukljuuje u osu u horizontalnom
pravcu i v osu u vertikalnom pravcu, kao to je prikazano na
narednoj slici. Primjetimo da se poetak koordinatnog
sistema moe proizvoljno izabrati. Nadalje, trea osa,
okomita na u i v ose, nije definirana poto su u i v ose
dovoljne da definiraju bilo koju lokaciju na displej monitoru.
U stvari svaka takva lokacija je definirana sa dvije u i v
-
12
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
cjelobrojne vrijednosti, koje daju broj piksela koje stoje
izmedju poetka koordinatnog sistema uredjaja i lokacije od
interesa u u i v pravcima. Medjutim, ista lokacija na monitoru
moe imati razliite u i v vrijednosti, zavisno od lokacije
koordinatnog poetka, zatim smjera u i v ose, i opsega u i v
vrijednosti za cijeli monitor: ove se mogu arbitrarno postaviti
za svaki razliiti grafiki uredjaj, kao to je pokazano na
narednoj slici. Zbog toga, koordinate uredjaja koje se koriste
u grafikom programu moda moraju biti promjenjene ako
ista slika se mora iscrtati u razliitim grafikim uredjajima.
Virtualni koordinatni sistem uredjaja ( virtual device
coordinate system) izbjegava opisane probleme
koordinatnog sistema uredjaja. Virtualni koordinatni sistem
uredjaja ima isti poetak , iste u i v ose, i isti opseg u i v
vrijednosti za sve radne stanice. Rije virtualni se koristi
-
13
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
poto koordinatni sistem postoji samo u programerskoj
imaginaciji. Obino, ima poetak u donjem lijevom uglu
monitora, u osa se produuje u desno, v osa se proiruje
prema gore, a opseg vrijednosti u i v je od 0 do 1. Time,
taka specificirana vrijednostima u odnosu na virtuelni
koordinatni sistem uredjaja e uvjek zauzimati istu lokaciju
nezavisno od tipa grafikog uredjaja.
-
14
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Kao rezultat toga, grafiki programer moe specificirati oblikkonzistentno bez da mora da razmatra specifini koordinatnisistem uredjaja. U ovom sluaju, znajui koji je grafikiuredjaj kontrolisan drajverom, grafiki program aljevrijednosti virtualnih kooridinata na rutinu drajvera uredjaja,koja konvertuje virtualne koordinate u koordinate uredjaja uskladu sa koordinatnim sistemom uredjaja za specifinigrafiki uredjaj.
I koordinatni sistem uredjaja i virtualni k.s. uredjajaobezbjedjuju koordinatne sisteme koji specificiraju lokacijudvo dimenzionalnog displej monitora. Posmatrajmo sadakoordinatne sisteme koji definiraju lokaciju take utrodimenzionalnom prostoru. Postoje u osnovi tri takvakoordinatna sistema: svjetski koordinatni sistem ( worldcoordinate system) kojeg emo u nastavku nazvati kaovanjski k.s, koordinatni sistem modela ( model coordinatesystem-mks) i posmatraev koordinatni sistem
-
15
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
( viewing coordinate system- vcs).
Svjetski koordinatni sistem ( wcs), je referentni koordinatni
sistem koji se koristi da opie kako svijet od interesa oko nas
izgleda, kao to mu i ime implicira ( tj. koji tipovi objekata
postoje u svijetu i kako su oni locirani). Naprimjer, ovaj se
koordinatni sistem moe koristiti da opie lokacije i
orjentacije stolova, stolica, i table u okruenju u kojem je
svijet od interesa -uionica.
Sada mi treba da opiemo oblik svakog objekta u tom
svijetu. Oblik objekta je definiran koordinatama svih njegovih
taaka, ili nekih karakteristinih taaka na objektu u odnosu
na koordinatni sistem vezan uz objekat. Ovaj koordinatni
sistem se naziva koordinatni sistem modela (mcs).
Koordinate taaka na objektu definirane unutar k.s modela
ne mjenjaju svoje vrijednosti ak i kada objekat se translira
-
16
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
ili rotira u prostoru, nego su iskljuivo odredjene oblikom
objekta. Dakle, k.s modela se kree sa objektom. Ovo je
razlog zato je oblik svakog objekta definiran u odnosu na
njegov vlastiti k.s modela. Lokacija i orjentacija svakog
objekata se onda specificira sa relativnom lokacijom i
orinjentacijom njegovog k.s modela, u odnosu na vanjsi k.s (
world cs). Relativne lokacije i orjentacije dva koordinatna
sistema su definirane sa transformacionom matricom, koja
e biti kasnije razmatrana. Sa vanjskim kooridinatnim
sistemom ( wcs ) i mcs za sve objekte u svijetu od interesa,
scena tog svijeta ( tj layout i oblici svih objekata u svijetu ) je
kompletno definirana. Drugim rijeima, koordinate svih
taaka objekata se mogu dobiti u vanjskim koordinatama
nakon primjene pridruenih transformacionih matrica.
-
17
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Koordinatni sistemi u Autocadu
U Autocad-u postoje dva koordinatna sistema, fiksni
koordinatni sistem koji se zove svjetski koordinatni sistem (
WCS world coordinate system) ,i pokretni koordinatni
sistem koji se naziva koordinatni sistem korisnika ( UCS-
user coordinate system). U WCS, X osa je horizontalna, Y
osa je vertikalna a Z osa je perpendikularna ( okomita ) na XY
ravan. Koordinatni pocetak je tamo gdje se X i Y ose sijeku (
0,0) u donjem lijevom uglu crtea.
UCS se definie preko WCS. U praksi svi unosi koordinata
koriste tekui UCS sistem.
Pomjeranje UCS k.s. moe olakati rad na specifinoj sekciji
crtea. Rotacija ucs omoguava da specificiramo take u
trodimenzionalnim ili rotiranim pogledima:
Modovi:Snap, Grid, i Ortho rotiraju u odnosu na novi UCS k.s.
-
18
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Moemo promjeniti lokaciju koordinatnog sistema korisnika
koristei neku od slijedeih komandi:
pomjeriti UCS definiui novi koordinatni poetak
poravnavanjem UCS sa postojeim objektom ili sa tekuim
pravcem gledanja. ( viewing direction)
Rotacijom tekueg UCS oko bilo koje od njegovih osa.
Restauriranjem pohranjenog UCS.
Kada smo definisali UCS, moemo ga imenovati i zatim
restaurirati kada ga ponovno budemo trebali. Ako nam vie
nije porteban imenovani UCS, moemo ga obrisati.
Takodjer moemo restaurirati UCS da se poklapa sa WCS.
UCS komandi moemo pristupiti ili preko UCS alatne letvice
ili preko komande na komandnoj liniji: UCS
-
19
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Nakon izdavanja komande bit e prikazana informacija o
koordinatnom pocetku i osama izabranog UCS.
Po defaultu, k. poetak i vrijednosti za X,Y i Z ose su
izraunate relativno u odnosu na svjetski k.s.
Da indicira lokaciju i orjentaciju UCS, AutoCAD prikazuje
UCS ikonu ili u koordinatnom poetku UCS ili u donjem
desnom uglu tekueg porta gledanja ( viewport).
Moemo koristiti jednu od tri stila ikona da predstavimo
UCS.
-
20
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Koristimo komandu UCSICON da izaberemo izmedju
prikaza 2D ili 3D UCS ikone. Koristimo komandu
SHADEMODE da prikaemo osjenenu UCS ikonu.
Ako je ikona prikazana u koordinatnom poetku tekueg
UCS, pojavljuje se krst (+) na ikoni. Ako je ikona prikazana
u donjem lijevom uglu porta gledanja , onda se nee pojaviti
krst (+) na ikoni. Ako imamo vie portova gledanja (
viewports) , svaki port prikazuje svoju UCS ikonu.
AutoCAD prikazuje UCS ikonu na razliite naine da bi
pomogao vizuelizaciji orjentacije ravni crtanja. Na narednim
slikama su prikazani prikazi moguih ikona:
-
21
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Moemo koristiti UCSICON komandu da predjemo izmedju
2D UCS ikone i 3D UCS ikone.
UCS ikona o obliku prelomljene olovke zamljenjuje 2D UCS
ikonu kada je pravac gledanja u ravni koja je paralelna sa
UCS XY ravni. Ikona slomljene olovke indicira da je ivica XY
ravni skoro okomita na na pravac gledanja. Na taj nain
ikona nas upozorava da ne koristimo mi ili uredjaj koji
koristimo za ukazivanje poloaja, da bi specificirali
-
22
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
koordinate.
Kada koristimo mi kao uredjaj za pokazivanje poloaja da
lociramo taku, ona je normalno postavljena na XY ravan.
Ako je UCS rotiran tako da Z osa lei u ravni pralelno sa
ravni gledanja, tj. Ako je XY ravan okomita sa ivicom prema
posmatrau, tada je teko vizuelizirati gdje e taka biti
locirana. U ovom sluaju, taka e biti locirana na ravni
paralelnoj sa ravni gledanja, koja takodjer sadri koordinatni
poetak UCS k.s. Naprimjer, ako je pravac gledanja du X
ose, koordinate koje su specificirane sa miem e biti
locirane na YZ ravni, koja sadri koordinatni poetak UCS.
Treba koristiti 3D UCS da se vizuelizira na koju ravan e biti
projecirane ove koordinate. 3D UCS ne koristi ikonu
slomljene olovke.
-
23
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Slijedei zadatak je da se projektuju ovi trodimenzionalni
objekti, ili take objekata, na monitor kao to bi se
projektovale na retinu ljudskog oka. Dva tipa projekcije
perspektivni i paralelni , se tipino koriste kod raunarske
grafike, kao to je ilustrirano na slijedeoj slici:
slika 3.4
Dva tipa projekcije: a) perspektivna b) paralelena projekcija
-
24
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Za obadva tipa projekcije, taka gledanja ( viewpoint) i
lokacija gledanja ( viewsite), trebaju biti specificirani. Taka
gledanja se smatra da je to oko posmatraa. Lokacija
gledanja je taka na objektu, ona definira pravac gledanja
tako da vektor koji je usmjeren iz take gledanja ka lokaciji
gledanja postane pravac gledanja.
Kod projekcije perspektive, sve take na objektu predmeta
od interesa su spojene sa centrom projekcije, obino
lociranim du linije od lokacije gledanja ka taki gledanja, i
taaka presjeka izmedju ovih linija i ekrana koji sadri
projektovanu sliku. Ekran je lociran izmedju take gledanja
i lokacije gledanja. Kod paralelne projekcije, paralelne linije
se vode iz svih taaka na objektu u pravcu gledanja
definiranom sa lokacijom gledanja, i takom gledanja, kao i
ranije, te taaka presjeka izmedju ovih linija i ekrana koji
sadri sliku.
-
25
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Slino kao i kod projekcije perspektive, ekran je orjentiran
okomito na pravac projekcije za ortogonalnu projekciju.
Take projekcije opisane u bilo kojem od dva projekciona
metoda se mogu lako sraunati ako koordinate taaka na
objektu koji se projektuje, su date u odnosu na xv yv zvkoordinatni sistem, kao to je pokazano na prethodnoj slici.
Naprimjer, projekcione take u paralelnoj projekciji se mogu
generirati jednostavno skupljajui Xv i Yv vrijednosti
odgovarajuih taaka na objektu. Dakle, xv yv zv koordinantni
sistem se naziva koordinatni sistem gledanja ( viewing
coordinate system), poto on olakava projekciju gledanja.
Koordinatni sistem gledanja ( vcs) se konstruira tako da
posjeduje slijedee karkateristike: Kao to je i pokazano na
prethodnoj slici, poetak vks je lociran u lokaciji gledanja (
vs), osa zv je upravljena ka taki gledanja iz koor. poetka
-
26
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
a yv osa je paralelna sa vertikalnim pravcem na ekranu.
Preostala osa, xv se odredjuje sa krosproizvodom yv i zv osa.
Veina ljudi prirodno primjeuje vertikalni pravac u prostoru
kao vertikalni pravac na ekran, tako da se yv osa odredjuje
da bude projekcija vertikalnog vektora u prostoru na ekran.
Kod veine grafikih biblioteka, se predostavlja da korisnik
gleda ovaj vertikalni vektor u prostor, koji se zove vektor
prema vani ( up vector) u vanjskom koordinatnom sistemu (
wcs). Taka gledanja i lokacija gledanja se takodjer
specificiraju u vanjskim koordinatama ( wcs) , kao to se
moe vidjeti na narednoj slici.
Kada je koordinatni sistem gledanja (vcs) definiran i
izvedene sve koordinate taaka od interesa na objektu u
odnosu na ovakav koordinatni sistem, slijedei zadatak je
da se sraunaju lokacije njihovih projekcija na ekranu.
-
27
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Taka gledanja ( viewpoint) i lokacija gledanja ( viewsite )
Mi ve znamo da ove projekcione take se mogu lako izvesti
za paralelnu projekciju. Zbog toga mi trebamo samo da
opiemo proceduru da izraunamo projekcione take za
perspektivnu projekciju. Posmatrajmo poglede odozgo i sa
strana na prethodnoj slici kako su prikazani na
-
28
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
narednoj slici. Taka od interesa je oznaena sa i njenekoordinate u odnosu na vcs su oznaene sa Xv , Yv, i Zv .
Izraunavanje projekcione take
-
29
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Primjenjujui pravilo slinosti izmedju trouglova, dobiemo:
i
U jednainama ( 3.1 ) i (3.2) Xs i Ys su distance projekcije od
take oznaena sa Rastojanja su mjerena u horizontalnim
i vertikalnim pravcima od ekrana od take gdje zv osa
presjeca ekran. Dakle L je rastojanje izmedju lokacijepogleda i centra projekcije, a S je rastojanje izmedju centra
projekcije i ekrana. Jednaine (3.1) i (3.2) indiciraju da taka
-
30
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
sa veom Zv vrijednou e imati vee Xs i Ys vrijednosti,
koje ine da se linija rastojanja pojavljuje manjom nego
bliska njoj linija koja ima istu duinu. Ove distance Xs i Yse biti eventualno konvertovane u koordinate virtualnog
uredjaja posmatrajui eljenu lokaciju centra i veliinu slike
koja treba da se pojavi na ekranu monitora.
Koordinatni sistemi koji su opisani su zajedno prikazani na
narednoj slici da se pojasne njihovi medjusobni odnosi .
Koordinatni sistemi su povezani sa transformacionim
matricama, kao to je ve napomenuto. Time, lokacija i
orijentacija svakog koordinatnog sistema modela je
specificirana odgovarajuom transformacionom matricom u
odnosu na vanjski koordinatni sistem ( wcs). Koordinatni
sistem gledanja ( vcs) se takodjer moe definirati sa
transformacionom matricom u odnosu na vanjski k.s ( wcs)
-
31
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Iz date take gledanja, lokacije gledanja, i up-vektoraspecificiranog u wcs koordinatama.
Relacije izmedju koordinatnih sistema
-
32
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Procedura za izraunavanje projekcionih taaka, koristeitransformacione matrice, se moe sumirati na slijedei nain:
- Prvo, vrijednosti koordinata take koja se projecira sekonvertuju iz koordinata modela u vanjske koordinate ( wcs)primjenjujui transformacionu matricu koja definira relativnutranslaciju i rotaciju izmedju wcs sistema i koordinatnogsistema modela. Ova operacija se naziva transformacijamodela i pokazana je na narednoj slici .
- Drugo, vrijednosti koordinata iste take se konvertuju izvanjskih koordinata (wcs) u koordinate gledanja primjenjujuitransformacionu matricu izmedju vanjskog koordinatnogsistema ( wcs) i koordinatnog sistema gledanja ( vcs), Ovaoperacija se naziva transformacija take gledanja ( viewingtransformation) , i pokazana je na narednoj slici.
- Tree, koordinate gledanja take se konvertuju u Xs i Ysvrijednosti sa jednainama ( 3.1) i ( 3.2) , i ponovno u virtualnikoordinatni sistem.
-
33
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Ova operacija se naziva transformacija projekcije i takodjer
je pokazana na narednoj slici. Konano, koordinate
virtualnog uredjaja se konvertuju u koordinate uredjaja od
strane rutine drajvera uredjaja to je takodjer pokazano na
narednoj slici
-
34
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Ove transformacije se obino izvravaju unutar grafike
biblioteke, i grafiki programer treba da samo specificira
neophodne informacije za svaku transformaciju. Naprimjer,
translacije i rotacije objekata koje korespondiraju sa njihovim
layoutom su obezbjedjene za transformaciju modela, taka
gledanja: lokacija gledanja, i vektor gore ( up vector) su
obezbjedjeni za transformaciju gledanja: i tip projekcije
zajedno sa lokacijom centra projekcije i ekrana su
specificirane za transformaciju projekcije. Ipak, grafike
biblioteke primitivnog nivoa mogu zahtjevati od programera
da pie kod za sve ove transformacije.
-
35
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Prozor i portgledanja ( viewport)
Rije prozor ( window) koritena u mrenom okruenju, znai
odvojene oblasti na monotoru radne stanice kroz koji
korisnik interaktira sa razliitim raunarskim izvorima
spojenim na mreu. Ipak, rije prozor ima razliito znaenje
u raunarskoj grafici. On definira region u prostoru koji e biti
projektovan na monitor tako da svaki objekat van prozora se
nee pojaviti na monitoru. U tom smislu, to je analogno
prozoru na kui kroz koji samo dio vanjskog svijeta je vidljiv
osobi koja je unutar kue. Ova analogija izgleda da je razlog
zato je izabrano ime prozor ( window). Prozor se obino
definira kao pravougaonik na projekcionom ekranu sa
odgovarajuim Xv i Yv vrijednostima u koordinatnom sistemu
gledanja, kao to je pokazano na naredne dvije slike. Vidljivi
region , koji se naziva volumen gledanja ( viewing volume)
-
36
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
zavisi od tipa projekcije ( tj. paralelopiped za paralelnuprojekciju i piramida za perspektivnu projekciju ).
prozor i volumen gledanja ( viewing volume ) kod
paralelne projekcije
-
37
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
prozor i volumen gledanja ( viewing volume ) kod
perspektivne projekcije
-
38
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Volumen gledanja moe dati vrlo komplikovanu sliku kada seprojektuje poto moe ukljuiti nepotrebne objekte vrlodaleko ili blizu posmatraa. Dakle ponekad je poeljnopresjei volumen gledanja i sa bliskim i dalekim ravnima,kao to je pokazano na narednoj slici. Bliske i daleke ravniza paralelne projekcije i za perspektivnu projekciju su slinodefinisani.
-
39
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Viewport je oblast ( ili oblasti ) na monitoru gdje mi elimo
da se pojavi projektovani lik, kao to je pokazano na
narednoj slici. To je oblast na koju se mapira volumen
gledanja definiran sa prozorom. Mapiranje e ukljuiti
translaciju i skaliranje da bi se uzeo u obzir otklon centra
viewporta od centra monitora i razlike u veliini izmedju
prozora i viewporta.
-
40
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Drugim rijeima, Xs i Ys vrijednosti projekcionih taakadobijenih iz jednaina ( 3.1) i (3.2) treba da se poveaju ilismanje za odredjene vrijednosti, tako da centar prozora sepojavi na centru viewporta umjesto na centru monitora.One takodjer treba da budu skalirane sa odredjenimfaktorima, tako da etiri granine take prozora postanuetiri granine take viewporta.
Odnos aspekta prozora mora biti isti kao i kod viewporta dabi se izbjegla distorzija lika. Inae bi, naprimjer krug mogaobiti prikazan kao elipsa.
IZLAZNE PRIMITIVE
Izlazne primitive su grafiki elementi koji se mogu prikazatipomou grafike biblioteke. One mogu biti razliite za svakuspecifinu grafiku biblioteku, i samo izlazne primitivepodravane od veine grafikih biblioteka bie opisane unastavku ove sekcije.
-
41
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
LINIJA
Pravolinijski segment se prikazuje kada se specificirajukoordinate njena dva kraja. Trodimenzionalne koordinatekrajeva se takodjer mogu koristiti u veini grafikihbiblioteka, gdje se trodimenzionalne koordinate automatski
konvertuju u dvodimenzionalne projekcije. Atributi linije kaoto su : tip, debljina i boja se takodjer mogu specificirati.Tipovi linija koji su podrani od veine grafikih biblioteka suprikazani na narednoj slici. Bitno je podrati ove tipove linijakod CAD sistema za crtanje poto se one esto koriste umainskim, arhitektonskim i elektrinim crteima.
-
42
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Kod GKS, PHIGS i OpenGL, mogunosti vielinijskih (
polyline ) segmenata se takodjer prisutne, pa se daju krajnje
linije polyline u sekvenci kao u narednoj matrinoj formi.
Kada samo treba prikazati jedan segment linije, matrica e
sadravati samo koordinate dvije krajnje linije:
-
43
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Poligon
Funkcija poligona je ista kao i polyline funkcija izuzev to
prvi red i posljednji red taaka niza [P] trebaju biti iste.
Dakle, dobie se isti grafiki izlaz kao i sa polyline funkcijom.
Medjutim, poligon nacrtan funkcijom poligona nosi i
unutarnju i vanjsku informaciju, i njegova unutranjost se
moe ispuniti sa uzorcima ( paternom )kao oni koji su
prikazani na narednoj slici.
-
44
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Pored tipova ispune koji su pokazani, takodjer i unutarnjaboja poligona ( boja ispune) kao i tip, irina i boja perimetrase moe takodjer specificirati kao atributi poligona.
Mada i krug kao i poligon se mogu nacrtati sa funkcijompoligona, funkcije koje trae mnogo manje ulaznihparametara ( napr. samo centralnu taku i radius za krug idvije krajnje take i dijagonalu za pravougaonik) iraspoloive su u veini grafikih biblioteka. Medjutim,interno, ove funkcije se realizuju sa poligonalnim funkcijama.
MarkerMarkeri se obino koriste da diferenciraju take podataka ugrafu. Naredna slika pokazuje karaktere koji su naraspolaganju u veini grafikih biblioteka.
-
45
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
.
Tipovi markera se specificiraju kao atribut. Slino kao isegment linije, polimarker je defaultni i u GKS i PHIGSgrafickim bibliotekama. OpenGL ne podrava markereeksplicitno, ali obezbjedjuje mehanizam pomou kojeg sesvaki marker moe definirati u bitmapi i pozvati kada jepotrebno. Na ovaj nain, grafiki program napisan uOpenGL ima mnogo bolju portabilnost kroz razliitehardverske paltforme.
primjeri markera
-
46
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Tekst
U veini grafikih biblioteka podrana su dva tipa teksta:anotacioni tekst ( ekranski tekst ili dvodimenzionalni tekst )itrodimenzionalni tekst. Anotacioni tekst je uvjek lociran naravni displej monitora tako da njegov oblik se ne deformiebez obzira na njegovu orjentaciju. Trodimenzionalni tekst semoe postaviti u bilo koju ravan, i time njegova lokacija iorjentacija su specificirani u vanjskim koordinatama ( wcs).
Bez obzira na vrstu teksta, font, zatim odnos visine premairini, i ugao nagiba karaktera od kojih se sastoji tekst,moraju biti specificirani da bi se mogao prikazati taj tekst.
Nadalje, lokacija teksta kao i smjer tekst linije se takodjermoraju specificirati. Mogu se koristiti dvije vrste karakterfontova u tekstu: hardverski fontovi i softverski fontovi.Softverski font se prikazuje izvravanjem odgovarajuihgrafikih programa koji su unaprijed pohranjeni.
-
47
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Softverski font treba due vremena nego hardverski da seizvri, ali je njegov oblik mnogo vie rafiniran nego kodhardverskog fonta, koji se pohranjuje kao set pravolinijskihsegmenata za svaki karakater.
-
48
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
GRAFIKI ULAZI
Kao to je ranije napomenuto, grafiki program e modatrebati da prihvati grafike elemente kao take, linije,poligone, kao ulaze pored brojeva i tekst stringova.Naprimjer, korisnik koji je htjeo da izrauna povrinupoligona, na displeju, ili da ga skalira , treba da na nekinain specificira poligon koji ga interesuje , medju svimostalim grafikim elementima na displeju.
Dva tipa fizikih uredjaja se koriste za specifikacijugrafikog ulaza: lokator i dugme ( button). Lokator prenosinjegovu lokaciju, ili odgovarajuu lokaciju kurzora, nagrafiki program. Dugme prenosi akciju korisnika, on i off,na tekuoj lokaciji kurzora. Mi, koji je najpopularniji grafikiulazni uredjaj danas, je uradjaj sa obadvije ove funkcije.
Kotrljajua kugla ( tracking ball) takodjer djeluje kao lokator,a tasteri na njoj djeluju kao dugme.
-
49
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Tip ulaza koji obezbjedjuje grafika ulazna jedinica se moe
karakterizirati sa tri moda: sampliranje, zahtjev, i uzimanje (
picking). Modul sampliranja kontinualno iitava status,
najee lokaciju, ulaznog uredjaja. Naprimjer, moemo
koristiti u sampling modu da iscrtamo tekst na ekranu
pomjeranjem mia. Kako se mi pomjera, on kontinualno
iscrtava kurzor. U modu zahtjeva ( requesting mode), status
ulaznog uredjaja se ita samo onda kada poaljemo zahtjev,
obino pritiskom na dugme mia. Da bi pojasnili razliku
izmedju moda sampliranja i moda zahtjeva, posmatrajmo
situaciju kada poligon se crta specificirajui svoje vrhove tj.
tjemena ( vertices) grafiki pomou mia. U ovom sluaju, mi
pomjeramo mi sve dok kurzor nije propisno lociran i
pritisnemo dugme da specificiramo tu lokaciju kao tjeme
( verteks ) poligona.
-
50
OSNOVNI KONCEPTI GRAFIKOG PROGRAMIRANJA
Kurzor se pomjera po monitoru kako mi pomjeramo mi, dok
koristimo mi u modu samplovanja. Time, lokacija svakog
verteksa je obezbjedjena za grafiki program, kada
koristimo mi u modu zahtjeva. Ova dva moda imaju jednu
zajednikiu osobinu: Oni isporuuju lokaciju mia ili
odgovarajuu lokaciju kurzora ka grafikom programu.
Medjutim u modu uzimanja ( picking mode), grafiki ulazni
uredjaj identificira grafiki element na koji kurzor poentira,
kada se pritisne dugme mia. Mi moemo identificirati
grafike elemente po imenima doznaenim od strane
grafikog programera, kada su elementi bili programirani.
Mod uzimanja je vrlo pogodan nain editiranja postojeeg
crtea na ekranu ( tj. za brisanje nekih poligona ili promjenu
nekih graninih linija poligona ).