Osnovni koncepti grafičkog programiranja
Mašinski fakultet Mostar, juni 2013.
OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
BASIC CONCEPTS OF GRAPHICS PROGRAMMING
Amir Hadarević
Mašinski fakultet
Ključne riječi:
grafičko programiranje, transformacije, koordinatni sistemi, X Window.
SAŽETAK:
Programiranje koje kreira grafički prikaz na ekranu monitora, predstavlja suštinski dio CAD / CAM / CAE softvera.
Termin kompjuterskog programiranja se koristi kada se misli na pisanje kompozicije koristeći neke kompjuterske
komande u skladu sa unapred određenom gramatikom. Grafika softvera se može predstaviti kao upravljački program
i grafička biblioteka. Za prikazivanje slike nekog objekta potrebna su dva osnovna zadatka a to su određivanje
lokacije svih tačaka objekta u prostoru i utvrđivanje koje lokacije na ekranu zauzimaju određene tačke. Interakcija
sa korisnikom kroz grafičke ulaze je bitna sposobnost postojećih CAD/CAM/CAE softvera. Softver koji bi trebao
imati mogućnost za otvaranje prozora, za prikazivanje menija ili ikona, i za definisanje zadataka koji će biti korišteni
za svaki meni i ikonu se zove graphical user interface ( grafički korisnički interfejs ) ili jednostavno GUI. X window
sistem omogućuje programu da otvori i zatvori windows na raznim radnim stanicama koje su priključene na mrežu.
Keywords:
graphics programming, transformacion, coordinate systems, X Window.
ABSTRACT:
Programming that creates a graphics display on a display monitor is thus an essential part of CAD/CAM/CAE
software. The term computer programming used to mean writing a composition by using some computer commands
in compliance with a predetermined grammar. Graphic software can be shown as an managing programm and
graphic library . For showing image of some objects we need two basic tasks , that are defining location of all points
of an object and defining wich locations on screen have some points . Interaction with user trough graphics input is
very important abiliti of CAD/CAM/CAE softwares . Software that should have posibility to open window, to show
menu or icons, and for defining tastks , will be used for each menu and icon its called graphical user interface or
GUI. X windows system allows programm to open and close windows on different workstations that are connected to
network.
1. UVOD
Interaktivni oblik manipulacije igra glavnu ulogu kod CAD / CAM / CAE sistema. Programiranje koje
kreira grafički prikaz na ekranu monitora, predstavlja suštinski dio CAD / CAM / CAE softvera. Zato
treba razmotriti neke od terminologija i neke koncepte koji su osnova za programiranje grafike.
2. OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA
2.1. Grafičke biblioteke
Termin kompjuterskog programiranja se koristi kada se misli na pisanje kompozicije koristeći neke
kompjuterske komande u skladu sa unapred određenom gramatikom. Kompozicija generiše željene
brojeve i slova na kraju ili u data fajl kada je ulaz izveden u obliku brojeva ili slova.
Amir Hajdarević – Osnovni koncepti grafičkog programiranja
Mašinski fakultet Mostar, juni 2013.
2
Danas, međutim nije neobično za sistem, da pored ulaza sa brojevima i znakovima prihvati i grafičke
informacije kao ulaz, i da nam da grafički prikaz izlaza. Aktivnost koja uključuje grafiku kao ulaz i izlaz
se zove grafičko programiranje, i oblast vezana za to se zove kompjuterska grafika. Pored osnovnog
softver-operativnog sistema i editora koji su nam potrebni za konvencionalno programiranje, mora imati
neki osnovni grafički softver koji je potreban za grafičko programiranje. Grafika softvera se može podeliti
u dvije grupe:
-
upravljački program i
-
grafičke biblioteke.
Upravljački program se može smatrati kao skup mašina, odnosno zavisnih kodova koji direktno kontrolišu
sistem za obradu grafičkog uređaja. Tako na primjeru drajvera, prikaz procesorskih jedinica od jednog
grafičkog uređaja radi sa određenim uređajem drajvera.
To je analogno načinu na koji jedna vrsta mašinskog programskog jezika može razumjeti naredbe samo od
određene vrste računara i programa napisanog u tom programskom jeziku i može biti izvršena samo na
tom tipu računara. Ista stvar se dešava kada je grafički program direktno napisan sa drajvera nekog
uređaja, kao što je prikazano na slici 1. To je dakle grafički program koji mora biti prepisan u
odgovarajućim upravljačkim programima uređaja kada hoćemo da koristimo drugi grafički uređaj. Osim
toga, svaka upravljačka komanda ima samo primitivnu sposobnost, te će zbog toga grafički program koji
je napisan sa takvim komandama biti veoma dug. Kao rezultat toga je program sa lošom čitkosti.
Programeri sve više teže da pišu programe na jezicima višeg nivoa. Grafičko programiranje mora da bude
u korak sa vremenom. Tako se opremanje grafičkog uređaja sa bibliotekom zove grafička biblioteka.
Grafička biblioteka predstavlja skup potprograma, od kojih svaki ima specifičnu namjenu. Na primjer,
potprogram može da nacrta liniju ili potprogram može da nacrta krug. Grafička biblioteka je izgrađena na
vrhu uređaja drajvera, kao što je prikazano na slici 2. Svaki potprogram se kreira pomoću skupa komandi
određenog uređaja. Na primer, potprogram za crtanje kruga može da se sastoji od niza uređaja za crtanje
linija. Podprogrami jedne grafičke biblioteke mogu da se koriste na potpuno isti način kao i matematička
biblioteka, za koju je neophodno da se potprogram poziva iz glavnog programa, kao što se funkcije sinusa
i kosinusa iz matematičke biblioteke pozivaju kada su potrebne vrijednosti ovih funkcija. Jedan od
problema sa potprogramima u grafičkoj biblioteci je da se njihova imena i način na koji se zovu (npr,
ulazni i izlazni argumenti) razlikuju za svaku drugu grafičku biblioteku. To nije problem ako se grafika
biblioteka može da prikaže za sve postojeće grafičke uređaje, ova tvrdnja je teoretski moguća ako svi
postojeći upravljački programi podržavaju grafičku biblioteku. Međutim, iz praktičnih razloga proizvođači
softvera ne mogu ili ne žele da razviju grafičku biblioteku koja se može povezati sa svim upravljačkim
programima i na taj način sve grafičke biblioteke su ograničene određenim brojem različitih uređaja.
Slika 2.1. Vrsta grafičkog programiranja koja koristi direktno upravljački programski uređaj
Slika 2.2. Vrsta grafičkog programiranja koja koristi grafičku biblioteku

Amir Hajdarević – Osnovni koncepti grafičkog programiranja
Mašinski fakultet Mostar, juni 2013.
4
Slika 2.3. Uređaj za koordinatni sistem
Razmotrimo sada koordinatne sisteme koji definišu mjesto održavanja tačke u trodimenzionalnom
prostoru.U osnovi postoje tri takva koordinatna sistema: svjetski koordinatni sistem, koordinatni sistem
modela i koordinatni system za pregled. Svjetski koordinatni sistem je referentni koordinatni sistem koji
se koristi da opiše ono što u stvarnom svijetu izgleda, kao što mu ime govori (npr. koje vrste objekata
postoje u svijetu i kako se oni nalaze). Na primjer, ovaj sistem može da se koristi za opisivanje lokacije i
orijentacije klupe, stolice i table, ako je svijet u kome imamo interes učionica. Sada moramo da opišemo
oblik svakog objekta u tom svijetu. Oblik nekog objekta definisana je koordinatama svih tačaka ili nekih
karakterističnih tačaka na objektu u odnosu na koordinatni sistem vezan za objekat. Ovaj koordinatni
sistem se naziva koordinatni sistem modela. Koordinate tačaka na objektu definisane u odnosu na svoj
model u koordinatnom sistemu ne mjenjaju svoje vrijednosti čak i kada objekat bude preveden ili rotiran u
prostoru, ali se određuje isključivo oblik objekta. To jest koordinatni sistem modela se kreće sa svojim
predmetom. Zato, oblik svakog objekta je definisan u odnosu na sopstveni model u koordinatnom sistemu.
Relativna lokacija i orijentacija dva koordinatna sistema definisani su matricama transformacije, što
objašnjavamo u poglavlju 2.7. Koordinate svih tačaka objekata mogu se dobiti u svjetskim koordinatama
nakon primjene povezane transformacione matrice. Sljedeći zadatak je da se projekat tog
trodimenzionalnog objekta, ili tačke na objektima, na monitoru projektuju na mrežnjaču ljudskog oka.
Obično se koriste dvije vrste projekcije za kompjuterske grafike, projekcija perspektive i paralelna
projekcija, što je prikazano na slici 4.
Slika 2.4. Dva tipa projekcije a) projekcija perspektive i b) paralelna projekcija
Amir Hajdarević – Osnovni koncepti grafičkog programiranja
Mašinski fakultet Mostar, juni 2013.
5
Za obe vrste projekcije, moraju biti definisana gledišta. Gledištem se smatra oko posmatrača. Pogledna
strana je tačka na objektu, definiše pravac gledanja tako da vektor usmjeren od stanovišta do pogledne
strane postaje pravac gledanja. U projekciji perspektive su sve tačke na predmetu povezane sa centrom
projekcije. Ekran se nalazi između gledišta i pogledne strane, i linije koje daju sve tačke na ubjektu u
pravcu gledanja čine sliku koja se projektuje na ekranu. Slično kao kod projekcija perspektive, i kod
paralelne projekcije ekran je orijentisana normala na pravac projekcije za ortogonalne projekcije. Kada je
koordinatni sistem definisan i sve koordinate tačke na objektu , slijedeći zadatak jeste da izračunamo
lokaciju njenih projekcija na ekranu. Na primer, projekcija tačke u paralelnoj projekciji, može se uz
jednostavno prikupljanje X i Y vrednostima odgovarajućih tačaka na objektu. Tako Xv, Yv i Zv
koordinatni sistem naziva se koordinatni sistem gledanja jer olakšava gledanja projekcija. Pregled
koordinatnog sistema je konstruisan tako da ima sledeće karakteristike.
Kao što je prikazano na slici 4, pogled na koordinatni sistem se nalazi na poglednoj strani, Z osa ukazuje
na aspekt originala, a Yv osa je paralelna sa vertikalnim smjeromm na ekranu. Preostala osa, Xv je
uslovljena unakrsnim proizvodom osi Yv i Zv. Većina ljudi prirodno vide vertikalni pravac u prostoru
tako da on bude vertikalno na ekranu, pa Yv osa se smatra da je projekcija vertikalnog vektora u prostoru
na ekran. U većini grafičkih biblioteka, korisnici trebaju da daju ovaj vertikalni vektor u prostoru, on se
naziva vektor u svjetskim koordinatama. Gledišta su također navedena u svjetskim koordinatama, kako je
prikazano na slici 5. Nakon pogleda na koordinatni sistem on je definisan, i sve koordinate tačke na
predmetu interesovanja izvedene su u odnosu na taj koordinatni sistem, sljedeći zadatak je da se izračuna
položaj svojih projekcija na ekranu. Mi već znamo da se projekcije tačke mogu lako izvesti za paralelne
projekcije. Zato nam je potrebno samo da opišemo postupak za izračunavanje projekcija tačke za
perspektivu projekcije. Razmotrimo gornji i bočni pogled sa slike 4 (a), kao što je prikazano na slici 6.
Tačka koja nas interesuje je označena sa ●, i njegove koordinate u odnosu na koordinatni sistem gledanja
su označeni Xv, Yv i Zv.
Slika 2.5. Tačka pogleda i mjesto pogleda

Amir Hajdarević – Osnovni koncepti grafičkog programiranja
Mašinski fakultet Mostar, juni 2013.
7
Slika 2.7. a) Prozor i pogled za paralelnu projekciju b) Prozor i pogled za perspektivnu projekciju
Ovaj pogled nam može dati komplikovanu sliku kada se projecira zato što može sadržavati nepotrebne
objekte. I ako je ponekad moguće odsjeći taj pogled pomoću bliže i dalje površine, kao što je prikazano na
slici 8. Dalja i bliža površina za paralelnu projekciju su definisane slićno. Pogled na ulaz je područje na
ekranu monitora gdje želimo da nam se slika prikaže kao što je to dato na slici 9. To je područje na koje
pozicioniramo sliku. Poziciniranje sadrži translaciju i skaliranje. Drugim riječima Xs i Ys vrijednosti
tačaka projekcije koje smo dobili iz formula 1 i 2 moraju biti povećane ili smanjenje za odredjenu
vrijednost, tako da se centar prozora nalazi u centru pogleda.
Slika 2.8. Bliža i dalja površina
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti