OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA Interaktivna manipulacija oblikom igra glavnu ulogu u CAD/CAM/CAE sistemima. Programiranje koje kreira

Like dokumenter
1 REALNE FUNKCIJE REALNE VARIJABLE

Ord og begreper. Norsk Morsmål: Tegning (hvis aktuelt)

Kartlegging av leseferdighet Trinn 2 og 3 på bosnisk

Strukture. Strukturirani (složeni) tip podataka koji definiše korisnik. Razlike u odnosu na niz

1. DHB-E 18/21/24 Sli art ELEKTRONIČKI PROTOČNI GRIJAČ VODE

Programiranje 1 grupno spremanje (zadaci) datoteke

Neprekidne funkcije nestandardni pristup

ALUMINIJSKE VODILICE ZA ODJELJIVANJE PROSTORA

4. Grafič ke funkčije

Kako dostaviti logo. USBnet. Powered by

Zadatak 1 strukture (C110) P2: Jedanaesta nedelja Strukture i liste. Strukture na jeziku C (2) Strukture na jeziku C (1)

Sveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 04. Zvonimir Bujanović Slaven Kožić Vinko Petričević

Riješeni zadaci: Funkcije

do minimalno 8 kreativnih objava mjesečno Povlaštena cijena nakon završetka akcije: 900,00 kn

Primena računara u fizičkoj hemiji. Profesor: Miloš Mojović Asistent: Aleksandar Ignjatović

Uvod u web dizajn i obrada slike

1 - Prvi deo upitnika

Uvod u Veb i Internet tehnologije HTML

Likovna umjetnost umjetnost, matematika i algoritmi

FRACTAL d.o.o. Elektrotehnički i informatički inžinjering i konzalting Kupreška 37, SPLIT. PowerCAD 4.1

Složeni tipovi podataka

Izmena i dopuna konkursne dokumentacije

Objektno orijentisano programiranje 2. Tipovi podataka u C#

PC i multimedija 3. deo: Audio

MINIMARK stampac za industrijsko obelezavanje

VERTIKALNA POLARIZACIJA

PROJEKTOVANJE SOFTVERA

DO ŽIV LJA JI HAK L BE RI JA FI NA

Eksamen FSP5822/PSP5514 Bosnisk nivå II Elevar og privatistar / Elever og privatister. Nynorsk/Bokmål

FIL FILOZOFIJA. Ispitna knjižica 2 FIL.25.HR.R.K2.12 FIL IK-2 D-S025. FIL IK-2 D-S025.indd :31:00

TERMINSKI PLAN RADNO VREME VOJVOĐANSKE BANKE ZA PRIJEM I IZVRŠENJE NALOGA PLATNOG PROMETA

Tru64: Uvod - alati i naredbe. Dinko Korunić, InfoMAR d.o.o. v1.2, travanj 2006.

Univerzitet u Nišu Elektronski fakultet Katedra za Elektroniku SEMINARSKI RAD

Činjenice o hepatitisu A, B i C i o tome kako izbjeći zarazu

M-BOX INTELIGHT Inteligentno osvetljenje

Matematičke metode u kemiji Numeričke metode u kemiji

MODIFIKACIJE METODA MATEMATIČKOG PROGRAMIRANJA I PRIMENE

SINUS M -VARIABLE FREQUENCY DRIVE- UPUTSTVO ZA INSTALIRANJE I PROGRAMIRANJE

Sustavi za rad u stvarnom vremenu

Projekat EUROWEB+ Ovo je program namenjem isključivo razmeni, a ne celokupnim studijama.

Topografske karte. Dr. sc. Aleksandar Toskić, izv. prof.

OLE for Process Control

TOPLINSKA CRPKA ZRAK-VODA

nastri adesivi adhesive tape collection

Neko kao ti. Sara Desen. Prevela Sandra Nešović

Nr. 11/238 EØS-tillegget til Den europeiske unions tidende KOMMISJONSFORORDNING (EU) nr. 605/2014. av 5. juni 2014

... DIFERENCIJALNA ... ~ = ~(t) = x(t)i + y(t)3 + z(t)~, u trodimenziona1nom euk1idbkom probtoru krlva zadata. s=f ds=f v'x 2 +y2+i2 dt.

SETNINGER OG SETNINGSLEDD REČENICE I DELOVI REČENICE

Glasilo Hrvatske Provincije Sv. Jeronima Franjevaca Konventualaca

BOSANSKI LCD TV UPUTSTVA 0516MTH-VT-VT

MONTAŽA I SERVISIRANJE RAUNARA

Eksamen FSP5819 Bosnisk I PSP5512 Bosnisk nivå I. Nynorsk/Bokmål

FIZIČKO-TEHNIČKA MERENJA: MERENJE POLOŽAJA, POMERAJA I NIVOA

2018 AKCIJA TRAJE DO:

Mašina za sušenje Priručnik za korisnika Tørretumbler Brugermanualen Tørketrommel Brukerhåndboken DCY 7202 YW _SB/

Prije uporabe Sigurnost...1 Važne napomene...1. Tablet FISKAL1... 2

902/961/971/974 Elektronski upravljač za rashladne sustave

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU PROGRAMIRANJE 2 MATERIJALI ZA PRIPREMU ISPITA. verzija:

VOLKSWAGEN Golf V (1K) V TDi (AZV) Motor -> Priručnik za popravak -> Remen razvodnog mehanizma: uklanjanje/postavljanje

1. Mikrokontroleri. Sl.1.1 Detaljni blok dijagram mikroracunarskog sistema

/* Adresu promenjive x zapamticemo u novoj promeljivoj. Nova promenljiva je tipa pokazivaca na int (int*) */ int* px;

Prevela Ta nj a Mi lo s a v lj e v ić

Hilja du ču de snih sunac a

ZADACI ZA KVALIFIKACIONI ISPIT IZ HEMIJE. 1. Napišite elektronsku konfiguraciju broma, čiji je atomski broj Z= 35.

SECURIT table za pisanje kredom TABLE STONE ZA PISANJE KREDOM ILI KREDA MARKEROM...

Rasim_1:knjiga B :54 Page 1

PRIRUČNIK O UPOTREBI SLOBODNOG SOFTVERA U UMETNIČKOM MUZIČKOM RADU

BOSANSKI LCD TV UPUTSTVA 0716MTH-VT-VT

guttagliss prozirni umjetni materijali za razne namjene

Bluetooth autoradio MEX-BT3800U. Uputstvo za upotrebu (1) Za isključenje demonstracionog (DEMO) prikaza, pogledajte str. 7.

ZBIRKA PRAKTIČNIH RADOVA IZ KOMPLETA DIJELOVA MT- radio

Poslovanje Centri izvrsnosti za poslovnu podrπku

Seme rađa Novi Sad, Radnička 30a Tel: 021/ ; Fax: 021/ Godina V Broj januar 2016.

Uvod u web programiranje: Uvod u HTML

CJENIK POŠTANSKIH USLUGA U MEĐUNARODNOM PROMETU PRIMJENA OD GODINE

ZP120N Online UPS VISOKA GUSTOĆA ENERGIJE ODLIČNE PERFORMANSE FLEKSIBILNOST VISOKA EFIKASNOST, NISKA TEMPERATURNA DISIPACIJA DUGE AUTONOMIJE

MATLAB matrični laboratorij Interaktivni alat (kalkulator), programski jezik, grafički procesor

Činjenice o HIV u i aidsu

VEIT Škola peglanja: Tehnika peglanja [7.1 METODE MEDJUFAZNOG PEGLANJA MEDJUFAZNO PEGLANJE = RASPEGLAVANJE ŠAVOVA

56. TAKMIČENJE MLADIH MATEMATIČARA BOSNE I HERCEGOVINE

"FITIŠ - JU" d.o.o Centrala NK-700. Uputstvo za rukovanje. Protivpožarnom centralom serije NK-700

NORSK ALFABET (Norveška azbuka)

Katalog fronti - kuhinje

1. 0BLINEARNE STRUKTURE PODATAKA

L A TEX Sage i SageTEX

REPUBLIKA HRVATSKA. ZAGREBAČKA ŽUPANIJA Ulica grada Vukovara 72/V Zagreb

S A D R Z A J U V O D UVOD. 01. Problem greha. 02. Bozja spasonosna ljubav. 03. Definicija jevandjelja. 04. Hristos nasa Zamena

Univerzitet u Novom Sadu. Fakultet tehničkih nauka PC MAGISTRALE LPRS2

FUŠ Film u školi vam predstavlja film ČAROBNO SREBRO. (Julenatt i Blåfjell / Magic Silver, r. K. Launing i R. Uthaug)

Sadržaj ECKERMANN, BROJ 1

Prije uporabe Sigurnost...1 Važne napomene...1. Sadržaj pakiranja FISKAL1 paketa...2 Tablet FISKAL1...2 Izgled tableta FISKAL1...

Korisnički priručnik. Modena E501

BESPREKIDNA NAPAJANJA: TIPOVI, TOPOLOGIJE i KOMPONENTE

Osiguranje kotlova i strojeva

Skriveni blagoslov. Kao što svi znate, skoro smo se vratili kući sa jednog

Život na selu. CL Country Living (1946) Ellen G. White

BAŠTENSKI PROGRAM. SMM RODA COMPANY d.o.o.

0.1. PREDMJER NABAVKE ROBA I ELEKTRO RADOVA JAKE I SLABE STRUJE ZA OPREMANJE CENTRA ZA ODBRANU OD POPLAVA U OKVIRU ISV-a

Ako ste ikada zamišljali opsadu Ilija, kao što sam to ja činio profesionalno više od dvadeset godina, moram vam reći da vaša predodžba vrlo

Za sinagogu sam vezan muzikom

Transkript:

Interaktivna manipulacija oblikom igra glavnu ulogu u CAD/CAM/CAE sistemima. Programiranje koje kreira grafički displej na displej monitoru je dakle bitan dio CAD/CAM/CAE softvera. Dakle, mi treba da analiziramo terminologiju i koncepte koji su u osnovi grafičkog programiranja. Grafičke biblioteke Termin računarsko programiranje je korišten da označi pisanje kompozicije koristeći neke računarske komande u saglasnosti sa prethodno definiranom gramatikom. Kompozicijaće generisati odgovarajući niz željenih brojeva i karaktera na terminalu ili u data fajlu, kada se izvrši sa unosom odredjenog broja karaktera. Danas, pak, nije neoubićajeno za programsku kompoziciju, osim što radi sa brojevima i karakterima, da prihvata grafičke informacije kao ulaz i proizvede grafički displej kao izlaz. 1

Aktivnost koja uključuje grafiku kao ulaz i izlaz se naziva grafičko 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 grafički softver je potreban za grafičko programiranje. Grafički softver se može podjeliti u dvije grupe: drajveri uredjaja ( device drivers) i grafičke biblioteke. Drajver uredjaja se može posmatrati kao dio programskog koda zavisnog od tipa računara koji direktno kontrolira procesnu jedinicu displeja, grafičkog 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 specifičnu procesnu jedinicu displeja. 2

Dakle procesna jedinica displeja grafičkog uredjaja radi sa specifičnim drajverom uredjaja. Ovo je analogno načinu na koji jedan tip asamblerskog jezika se može razumjeti samo od strane specifičnog tipa računara a program napisan u tom asamblerskom jeziku se može izvršiti samo na tom tipu računara. Ista se stvar dešava kada grafički program se piše direktno sa drajverom uredjaja, kao što to prikazuje slijedeća slika. To znači da grafički program treba biti ponovno napisan sa komandama odgovarajućeg drajvera uredjaja kada se koristi različit grafički uredjaj. Nadalje, svaka komanda drajvera uredjaja ima samo primitivne mogućnosti, tako da program koji je napisan sa tim komandama bi bio vrlo dugačak ako bi trebao da izvršava bilo kakav realan zadatak. To bi rezultiralo u programu sa slabom čitljivošću ( readability). 3

Programeri danas žele da pišu programe u jezicima visokog nivoa. Pri tome ni grafičko programiranje ne može biti izuzetak, naročito kada se uzmu u obzir neprilike prouzrokovane korištenjem komandi niskog nivoa za drajvere uredjaja. Tip grafičkog programiranja sa direktnim korištenjem drajvera uredjaja 4

Zbog toga je uspostavljena opšta praksa da se opremi grafički uredjaj sa bibliotekom koja se naziva grafička biblioteka ( graphics library). Slićno kao i matematska biblioteka (math library) kod konvencionalnog programiranja, grafička biblioteka je skup subrutina, svaka od kojih ima neku specifičnu namjenu. Naprimjer, subrutina može crtati liniju ili krug. Grafićka biblioteka se gradi na vrhu drajvera uredjaja, kao što je prikazano na narednoj slici: Tip grafičkog programiranja sa korištenjem grafičke biblioteke 5

Svaka subrutina je kreirana korištenjem podržavajućeg seta komandi drajvera uredjaja. Naprimjer, subrutina za crtanje kruga može biti komponovana od serije komandi drajvera uredjaja koje crtaju kratke pravolinijske segmente. Subrutine grafičke biblioteke se mogu koristiti na potpuno isti način 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 grafičkoj biblioteci je da njihova imena i način na koji se pozivaju (napr, ulazni i izlazni argumenti), variraju za svaku grafičku biblioteku. Ovo ne mora biti problem ako jedna grafička biblioteka može voditi sve postojeće grafičke uredjaje: ovaj aranžman je teoretski moguć ako svi drajveri postojećih uredjaja podržavaju grafičku bibloteku. 6

Medjutim, zbog praktičnih razloga softverski vendori ne mogu ili ne žele da razvijaju grafičku biblioteku koja može da se interfejsira sa svim drajverima uredjaja, tako da su sve grafičke biblioteke vezane samo sa ograničenim brojem grafičkih uredjaja, i kao rezultat toga, grafički program možda mora biti ponovno napisan sa drugom grafičkom bibliotekom, ako se koristi mnogo tipova grafičkih uredjaja. Jedan od načina prevazilaženja ovog problema bi bio za one koji razvijaju grafičke biblioteke da koriste isti skup subrutina sa istim imenom, argumentima i mogućnostima ( u praksi je pak svaka subrutina implementirana sa skupom komandi drajvera uredjaja koji su nezavisno izabrani od strane svakog razvojnog inženjera koji piše program). Na ovaj način, grafički programi ne bi morali biti modificirani na izvornom ( source) nivou, čak i kada se promjeni grafički 7 uredjaj.

Jedan primjer ovakvog pristupa je bio CORE grafički sistem predložen 1977 od strane Specijalne interesne grupe za kompjutersku grafiku ( Special Interest Group on Computer Graphics- SIGGRAPH), u okviru udruženja za računarske mašine ( Assosiation for Computing Machinery ACM ). Medjutim CORE grafički sistem nije obezbjedivao dovoljno komandi da bi se koristile sve mogućnosti raster grafičkih sistema, pošto ovi sistemi još nisu bili dovoljno razvijeni kada je CORE razvijen. Grafički 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 proširen na GKS-3D za trodimenzionalnu grafiku. I CORE i GKS imaju neke nedostatke u odnosu na podršku 8

za dinamičke displeje kao i raznovrsne tipove korisničkih interfejsa. Zbog toga je ISO sugerisao drugi standard : Programerski hijerarhijski interaktivni grafički sistem ( Programmer s Hierarchical Interactive Graphics System PHIGS), koji je postao de facto standardna grafička biblioteka za većinu radnih stanica. Kasnije PHIGS je bio proširen da postane PHIGS Extension to X ( PEX), uključivanjem X prozora ( X Windows) sistem za rad u okviru prozora ( tj., kreiranje, manipulisanje, i zatvaranje prozora). Odatle, grafički programi pisani u PEX-u se mogu koristiti nezavisno od tipa radnih stanica i mrežnog okruženja, beneficija koja je naslijedjena od X Windows sistema. Razvijen nezavisno od organizacija za standadizaciju, pojavio se kao komercijalna grafička biblioteka, OpenGL, koja postaje sve popularnija, zbog raznovrsnosti jer može da 9

drajvuje i inženjerske radne stanice kao i personalne računare ( pod Windows NT OS ), i u mrežnom okruženju. OpenGL je proširenje od GL, koja je bila vlastita grafička biblioteka mašina Silicon Graphics. Zbog popularnosti Sun mašina u računarskim aplikacijama, OpenGL je postao defacto standardna grafička biblioteka. KOORDINATNI SISTEMI Dva osnovna zadatka koja se zahtjevaju da bi se prikazala slika objekta na grafičkom uredjaju su : 1) specificiranje lokacije svih tačaka objekta u prostoru, i 2) odredjivanje koje lokacije na displej monitoru se trebaju zaposjesti od strane ovih tačaka. Dakle, nužan je koordinatni sistem da obezbjedi referencu za specificiranje lokacije tačke i u prostoru i u monitoru. 10

Razumjevanje relacija izmedju različitih koordinatnih sistema je bitno, naročito u računanju gdje je trodimenzionalna tačka projektovana na displej monitor. Projekcija se pojavljuje na isti način kao što se i slika projektuje na retinu oka posmatrača. Jedan koordinatni sistem je koordinatni sistem uredjaja ( device coordinate system), koji se koristi kao referentni u definiranju lokacije na displej monitoru. Općenito, koordinatni sistem uredjaja uključuje u osu u horizontalnom pravcu i v osu u vertikalnom pravcu, kao što je prikazano na narednoj slici. Primjetimo da se početak koordinatnog sistema može proizvoljno izabrati. Nadalje, treča osa, okomita na u i v ose, nije definirana pošto 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 11

cjelobrojne vrijednosti, koje daju broj piksela koje stoje izmedju početka koordinatnog sistema uredjaja i lokacije od interesa u u i v pravcima. Medjutim, ista lokacija na monitoru može imati različite u i v vrijednosti, zavisno od lokacije koordinatnog početka, zatim smjera u i v ose, i opsega u i v vrijednosti za cijeli monitor: ove se mogu arbitrarno postaviti za svaki različiti grafički uredjaj, kao što je pokazano na narednoj slici. Zbog toga, koordinate uredjaja koje se koriste u grafičkom programu možda moraju biti promjenjene ako ista slika se mora iscrtati u različitim grafičkim uredjajima. Virtualni koordinatni sistem uredjaja ( virtual device coordinate system) izbjegava opisane probleme koordinatnog sistema uredjaja. Virtualni koordinatni sistem uredjaja ima isti početak, iste u i v ose, i isti opseg u i v vrijednosti za sve radne stanice. Riječ virtualni se koristi 12

pošto koordinatni sistem postoji samo u programerskoj imaginaciji. Obićno, ima početak u donjem lijevom uglu monitora, u osa se produžuje u desno, v osa se proširuje prema gore, a opseg vrijednosti u i v je od 0 do 1. Time, tačka specificirana vrijednostima u odnosu na virtuelni koordinatni sistem uredjaja će uvjek zauzimati istu lokaciju nezavisno od tipa grafičkog uredjaja. 13

Kao rezultat toga, grafički programer može specificirati oblik konzistentno bez da mora da razmatra specifični koordinatni sistem uredjaja. U ovom slučaju, znajući koji je grafički uredjaj kontrolisan drajverom, grafički program šalje vrijednosti virtualnih kooridinata na rutinu drajvera uredjaja, koja konvertuje virtualne koordinate u koordinate uredjaja u skladu sa koordinatnim sistemom uredjaja za specifični grafički uredjaj. I koordinatni sistem uredjaja i virtualni k.s. uredjaja obezbjedjuju koordinatne sisteme koji specificiraju lokaciju dvo dimenzionalnog displej monitora. Posmatrajmo sada koordinatne sisteme koji definiraju lokaciju tačke u trodimenzionalnom prostoru. Postoje u osnovi tri takva koordinatna sistema: svjetski koordinatni sistem ( world coordinate system) kojeg ćemo u nastavku nazvati kao vanjski k.s, koordinatni sistem modela ( model coordinate system-mks) i posmatraćev koordinatni sistem 14

( viewing coordinate system- vcs). Svjetski koordinatni sistem ( wcs), je referentni koordinatni sistem koji se koristi da opiše 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 može koristiti da opiše lokacije i orjentacije stolova, stolica, i table u okruženju u kojem je svijet od interesa -učionica. Sada mi treba da opišemo oblik svakog objekta u tom svijetu. Oblik objekta je definiran koordinatama svih njegovih tačaka, ili nekih karakterističnih tačaka na objektu u odnosu na koordinatni sistem vezan uz objekat. Ovaj koordinatni sistem se naziva koordinatni sistem modela (mcs). Koordinate tačaka na objektu definirane unutar k.s modela ne mjenjaju svoje vrijednostičak i kada objekat se translira 15

ili rotira u prostoru, nego su isključivo odredjene oblikom objekta. Dakle, k.s modela se kreće sa objektom. Ovo je razlog zašto 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 riječima, koordinate svih tačaka objekata se mogu dobiti u vanjskim koordinatama nakon primjene pridruženih transformacionih matrica. 16

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 ( UCSuser 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 crteža. UCS se definiše preko WCS. koriste tekući UCS sistem. U praksi svi unosi koordinata Pomjeranje UCS k.s. može olakšati rad na specifičnoj sekciji crteža. Rotacija ucs omogućava da specificiramo tačke u trodimenzionalnim ili rotiranim pogledima: Modovi:Snap, Grid, i Ortho rotiraju u odnosu na novi UCS k.s. 17

Možemo promjeniti lokaciju koordinatnog sistema korisnika koristeći neku od slijedečih komandi: pomjeriti UCS definišući novi koordinatni početak poravnavanjem UCS sa postojećim objektom ili sa tekućim pravcem gledanja. ( viewing direction) Rotacijom tekučeg UCS oko bilo koje od njegovih osa. Restauriranjem pohranjenog UCS. Kada smo definisali UCS, možemo ga imenovati i zatim restaurirati kada ga ponovno budemo trebali. Ako nam više nije porteban imenovani UCS, možemo ga obrisati. Takodjer možemo restaurirati UCS da se poklapa sa WCS. UCS komandi možemo pristupiti ili preko UCS alatne letvice ili preko komande na komandnoj liniji: UCS 18

Nakon izdavanja komande bit će prikazana informacija o koordinatnom pocetku i osama izabranog UCS. Po defaultu, k. početak i vrijednosti za X,Y i Z ose su izračunate relativno u odnosu na svjetski k.s. Da indicira lokaciju i orjentaciju UCS, AutoCAD prikazuje UCS ikonu ili u koordinatnom početku UCS ili u donjem desnom uglu tekučeg porta gledanja ( viewport). Možemo koristiti jednu od tri stila ikona da predstavimo UCS. 19

Koristimo komandu UCSICON da izaberemo izmedju prikaza 2D ili 3D UCS ikone. Koristimo komandu SHADEMODE da prikažemo osjenćenu UCS ikonu. Ako je ikona prikazana u koordinatnom početku tekučeg UCS, pojavljuje se krst (+) na ikoni. Ako je ikona prikazana u donjem lijevom uglu porta gledanja, onda se neće pojaviti krst (+) na ikoni. Ako imamo više portova gledanja ( viewports), svaki port prikazuje svoju UCS ikonu. AutoCAD prikazuje UCS ikonu na različite načine da bi pomogao vizuelizaciji orjentacije ravni crtanja. Na narednim slikama su prikazani prikazi mogućih ikona: 20

Možemo 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 način ikona nas upozorava da ne koristimo miš ili uredjaj koji 21 koristimo za ukazivanje položaja, da bi specificirali

koordinate. Kada koristimo miš kao uredjaj za pokazivanje položaja da lociramo tačku, ona je normalno postavljena na XY ravan. Ako je UCS rotiran tako da Z osa leži u ravni pralelno sa ravni gledanja, tj. Ako je XY ravan okomita sa ivicom prema posmatraču, tada je teško vizuelizirati gdje će tačka biti locirana. U ovom slučaju, tačka će biti locirana na ravni paralelnoj sa ravni gledanja, koja takodjer sadrži koordinatni početak UCS k.s. Naprimjer, ako je pravac gledanja duž X ose, koordinate koje su specificirane sa mišem će biti locirane na YZ ravni, koja sadrži koordinatni početak UCS. Treba koristiti 3D UCS da se vizuelizira na koju ravanće biti projecirane ove koordinate. 3D UCS ne koristi ikonu slomljene olovke. 22

Slijedeći zadatak je da se projektuju ovi trodimenzionalni objekti, ili tačke objekata, na monitor kao što bi se projektovale na retinu ljudskog oka. Dva tipa projekcije perspektivni i paralelni, se tipično koriste kod računarske grafike, kao što je ilustrirano na slijedećoj slici: slika 3.4 Dva tipa projekcije: a) perspektivna b) paralelena projekcija 23

Za obadva tipa projekcije, tačka gledanja ( viewpoint) i lokacija gledanja ( viewsite), trebaju biti specificirani. Tačka gledanja se smatra da je to oko posmatrača. Lokacija gledanja je tačka na objektu, ona definira pravac gledanja tako da vektor koji je usmjeren iz tačke gledanja ka lokaciji gledanja postane pravac gledanja. Kod projekcije perspektive, sve tačke na objektu predmeta od interesa su spojene sa centrom projekcije, obićno lociranim duž linije od lokacije gledanja ka tački gledanja, i tačaka presjeka izmedju ovih linija i ekrana koji sadrži projektovanu sliku. Ekran je lociran izmedju tačke gledanja i lokacije gledanja. Kod paralelne projekcije, paralelne linije se vode iz svih tačaka na objektu u pravcu gledanja definiranom sa lokacijom gledanja, i tačkom gledanja, kao i ranije, te tačaka presjeka izmedju ovih linija i ekrana koji 24 sadrži sliku.

Slićno kao i kod projekcije perspektive, ekran je orjentiran okomito na pravac projekcije za ortogonalnu projekciju. Tačke projekcije opisane u bilo kojem od dva projekciona metoda se mogu lako sračunati ako koordinate tačaka na objektu koji se projektuje, su date u odnosu na x v y v z v koordinatni sistem, kao što je pokazano na prethodnoj slici. Naprimjer, projekcione tačke u paralelnoj projekciji se mogu generirati jednostavno skupljajući X v i Y v vrijednosti odgovarajućih tačaka na objektu. Dakle, x v y v z v koordinantni sistem se naziva koordinatni sistem gledanja ( viewing coordinate system), pošto on olakšava projekciju gledanja. Koordinatni sistem gledanja ( vcs) se konstruira tako da posjeduje slijedeće karkateristike: Kao što je i pokazano na prethodnoj slici, početak vks je lociran u lokaciji gledanja ( vs), osa z 25 v je upravljena ka tački gledanja iz koor. početka

a y v osa je paralelna sa vertikalnim pravcem na ekranu. Preostala osa, x v se odredjuje sa krosproizvodom y v i z v osa. Većina ljudi prirodno primjećuje vertikalni pravac u prostoru kao vertikalni pravac na ekran, tako da se y v osa odredjuje da bude projekcija vertikalnog vektora u prostoru na ekran. Kod većine grafičkih biblioteka, se predostavlja da korisnik gleda ovaj vertikalni vektor u prostor, koji se zove vektor prema vani ( up vector) u vanjskom koordinatnom sistemu ( wcs). Tačka gledanja i lokacija gledanja se takodjer specificiraju u vanjskim koordinatama ( wcs), kao što se može vidjeti na narednoj slici. Kada je koordinatni sistem gledanja (vcs) definiran i izvedene sve koordinate tačaka od interesa na objektu u odnosu na ovakav koordinatni sistem, slijedeći zadatak je 26 da se sračunaju lokacije njihovih projekcija na ekranu.

Tačka gledanja ( viewpoint) i lokacija gledanja ( viewsite ) Mi već znamo da ove projekcione tačke se mogu lako izvesti za paralelnu projekciju. Zbog toga mi trebamo samo da opišemo proceduru da izračunamo projekcione tačke za perspektivnu projekciju. Posmatrajmo poglede odozgo i sa 27 strana na prethodnoj slici kako su prikazani na

narednoj slici. Tačka od interesa je označena sa i njene koordinate u odnosu na vcs su označene sa X v, Y v, i Z v. Izračunavanje projekcione tačke 28

Primjenjujući pravilo sličnosti izmedju trouglova, dobićemo: i U jednačinama ( 3.1 ) i (3.2) X s i Y s su distance projekcije od tačke označena sa Rastojanja su mjerena u horizontalnim i vertikalnim pravcima od ekrana od tačke gdje z v osa presjeca ekran. Dakle L je rastojanje izmedju lokacije pogleda i centra projekcije, a S je rastojanje izmedju centra projekcije i ekrana. Jednačine (3.1) i (3.2) indiciraju da tačka 29

sa većom Z v vrijednošću će imati veće X s i Y s vrijednosti, koje čine da se linija rastojanja pojavljuje manjom nego bliska njoj linija koja ima istu dužinu. Ove distance X s i Y s će biti eventualno konvertovane u koordinate virtualnog uredjaja posmatrajući željenu lokaciju centra i velićinu 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 odgovarajućom transformacionom matricom u odnosu na vanjski koordinatni sistem ( wcs). Koordinatni sistem gledanja ( vcs) se takodjer može definirati sa 30 transformacionom matricom u odnosu na vanjski k.s ( wcs)

Iz date tačke gledanja, lokacije gledanja, i up-vektora specificiranog u wcs koordinatama. Relacije izmedju koordinatnih sistema 31

Procedura za izračunavanje projekcionih tačaka, koristeći transformacione matrice, se može sumirati na slijedeći način: - Prvo, vrijednosti koordinata tačke koja se projecira se konvertuju iz koordinata modela u vanjske koordinate ( wcs) primjenjujući transformacionu matricu koja definira relativnu translaciju i rotaciju izmedju wcs sistema i koordinatnog sistema modela. Ova operacija se naziva transformacija modela i pokazana je na narednoj slici. - Drugo, vrijednosti koordinata iste tačke se konvertuju iz vanjskih koordinata (wcs) u koordinate gledanja primjenjujući transformacionu matricu izmedju vanjskog koordinatnog sistema ( wcs) i koordinatnog sistema gledanja ( vcs), Ova operacija se naziva transformacija tačke gledanja ( viewing transformation), i pokazana je na narednoj slici. - Treče, koordinate gledanja tačke se konvertuju u X s i Y s vrijednosti sa jednačinama ( 3.1) i ( 3.2), i ponovno u virtualni koordinatni sistem. 32

Ova operacija se naziva transformacija projekcije i takodjer je pokazana na narednoj slici. Konačno, koordinate virtualnog uredjaja se konvertuju u koordinate uredjaja od strane rutine drajvera uredjaja što je takodjer pokazano na narednoj slici 33

Ove transformacije se obićno izvršavaju unutar grafičke biblioteke, i grafički 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, tačka 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, grafičke biblioteke primitivnog nivoa mogu zahtjevati od programera da piše kod za sve ove transformacije. 34

Prozor i portgledanja ( viewport) Riječ prozor ( window) korištena u mrežnom okruženju, znači odvojene oblasti na monotoru radne stanice kroz koji korisnik interaktira sa različitim računarskim izvorima spojenim na mrežu. Ipak, riječ prozor ima različito značenje u računarskoj grafici. On definira region u prostoru kojiće biti projektovan na monitor tako da svaki objekat van prozora se neće pojaviti na monitoru. U tom smislu, to je analogno prozoru na kući kroz koji samo dio vanjskog svijeta je vidljiv osobi koja je unutar kuće. Ova analogija izgleda da je razlog zašto je izabrano ime prozor ( window). Prozor se obićno definira kao pravougaonik na projekcionom ekranu sa odgovarajućim X v i Y v vrijednostima u koordinatnom sistemu gledanja, kao što je pokazano na naredne dvije slike. Vidljivi region, koji se naziva volumen gledanja ( viewing volume) 35

zavisi od tipa projekcije ( tj. paralelopiped za paralelnu projekciju i piramida za perspektivnu projekciju ). prozor i volumen gledanja ( viewing volume ) kod paralelne projekcije 36

prozor i volumen gledanja ( viewing volume ) kod perspektivne projekcije 37

Volumen gledanja može dati vrlo komplikovanu sliku kada se projektuje pošto može uključiti nepotrebne objekte vrlo daleko ili blizu posmatrača. Dakle ponekad je poželjno presječi volumen gledanja i sa bliskim i dalekim ravnima, kao što je pokazano na narednoj slici. Bliske i daleke ravni za paralelne projekcije i za perspektivnu projekciju su slično definisani. 38

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 uključiti translaciju i skaliranje da bi se uzeo u obzir otklon centra viewporta od centra monitora i razlike u velićini izmedju prozora i viewporta. 39

Drugim riječima, X s i Y s vrijednosti projekcionih tačaka dobijenih iz jednačina ( 3.1) i (3.2) treba da se povećaju ili smanje za odredjene vrijednosti, tako da centar prozora se pojavi na centru viewporta umjesto na centru monitora. One takodjer treba da budu skalirane sa odredjenim faktorima, tako da četiri granične tačke prozora postanu četiri granične tačke viewporta. Odnos aspekta prozora mora biti isti kao i kod viewporta da bi se izbjegla distorzija lika. Inače bi, naprimjer krug mogao biti prikazan kao elipsa. IZLAZNE PRIMITIVE Izlazne primitive su grafički elementi koji se mogu prikazati pomoću grafičke biblioteke. One mogu biti različite za svaku specifičnu grafičku biblioteku, i samo izlazne primitive podržavane od većine grafičkih biblioteka biće opisane u nastavku ove sekcije. 40

LINIJA Pravolinijski segment se prikazuje kada se specificiraju koordinate njena dva kraja. Trodimenzionalne koordinate krajeva se takodjer mogu koristiti u većini grafičkih biblioteka, gdje se trodimenzionalne koordinate automatski konvertuju u dvodimenzionalne projekcije. Atributi linije kao što su : tip, debljina i boja se takodjer mogu specificirati. Tipovi linija koji su podržani od većine grafičkih biblioteka su prikazani na narednoj slici. Bitno je podržati ove tipove linija kod CAD sistema za crtanje pošto se one često koriste u mašinskim, arhitektonskim i električnim crtežima. 41

Kod GKS, PHIGS i OpenGL, mogućnosti višelinijskih ( polyline ) segmenata se takodjer prisutne, pa se daju krajnje linije polyline u sekvenci kao u narednoj matričnoj formi. Kada samo treba prikazati jedan segment linije, matrica će sadržavati samo koordinate dvije krajnje linije: 42

Poligon Funkcija poligona je ista kao i polyline funkcija izuzev što prvi red i posljednji red tačaka niza [P] trebaju biti iste. Dakle, dobiće se isti grafički izlaz kao i sa polyline funkcijom. Medjutim, poligon nacrtan funkcijom poligona nosi i unutarnju i vanjsku informaciju, i njegova unutrašnjost se može ispuniti sa uzorcima ( paternom )kao oni koji su prikazani na narednoj slici. 43

Pored tipova ispune koji su pokazani, takodjer i unutarnja boja poligona ( boja ispune) kao i tip, širina i boja perimetra se može takodjer specificirati kao atributi poligona. Mada i krug kao i poligon se mogu nacrtati sa funkcijom poligona, funkcije koje traže mnogo manje ulaznih parametara ( napr. samo centralnu tačku i radius za krug i dvije krajnje tačke i dijagonalu za pravougaonik) i raspoložive su u većini grafičkih biblioteka. Medjutim, interno, ove funkcije se realizuju sa poligonalnim funkcijama. Marker Markeri se obićno koriste da diferenciraju tačke podataka u grafu. Naredna slika pokazuje karaktere koji su na raspolaganju u većini grafičkih biblioteka. 44

. OSNOVNI KONCEPTI GRAFIČKOG PROGRAMIRANJA Tipovi markera se specificiraju kao atribut. Slićno kao i segment linije, polimarker je defaultni i u GKS i PHIGS grafickim bibliotekama. OpenGL ne podržava markere eksplicitno, ali obezbjedjuje mehanizam pomoću kojeg se svaki marker može definirati u bitmapi i pozvati kada je potrebno. Na ovaj način, grafički program napisan u OpenGL ima mnogo bolju portabilnost kroz različite hardverske paltforme. primjeri markera 45

Tekst U većini grafičkih biblioteka podržana su dva tipa teksta: anotacioni tekst ( ekranski tekst ili dvodimenzionalni tekst )i trodimenzionalni tekst. Anotacioni tekst je uvjek lociran na ravni displej monitora tako da njegov oblik se ne deformiše bez obzira na njegovu orjentaciju. Trodimenzionalni tekst se može postaviti u bilo koju ravan, i time njegova lokacija i orjentacija su specificirani u vanjskim koordinatama ( wcs). Bez obzira na vrstu teksta, font, zatim odnos visine prema širini, 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 takodjer moraju specificirati. Mogu se koristiti dvije vrste karakter fontova u tekstu: hardverski fontovi i softverski fontovi. Softverski font se prikazuje izvršavanjem odgovarajućih grafičkih programa koji su unaprijed pohranjeni. 46

Softverski font treba duže vremena nego hardverski da se izvrši, ali je njegov oblik mnogo više rafiniran nego kod hardverskog fonta, koji se pohranjuje kao set pravolinijskih segmenata za svaki karakater. 47

GRAFIČKI ULAZI Kao što je ranije napomenuto, grafički program će možda trebati da prihvati grafičke elemente kao tačke, linije, poligone, kao ulaze pored brojeva i tekst stringova. Naprimjer, korisnik koji je htjeo da izračuna površinu poligona, na displeju, ili da ga skalira, treba da na neki način specificira poligon koji ga interesuje, medju svim ostalim grafičkim elementima na displeju. Dva tipa fizičkih uredjaja se koriste za specifikaciju grafičkog ulaza: lokator i dugme ( button). Lokator prenosi njegovu lokaciju, ili odgovarajuću lokaciju kurzora, na grafički program. Dugme prenosi akciju korisnika, on i off, na tekučoj lokaciji kurzora. Miš, koji je najpopularniji grafički ulazni uredjaj danas, je uradjaj sa obadvije ove funkcije. Kotrljajuća kugla ( tracking ball) takodjer djeluje kao lokator, a tasteri na njoj djeluju kao dugme. 48

Tip ulaza koji obezbjedjuje grafička ulazna jedinica se može karakterizirati sa tri moda: sampliranje, zahtjev, i uzimanje ( picking). Modul sampliranja kontinualno iščitava status, najčešće lokaciju, ulaznog uredjaja. Naprimjer, možemo koristiti u sampling modu da iscrtamo tekst na ekranu pomjeranjem miša. Kako se miš pomjera, on kontinualno iscrtava kurzor. U modu zahtjeva ( requesting mode), status ulaznog uredjaja se čita samo onda kada pošaljemo zahtjev, obićno pritiskom na dugme miša. Da bi pojasnili razliku izmedju moda sampliranja i moda zahtjeva, posmatrajmo situaciju kada poligon se crta specificirajući svoje vrhove tj. tjemena ( vertices) grafički pomoću miša. U ovom slučaju, mi pomjeramo miš sve dok kurzor nije propisno lociran i pritisnemo dugme da specificiramo tu lokaciju kao tjeme ( verteks ) poligona. 49

Kurzor se pomjera po monitoru kako mi pomjeramo miš, dok koristimo miš u modu samplovanja. Time, lokacija svakog verteksa je obezbjedjena za grafički program, kada koristimo miš u modu zahtjeva. Ova dva moda imaju jednu zajedničkiu osobinu: Oni isporučuju lokaciju miša ili odgovarajuću lokaciju kurzora ka grafičkom programu. Medjutim u modu uzimanja ( picking mode), grafički ulazni uredjaj identificira grafički element na koji kurzor poentira, kada se pritisne dugme miša. Mi možemo identificirati grafičke elemente po imenima doznačenim od strane grafičkog programera, kada su elementi bili programirani. Mod uzimanja je vrlo pogodan način editiranja postoječeg crteža na ekranu ( tj. za brisanje nekih poligona ili promjenu nekih graničnih linija poligona ). 50