Download as pdf or txt
Download as pdf or txt
You are on page 1of 52

Univerzitet u Novom Sadu Tehni ki fakultet #Mihajlo Pupin$ Zrenjanin

Prof. dr Ivana Berkovi%

Ra unarska Grafika
izvodi sa predavanja -

Zrenjanin, 2004.godina

Kompjuterska ili ra unarska grafika


Edward Angel, Compuer Graphics: Jedna slika vredi vi! e od 1000 re$i& va' i kao i pre 100 godina. Grafika je stara kao i ra$unarstvo. Kompjuterska ili ra$unarska grafika je disciplina koja se bavi svim aspektima primene ra$unara za generisanje slika, kao ! to su: Hardver (displeji, ploteri, fizi$ke radne stanice) Algoritmi za generisanje linija Softver koji koriste programeri grafi$kog sistema i aplikacija Aplikacije kompjuterski generisanih slika.

Primene ra$unarske grafike su ! iroke: Prikaz informacija Nau$na vizuelizacija Dizajn Televizija Film Fotorealizam Simulacije Korisni$ki interfejs Kartografija Mehani$ke metode za izradu crte' a Interaktivna izrada mehani$kih delova (CAD) Izrada (dizajn) VLSI Arhitektura Modeliranje $vrstih tela Molekularno modeliranje Medicinske slike Vizualizacija letenja Kompjuterske igre

Prema ISO re$niku izraza iz oblasti obrade podataka ra$unarska grafika se defini! e kao skup metoda i tehnika za konverziju podataka koji se ! alju ka grafi$kom ekranu ili sa njega a posredstvom ra$unara. Osnovne oblasti primene ra$unarske grafike: Izrada slika (generisanje) Analiza slika (prepoznavanje, $itanje) Obrada slika (retu! iranje, pobolj! anje kvaliteta ili promena sadr' aja)

GKS (Graphical Kernel System) predstavlja osnovni grafi$ki sistem, tj. jezgro sistema za ra$unarsku grafiku.

GKS predstavlja posrednika ra$unarskog sistema.

izme) u

aplikativnog

programa

grafi$ke

opreme

Standrad defini! e odre) enu funkciju, ali ne i na$in njene realizacije. Obezbe) ena prenosivost aplikacija na razli$ite ra$unarske sisteme. Koncept GKS Tri vrste korisnika ra$unarske grafike: Implementatori (realizatori GKS standarda) Programeri aplikacija Korisnici aplikacija

Implementacija GKS sistema funkcije za obavljanje odre) enih grafi$kih operacija realizuje u vidu potprograma ili procedura odre) enog programskog jezika (jezi$ki sloj). Iz aplikativnog programa se mo' e jednim pozivom grafi$ke procedure indirektno pozvati $itav niz potprograma GKS biblioteke iz odgovaraju*eg GKS sloja. Operateri na radnim stanicama pored gledanja slike, kao prikaza rezultata aplikacije upravljaju ure' ajima za unos podataka. Principi na kojima se zasniva GKS sistem: Potpunost , sistem mo' e zadovoljiti najrazli$itije zahteve korisnika u pogledu slika koje treba formirati paketom (nijedna dva zahteva ne smeju biti uzajamno kontradiktorna) Kompatibilnost razli$itih rutina iz paketa (neprotivure$nost) , ne sme se prekr! iti nijedan standard Nezavisnost , nijedna rutina iz biblioteke ne mo' e se zameniti nekom kombinacijom njenih ostalih rutina.

Rezolucija
Pikseli na slici su savr! eni kvadrati. Svaki piksel na ra$unarskoj slici je savr! en kvadrat, na savr! enoj mre' i koji je ravnomerno obojen (svaki piksel je obojen jednom jedinom bojom). I slika na ekranu monitora se sastoji od piksela. Ekranski pikseli su kao i pikseli slike kvadratnog oblika i raspore) eni su po mre' i. Tipi$an monitor od 13 in$a ima ! irinu od 640 i visinu od 480 piksela. Ekranski pikseli obi$no imaju pre$nik od 1/72 in$a (0,35mm). Postoji razlika izme) u ekranskih piksela i piksela na slici. Npr. ukoliko je odnos 1:1 svaki piksel na slici se vidi kao jedan piksel na monitoru. Ako se slika pove*a (zumira) dva puta (2:1), onda je jedan piksel sa slike predstavljen sa dva ekranska piksela visine i dva ekranska piksela ! irine. Menjanje broja piksela na slici zove se resampling (ponovno semplovanje). Ova operacija bi se mogla nazvati i menjanjem veli$ine. Rezolucija se meri na du' i: piksela po linearnom in$u. Npr. slika sa rezolucijom od 180 ppi sadr' i 32400 piksela po kvadratnom in$u (1802 = 32400). Slika ima tri atributa: veli$inu, rezoluciju i dimenzije.

Veli$ina slike (datoteke) je mera koja pokazuje koliko piksela sadr' i slika. Rezolucija slike se odnosi na broj piksela koji se ! tampaju po in$u. Dimenzija slike predstavlja fizi$ku ! irinu i visinu slike. Svi atributi zahtevaju podjednaku pa' nju i me) usobno zavise jedni od drugih. Ako se promeni jedan od zadatih atributa mora*e se proporcinalno promeniti druga dva. Mo' e se zamisliti da atributi predstavljaju tri temena jednog trougla. Npr. ako se ' eli pove*ati dimenzija mora se pove*ati veli$ina datoteke ili smanjiti rezolucija. Ako se ' eli smanjiti veli$ina datoteke mora se smanjiti bilo dimenzije ili rezoluciju. Vrednost rezolucije odre) uje koliko su pikseli sabijeni kada se ! tampaju.& (str. 74, Photoshop za neupu*ene). Ako se ' eli ve*a rezolucija (vi! e piksela po in$u - pixel per inch (ppi)) mo' e se smanjiti dimenzija slike ili pove*ati veli$ina datoteke. Npr. dve slike mogu imati istu veli$inu datoteke, a manja slika ima duplo ve*u rezoluciju od ve*e slike (180 ppi prema 90 ppi). Veli$ina datoteke se odnosi na broj piksela na slici, a ne na njene fizi$ke dimenzije. Ukoliko se pove*a dimenzija slike ili obri! u neki od njenih piksela rezolucija se smanjuje. - to su pikseli koji $ine sliku manji, to je vi! e detalja koje oni mogu da prika' u, a ! to je vi! e detalja to je ve*a rezolucija slike.& (Photoshop 3.0 korak dalje, str. 6) Kako se

smanjuje veli$ina piksela potrebno je mnogo vi! e piksela za sliku date veli$ine, pa su datoteke koje sadr' e slike visoke rezolucije velike. Npr. za srednju visoku rezoluciju mo' e se smatrati 300 ppi.

Geometrija
Geometrija , re$ gr$kog porekla. Naziv poti$e od re$i zemlja& i meriti& . Stari Egip*ani su za potrebe gra) evinarstva odre) ivali prav ugao pomo*u kanapa izdeljenog na 12 jednakih delova, od $ega su konstruisali pravougli trougao sa katetama du' ine 3 i 4 i hipotenuzom du' ine 5 (tzv. egipatski truogao). Euklid je u 4 veku pre n. ere svoje rezultate izlo' io u delu Elementi& u 15 tomova. Po prvi put je izvr! ena sistematizacija. Prvo se navode definicije termiina Sistem postulata i aksioma Razvija se geometrija u obliku niza teorema koje logi$ki slede i dokazuju se pomo*u aksioma, postulata i ve* dokazanih teorema.

Aksiome su podeljene u grupe (Euklid): I. Aksiome incidencije (9 aksioma) II. Aksiome poretka (6 aksioma) III. Aksiome podudarnosti (7 aksioma) IV. Aksiome neprekidnosti (2 aksiome) V. Aksiome paralelnosti (1 aksioma) Ove aksiome su nezavisne jedne od drugih. Neprotivure$ne su (nekontradiktornost). Potrebno je iz sistema aksioma pokriti sve mogu*e posledice , potpunost.

Aksioma paralelnosti: Paralelne su one prave koje se nalaze na istoj ravni i koje se produ' ene u beskrajnost na obe strane ne seku jedna sa drugom. Ako petu aksiomu modifikujemo dobijama razli$ite vrste geometrije. Loba$evski je umesto V postulata uveo slede*i (uop! tenje):

U ravni kroz datu ta$ku van date prave prolaze bar dve prave koje ne seku datu pravu. B A P B/ T M M A/

Ta$ka M je promenljiva Prava PM, tj. PT nikad ne mo' e dosti*i pravu BB/ - ugao paralelnosti

Ovo va' i za zakrivljene prostore (sfere) Ugao paralelnosti je funkcija odse$ka x = PQ = 2 arc tg e , x/k B S A P Q B/ T A/

lim 2 arc tg e , x/k = 2 arc tg e 0 = 2 arc tg 1 = 0/2 k1 Klain je na! ao potpunu interpretaciju cele ravni Loba$evskog. Klain je uvo) enjem svog modela re! io problem neprotivure$nosti geometrije Loba$evskog. Ako imamo neku konturu K, tada njena unutra! njost predstavlja ravan Loba$evskog. Neprotivure$nost geometrije Loba$evskog posledica je neprotivure$nosti euklidske geometrije. Neprotivure$nost euklidske geometrije dokazao je Hilbert na osnovu protivure$nosti aritmetike. Odnos geometrije Loba$evskog prema euklidskoj geometriji: U razmerama Sun$evog sistema potpuno zadovoljavaju zakoni euklidske geometrije, dok u ogromnim prostranstvima vladaju zakoni Loba$evskog. Ajn! tajnova op! ta teorija relativiteta i Fridmanovi rezultati o ! irenju vasione u vremenu dali su potpuniju predstavu o objektivnom prostoru. Rimanovi prostori

Druga$ija neeuklidka geometrija se dobija ako se umesto V postulata uzme slede*a Rimanova aksioma paralelnosti: Kroz ta$ku A van prave a ne prolazi ni jedna prava koja ne se$e pravu a. Riman uvodi termin mnogostrukost ili mnogovrsnost. Element mnogovrsnosti je ta$ka, $iji se polo' aj karakteri! e koordinatama x1, x2,...,xn. Najprostiji slu$ajevi mnogovrsnosti su prostori konstantne krivine, K=const. Razlikuju se tri slu$aja takvih prostora:

K>0, geometrija prostora pozitivne krivine - Rimanova geometrija u u' em smislu ili elipti$na geometrija. K=0, geometrija prostora nulte krivine - paraboli$na geometrija, koja se pod uslovom o pozitivnosti elemenata du' ine poklapa sa geometrijom Euklida. K<0, geometrija prostora negativne krivine - hiperboli$ka geometrija ili geometrija Loba$evskog.

Ajn! tajnova op! ta teorija relativiteta kao matemati$ki aparat koristi 4-dimenzionalni prostor koji poseduje krivinu.

Projektivna geometrija Koordinatni sistemi


Polo' aj neke ta$ke na pravoj, u ravni, u prostoru mo' e da se zapi! e uz pomo* pogodno odabranih brojeva, tzv. koordinata. Koordinate uspostavljaju most izme) u geometrije i aritmetikei predstavljaju osnovu za re! avanje mnogih gepmetrijskih problema. Koordinatni sistemi: Homogeni Nehomogeni

Koordinatni sistemi: Dekartov koordinatni sistem Polarni koordinatni sistem Cilindri$ni koordinatni sistem Sferni koordinatni sistem

Kona ne projektivne ravni


Neka q ozna$ava prirodan broj ve*i od 1. Kona$na projektivna ravan q-tog reda defeini! e se preko 4 aksioma: 1. 2. 3. 4. Za svake dve razne ta$ke postoji ta$no jedna zajedni$ka prava Za svake dve razne prave ta$no jedna zajedni$ka ta$ka Postoji potpun 4-temenik Postoji prava koja ima q+1 ta$aka.

U kona$noj projektivnoj ravni va' e slede*i stavovi: Svaka prava ima q+1 ta$ku Svaka ta$ka je incidentna sa q+1 pravih Ravan ima q2 + q +1 ta$aka I pravih

Za sve stepene prostih brojeva q obezbe) ena je egzistencij Galoa-ove kona$ne projektivne ravni reda q, za koju postoji aritmeti$ki model nad Galoa-ovim kona$nim poljem GF(q).

Kona ne projektivne ravni i Latinski kvadrati


Latinski kvadrat - pojam diskretne matematike dovodi se u vezu sa kona$nim projektivnim ravnima. Latinski kvadrat reda q mo' e se predstaviti kao matrica q x q sa elementima iz skupa {1,2, 2 , q}, takva da se ni u jednom njenom redu (vrsti ili koloni) ne nalaze dva ista elementa.

Dva latinska kvadrata reda q su ortogonalna ako su svih njihovih q2 elemenata na odgovaraju*im pozicijama me) usobno razli$iti, tj. ako pomo*ni kvadrat satavljen iz ure) enih parova odgovaraju*ih elemenata sadr' i sve razli$ite ure) ene parove. Ortogonalni latinski kvadrati: 1 2 3 1 2 3 2 3 1 3 1 2 3 1 2 2 3 1 Kvadrat ure) enih parova: (1,1) (2,2) (3,3) (2,3) (3,1) (1,2) (3,2) (1,3) (2,1)

Stav: Egzistencija kona$ne projektivne ravni reda q ekvivalentna je egzistenciji sistema od q-1 poparno ortogonalnih latinskih kvadrata reda q. Za neke prirodne brojeve q ne postoje kona$ne projektivne ravni reda q: Stav: Ne postoji kona$na projektivna ravan reda 6. (Poznato je da ne postoje dva ortogonalna kvadrata reda 6, ! to je ekvivalentno tvr) enju da Ojlerov problem 36 oficira nema re! enja. Tr' i se da se 36 oficira, sa 6 $inova i iz 6 redova vojske postroje u 6 vrsta i 6 kolona tako da u svakoj vrsti i koloni budu zastupljeni svi $inovi i svi rodovi.) Stav: Ne postoji kona$na projektivna ravan reda 10. (Na) en je latinski kvadrat reda 10 koji je imao preko 5000000 sebi ortogonalnih parnjaka, ali nijedna dva od njih nisu bili me) usobno ortogonalna.) Napisati program za nala' enje svih latinskih kvadrata 3. reda. Latinski kvadrat je kvadratna matrica u kojem je svaka vrsta i svaka kolona permutacija nekog niza razli$itih elemenata (simbola). Ni u jednoj njenoj vrsti, niti koloni ne nalaze se dva ista elementa. Npr. latinski kvadrat 3. reda: 1 2 3 2 3 1 3 1 2 /* Latinski kvadrati */ domains x=symbol predicates znak(x). resenje. goal resenje. clauses znak( 1& ). znak( 2& ). znak( 3& ).

resenje :znak(X1), znak(X2), znak(X3), znak(Y1), znak(Y2), znak(Y3), znak(Z1), znak(Z2), znak(Z3), X1<>X2, X1<>X3, X2<>X3, X1<>Y1, X1<>Z1, Y1<>Z1, X2<>Y2, X2<>Z2, Y2<>Z2, Y1<>Y2, Y1<>Y3, Y2<>Y3, Z1<>Z2, Z1<>Z3, Z2<>Z3, X3<>Y3, X3<>Z3, Y3<>Z3, write(X1," ",X2, " ", X3),nl, write(Y1," ",Y2, " ", Y3),nl, write(Z1," ",Z2, " ", Z3),nl, nl,fail. resenje:- nl, write("To je sve"). Koliko se razli$itih latinskih kvadrata dobijaju kao re! enje?

Crtanje u Bezijeovom na inu rada


Crtanje slobodnom rukom spada u jednu od naj$e! *e kori! *enih tehnika u ra$unarskoj grafici, bar kada se radi o nekoj njenoj ! irokoj primeni. No, ova tehnika ne omogu*ava potpunu kontrolu polo' aja ta$aka od strane korisnika. Slobodnom rukom se u zavisnosti od pokreta ruke koja upravlja mi! em, ne mogu dobiti krive linije sa velikom precizno! *u. Crtanje u Bezijeovom na$inu rada elimini! e ove nedostatke i omogu*ava preciznije crtanje krivih linija uz potpuniju kontrolu polo' aja ta$aka od strane korisnika. U ovom re' imu rada mogu*e je crtati: prave linije, krive linije i povr! i.

Pjer Bezije je bave*i se dizajniranjem automobila u Reno& -u razvio posebnu vrstu krivih indirektno specificiraju*i krajnje ta$ke tangentnog vektora zadavanjem dve me) uta$ke koje ne pripadaju krivoj. Bezije je, dakle, otkrio dinami$ki odnos izme) u po$etne i zavr! ne ta$ke krive linije, i dve kontrolne ta$ke kojima se odre) uje putanja od po$etka do kraja. Svaki geometrijski oblik po Bezijeu mo' e da se defini! e konturom koja se sastoji od odre) enog broja prevojnih ta$aka, tj. $vorova i glatkih krivih linija izme) u njih. Tako definisane konture nazivaju se Bezijeove krive. Kako je na ovaj na$in odre) ena kriva linija definisana matemati$kom zavisno! *u (kubni polinom) njena glatko*a ostaje o$uvana bez obzira na rezoluciju koja se koristi i koja se naknadno mo' e menjati.

Kod Bezijeovih krivih se specificiraju dve kontrolne ta$ke koje indirektno odre) uju vektore tangente. Povezivanje dve Bezijeove krive linije se vr i tako to je potrebno da se jedna krajnja ta#ka iz prve krive poklopi sa jednom krajnjom ta#kom iz druge. Da bi se krive neprimetno spojile potrebno je da se urede spoljne kontrolne ta#ke tako da tangente u krajnjim ta#kama pokazuju isti pravac. Da bi se uspe! no koristile Bezijeove krive linije u nekom grafi$kom programskom alatu nije neophodno ulaziti u tuma$enje slo' enih matemati$kih relacija na kojima se one zasnivaju. Tako npr. kada se u programskom paketu CorelDraw koristi alatka za crtanje u Bezijeovom re' imu rada, preko tastera mi! a se defini! e po$etna i zavr! na ta$ka krive linije i jednom se povu$e mi! em da bi se oblikovala ' eljena linija izme) u ovih ta$aka. Linija koja koja povezuje po$etnu i krajnju ta$ku tretira se kao kriva linija $iji oblik mo' e vrlo lako da se menja preko kontrolnih ta$aka. Neformalno se mo' e re*i da se krive sastoje od putanja koje defini! u njihov oblik, a putanje su povezane $vorovima. Promena pravca krive se odra' ava na $voru. Te promene pravca (tzv. zaokreti) mogu biti vrlo o$igledne ili toliko tanane da su skoro neprimetne. Kriva koju ' elimo nacrtati vrlo lako mo' e da se menja uti$u*i na $vorove, odnosno putanje sve dok se ne dobije kriva koju je korisnik zamislio. Obi$no se prvo grubo nacrta osnovni oblik, a zatim se on doteruje u nekoliko iteracija sve do postizanja ' eljene preciznosti (dodaju se novi $vorovi, koriste simetri$ni $vorovi, glatki $vorovi i $vorovi sa vr! kom). Bezijeove povr! ine se defini! u skupom kontrolnih ta$aka (dvodimenzionalno) koji odre) uje aproksimativni oblik povr! ine. Povezivanje Bezijeovih povr! ina u jednu povr! vr! i se tako ! to se one spajaju na ivicama. Ivice dveju Bezijeovih povr! ina se poklapaju ukoliko dve krive imaju iste kontrolne ta$ke du' te ivice. Da bi se postigao 3 glatki4 spoj mora biti ispunjen slede*i uslov: svaka ta$ka zajedni$ke ivice i ta$ke du' obe povr! ine moraju le' ati na pravoj liniji.

Digitalna geometrija
Kompjuterska (ra$unarska) geometrija je skup geometrijskih disciplina okrenut realizaciji na ra$unaru. Glavni predmet izu$avanja su geometrijski algoritmi, kod kojih se postavlja zahtev efikasnosti. Digitalna geometrija je podoblast kompjuterske geometrije koja se ograni$ava na digitalne objekte , objekte na celobrojnoj mre' i. Sva razmatranja su ograni$ena na ta$ke sa celobrojnim koordinatama. Po! to se kompjuterski ekran mo' e shvatiti kao deo 2-dimenzione mre' e sledi da *e se re! avanje odre) enih problema u digitalnoj ravni koristiti u kompjuterskoj grafici za prikaz slike na ekranu. U digitalnoj geometriji javljaju se mogu*nosti za paralene teorije sa klasi$nom euklidskom geometrijom. Npr. digitalni kvadrat se defini! e na jedan od slede*a dva na$ina: 1. kao digitalni 4-ugao koji nastaje celobrojnom aproksimacijom euklidskog& kvadrata (svako teme tog kvadrata se zamenjuje najbli' om celobrojnom ta$kom) 2. kao svaki 4-ugao $ija celobrojna aproksimacija jeste kvadrat. Za ovako definisane digitalne kvadrate va' e analogne teoreme koje va' e za euklidske kvadrate. U digitalnoj geometriji pojavljuju se optimizacioni problemi, koji su se pojavili tek digitalizacijom (celobrojnom aproksimacijom). Diskretna geometrija je geometrija u kojoj se odustalo od aksioma neprekidnosti (izme) u susednih ta$aka postoji praznina& ). Digitalna geometrija je uklju$ena u ovu oblast.

Digitalizacija
Neka je: A , euklidska konstantna slika A` - unija svih piksela koji imaju neprazan presek sa A A`` - skup svih ta$aka pravougaone celobrojne mre' e, koje su centri piksela iz A` A`` je digitalizacija od A. Digitalizacija se izvodi u dve faze. Problem digitalizacije: Za datu euklidsku sliku S, odrediti digitalno preslikavanje f, tako da se odre) enom smislu pona! a ! to sli$nije ulaznoj slici S. Kada je u pitanju neprekidna kriva, dve osnovne ! eme digitalizacije su: Na svakoj celobrojnoj apscisi (x-koordinati) uzeti: Prvu celobrojnu ta$ku ispod krive f(S) u

Najbli' u celobrojnu ta$ku, iznad ili ispod krive.

Ove dve ! eme su ekvivalentne: jedna se iz druge mo' e dobiti translacijom u vertikalnom pravcu za 5 . Po potrebi se kod strmo nagnutih krivih uloge x-koordinata i y-koordinata mogu zameniti.

Prosta digitalizacija du' i


Neka je u koordinatnom sistemu (celobrojnoj kvadratnoj mre' i, grid-u, rasteru) data du' sa krajnjim ta$kama (x1,y1) i (x2,y2), pri $emu su koordinate x1,y1,x2,y2 celobrojne. Neka je: 6 x = | x2 , x1 | 6 y = | y2 , y1| m = 6y / 6x Digitalna du' [(x1,y1), (x2,y2)] mo' e se definisati slede*im algoritmom: x:=x1; y:=y1; IF 6 x 6 y THEN FOR x := x1 + 1 TO x2 DO BEGIN y : = y1 + m; WRITELN(x, ROUND(y)) END ELSE FOR y := y1 + 1 TO y2 DO BEGIN x : = x1 + 1/m; WRITELN(ROUND(x), y) END; Primenjena je ! ema digitalizacije sa zaokru' ivanjem. Kori! *enjem apsolutnih vrednosti za 6 x i 6 y obezbe) eno je da se jedinstveni algoritam digitalizacije prilagodi svakom polo' aju prave u ravni. Sva razmatranja mogu se izvesti na I kvadrantu, pri $emu se razlikuju nagibi manji i ve*i od 450. Ako je 6 x 6 y onda je potrebno pove*ati x-koordinatu za 1, a zatim zaokru' ivati ykoordinatu. Ako je 6 y 6 x onda je potrebno zameniti ulogu x-koordinate i y-koordinate.

Na taj na$in se ispunjava uslov da se nijedne dve uzastopne ta$ke digitalizacije ne nalaze na rastojanju ve*em od 2.

Bresenhajmov algoritam digitalizacije prave

(Xi+1,round(Yi+m))

(Xi,Yi)

(Xi+1,Y i+m)

Bresenham-ov algoritam
Prosta digitalizacija du' i ima jednu dosta veliku manu. Iako je algoritam namenjen radu sa celobrojnim koordinatama, navedeni algoritam koristi i realnu aritmetiku, jer je kori! *eni nagib m realan broj (nastao deljenjem celih brojeva 6 y i 6 x , tj. m = 6 y / 6 x). To se negativno odra' ava na efikasnost izvr! avanja algoritma.

Upotreba realne aritmetike potpuno je izbegnuta Bresenham-ovim algoritmom.


Radi jednostavnosti razmatra se slu$aj: 6x 6y Neka x ozna$ava proizvoljnu apscisu. Uvodimo slede*e funkcije: y(x) = visina na kojoj se nalazi ta$ka razmatrane prave (realan broj) b(x) = y(x) - y(x) = y(x) - trunc(y(x)) a(x) = y(x) - y(x) = trunc(y(x)) - y(x) e(x) = b(x) - a(x) E(x) = (b(x) - a(x))6 x Posmatrajmo dve uzastopne (susedne) apscise x` i x`` (x``= x`+1 ), a njima odgovaraju*e vrednosti funkcija b(x), a(x), e(x), E(x) redom ozna$imo sa: b` i b``, a` i a``, e` i e``, E` i E``. Obele' imo 6 E = E`` - E`. Neka su y` i y`` celobrojne vrednosti digitalne slike prave sa apscisama x` i x``. Mogu*a su samo dva slu$aja: y`` = y` (ordinata stagnira)

y`` = y` +1 (ordinata se podi' e). Bresenem-ov algoritam se bazira na slede*im opa' anjima: 1. Odluka o stagniranju ili podizanju ordinate na apscisi x`` donosi se na osnovu znaka veli$ine E(x) = (b(x) - a(x))6 x. Ako je taj znak pozitivan onda je ta$ka (x``,y(x``)) bli' a ta$ki (x``,y`) nego ta$ki (x``,y`+1) pa se donosi odluka o stagnaciji ordinate pri prelasku na apscisu x``. U protivnom se donosi odluka o podizanju koordinate. 2. Znak razlike e``, potreban za odluku, jednak je znaku izraza E`` = e``6 x. Teorema: Vrednost izraza E(x) je celobrojna veli$ina koja se mo' e odrediti sabiranjem i oduzimanjem celobrojnih vrednosti 6 x i 6 y. Prema tome, promena znaka veli$ine mo' e se pratiti posredstvom odgovaraju*ih celobrojnih veli$ina, pa je otvorena mogu*nost za eliminaciju realne aritemetike. U slu$aju podizanja ordinate (za E > 0) parametar E se umanjuje dodavanjem negativne celobrojne veli$ine: 26 y - 26 x. Obrnuto, u slu$aju stagniranja ordinate (E < = 0) parametar E se uve*ava dodavanjem pozitivne celobrojne veli$ine: 26 y. Implementacija Bresenem-ovog algoritma FOR petlja iz prethodnog algoritma FOR x := x1 + 1 TO x2 DO BEGIN y : = y1 + m; WRITELN(x, ROUND(y)) END zameni se sa: E = 26 y - 26 x; FOR x := x1 + 1 TO x2 DO BEGIN IF (E < = 0) THEN E = E + 26 y ELSE BEGIN E = E + 2(6 y - 6 x); y= y +1; END; WRITELN(x, y); END

Algoritam isecanja
Cilj operacije isecanja je prikazivanje samo one slike koja se nalazi unutar zadatog prozora. Kada je u pitanju isecanje teksta razlikuju se 3 nivoa:

nivo stringa nivo slova detaljan nivo (delovi slova se prikazuju)

Glavna ideja Koen-Saderlendovog algoritma isecanja s obzirom na prozor odre) en krajnjim ta$kama (xmin,ymin) i (xmax,ymax) sadr' ana je u kodiranju 9 oblasti ravni s obzirom na prozor po slede*oj ! emi: (1,0,0,1) (0,0,0,1) (0,1,0,1) (1,0,0,0) (0,0,0,0) (0,1,0,0) (1,0,1,0) (0,0,1,0) (0,1,1,0)

Unutra! njost prozora je kodirana nula-vektorom. Za svaku ta$ku ravni se formira 4-bitni kod: (iznad, ispod, desno_od, levo_od) Algoritam testira da li se razmatrana du' treba u celosti da se prika' e ili ne. Ukoliko to nije slu$aj prelazi se na postupno odsecanje delova du' i koje ! tr$e izvan prozora. - ema Koen-Saderlendovog algoritma za du' : IF NOT (du' odbijena zato ! to konjunkcija binarnih kodova nije nula vektor) THEN WHILE du' nije prihva*ena OR odbijena DO BEGIN IF ta$ka x2 je unutra! nja (ima kod (0,0,0,0)), a ta$ka x1 le' i van prozor THEN razmeni ta$ke x1 i x2; (* pogodno je fiksirati, npr. da je, ta$ka x2 spolja! nja u odnosu na prozor, da bi se dalji deo algoritma pisao na jedinstven na$in *) IF ta$ka x2 je gornja THEN skrati gornji deo du' i ELSE IF ta$ka x2 je donja THEN skrati donji deo du' i ELSE IF ta$ka x2 je desna THEN skrati desni deo du' i ELSE IF ta$ka x2 je leva THEN skrati levi deo du' i; IF krajevi skra*ene du' i su unutar prozora THEN du' se prihvata za prikazivanje ELSE odbi je END;

Algoritmi za popunjavanje mnogouglova Neke ideje za popunjavanje oivi$enih povr! i, unutra! njosti zadatih kontura u rasteru: Algoritam poplave (flood fill) - rekurzivan postupak PROCEDURE oboji (x,y: INTEGER); BEGIN IF NOT (x,y) grani$ni piksel THEN BEGIN dodeli boju pikselu (x,y); oboji (x+1, y); oboji (x-1, y); oboji (x, y-1); oboji (x, y+1); END END; Ivi$ni postupak - iterativni postupak Zrak udesno se mo' e realizovati petljom: y := y + 1; WHILE NOT (x,y) grani$ni DO BEGIN oboji (x, y); y := y + 1; END; Ksorovanje Primenom funkcije XOR razmena sadr' aja piksela na pozicijama cilj i izvor mo' e se izvr! iti bez posrednika. Funkcijom XOR se ure) eni parovi: (0,0), (0,1), (1,0), (1,1) preslikavaju redom na : 0, 1, 1, 0. Operator UNDO je zasnovan na ksorovanju (A XOR B) XOR B = A

Rasterska i vektorska grafika


Grafi$ki programi koji se koriste u dana! nje vreme u su! tini rade na dva principa: proizvode ta$ke ili proizvode krive i prave linije na osnovu prora$una. Prvi princip svodi se na slikanje a drugi na crtanje. Grafi$ki programi se prema tome, dele na dve grupe: na programe za rasterku grafiku (programi za slikanje, retu! iranje slika, bitmapirana grafika) i na programe za vektorsku grafiku (programi za crtanje).

Rasterska grafika je pogodna za reprodukovanje fotografija i drugih slika koje sadr' e mnogo nestruktuiranih detalja. Programi: Adobe Photoshop, Fractal Design Painter, Corel PhotoPaint i dr. spadaju u klasu programa za rad sa rasterskom grafikom. Rasterska slika li$i na mozaik. Slika se gradi od elemenata slike (piksela) postavljenih na pravilnu mre' u. Vektorska grafika je zasnovana na matemati$kom opisu oblika koji se mogu dobiti od krivih (i pravih) linija. U klasu programa za rad sa vektorskom grafikom spadaju programi: CorelDRAW, Adobe Illustrator, Aldus Freehand i dr. Vektorska grafika daje kompaktne crte' e koji su potpuno prenosivi i mogu se po potrebi pove*avati ili smanjivati, te se programi za crtanje upotrebljavaju i za oblikovanje slova u ra$unarskim fontovima. Takvi crte' i su zapisani na specijalnim ra$unarskim jezicima (npr. PostScript) i moraju da se prevedu u vidljivi grafi$ki oblik pomo*u interpretatora. Npr. ako se u Corel Draw programu nacrta krug program zna& da je to krug sa odre|enim centrom, polupre$nikom, obimom, spoljnom i unutra! njom bojom. Lako se mo' e promeniti njegova veli$ina, oblik ili boja a da se ne poremeti njegova celovitost. Nasuprot tome krug u Photoshop-u predstavlja skup ta$aka, od kojih svaka ta$ka ima odre|enu boju. Te ta$ke zajedno li$e na krug, ali ne nemaju osnovne osobine koje ih identifikuju kao krug. Me|utim, krug se ne*e mo*i izmeniti a da se ne deformi! e. (Corel, str. 4). Karakteristike rasterskih programa: (Corel, str. 5) nepromenjena rezolucija (ta$ke na bitmapiranoj slici su fiksne veli$inei na fiksnoj udaljenosti jedna od druge), velike datoteke (kako su bit mape ta$ke one zauzimaju veliki prostor na disku ili memoriji), izmene piksela (kontrola se uspostavlja nad samim ta$kama, ne postoje nikakave matemati$ke kontrolne ta$ke koje opisuju bitmapirane slike), velika realisti$nost (mogu*e je kontrolisati svaku ta$ku i tako podra' avati stvarnost).

Karakteristike vektorskih programa: (Corel, str. 5)

visoka rezolucuja od! tampanog dokumenta (objekti *e biti od! tampani najve*om mogu*om rezolucijom; prema vektorima i prora$unima ta$ke se stavljaju ! to je mogu*e bli' e jedne drugima), br' e ! tampanje i br' e prikazivanje na ekranu (vodi se ra$una o objektu u celini a ne o pojedina$nim pikselima, ! to zna$i da se ! alje puno manje podataka ! tampa$u i ekranu nego neki program za slikanje), velika mogu*nost izmene (oblik objekta se odre|uje krivim linijama, $vorovima i drugim kontrolnim ta$kama kojima se mo' e lako upravljati), nedostatak realizma kod nacrtanih objekata (ne deluje stvarno kao bitmapirana grafika).

8 esto se u radu koristi kombinacija ovih grafi$kih programa. Npr. mo' e se kombinovati tekst sa slo' enom vektorskom grafikom nastalom u programu za crtanje sa skeniranom slikom izmenjenom u programu za slikanje. Rasterske slike zahtevaju manje prevo|enje ali im datoteke mogu biti vrlo velike. Ako su potrebne $iste spoljne i unutra! nje konturne linije bitmapiranu sliku (Photoshop 3.0 korak dalje) treba u$itati u program za vektorsku grafiku i u njemu nacrtati linije. Programi za vektorsku grafiku zasnivaju se na jedna$inama, a ne na opisu slike preko piksela, daju slike koje koriste maksimalnu rezoluciju izlaznog ure|aja na kome se ! tampaju. Takve linije su onoliko $iste i o! tre koliko to omogu*ava ure|aj za osvetljavanje (str. 136). Ovakve linije su o! trije i finije od linija dobijenih u nekom programu za rastersku grafiku kao ! to je npr. Photoshop. Crno-bela rasterska slika predstavlja najjednostavniju vrstu ra$unarske grafike. Sa pove*anjem broja piksela, a smanjenjem njihove veli$ine dobija se ve*i broj detalja na slici. Kada oko vi! e ne razlikuje pojedina$ne elemente slike (piksele) vidi se samo slika koji oni stvaraju. (str. 6) Osobine piksela U rasterskim slikama (Photoshop 3.0 korak dalje, str. 6): pikseli su pore|ani po gruboj mre' i kao da zauzimaju kvadrati*e na listu za crtanje pikseli su binarni (uklju$eni ili isklju$eni) binarni pikseli mogu predstavljati samo dva nivoa sivog: crno i belo.

Svaki piksel ima sopstvenu adresu izra' enu u grafi$kim koordinatama x i y, ! to proizilazi iz konstrukcije mre' e. Preko adresa piksela ra$unar mo' e da locira pojedina$ne piksele i na taj na$in da poredi slike piksel po piksel i da vi! e slika precizno postavi jednu preko druge. Takve operacije omogu*avaju Photoshopu da napravi slike u koloru. Grupisanjem piksela u me|uton rasterska slika daje utisak postojanja sivih nijansi u zamenu za smanjen broj detalja. Napravljeni su sistemi koji su radili sa sivim nijansama (broj sivih nijansi se pove*ao na 256=28, te se ovakve slike zovu 8-bitnim). Posle sivih nijansi boja predstavlja logi' ki sled. Slika u boji se sastoji u uskla|ivanju tri ili ' etiri slike u sivim nijansama. Kod Photoshop-a slika u boji se sastoji od 3 ili 4 kanala sa osnovnim bojama, pored alfa kanala koji se koristi za maske. Svaki kanal sa bojom je slika u sivim nijansama, $ija svetlo*a odgovara koli$ini osnovne boje. Tako u slu$aju RGB (Red,

Green, Blau) slike nivo svetlo*e svakog kanala odgovara nivou jedne od osnovnih boja koje $ine sliku (crvene, zelene ili plave). Adobe Photoshop ispod umetni$ke spolja! njosti krije slo' en matemati$ki svemir. U radu se ne koristi direkto matematika ve* se vizuelno komunicira sa programom. Model izrade slika u programu Photoshop sastoji se od slede*ih elemenata (str. 3): piksela (pixels), rasterskih slika (bitmaps), me|utonova ili polutonova (dithers ili halftones), maski (masks), sivih nijansi (grayscales), slika u boji (color images), matemati$kih operacija, tj. izra$unavanja (calculations), slojeva (layers).

CorelDRAW5 se sastoji iz programa: Corel Corel Corel Corel Corel Corel Corel DRAW (crtanje), PhotoPaint (obrada slika), Chart (grafikoni), Move (animacija), Show (prezentacija), Trace (vektorizacija), Mosaic (izrada kataloga slika).

Grafi ki formati
Dobro je poznato da je monitor rasterski ure) aj i da se slika na njemu sastoji iz redova i kolona ta$aka, koje se nazivaju pikseli. Piksel je standardizovana jedinica za meru isto kao metar ili in$. Pojam rezolucije se u vezi sa monitorima tuma$i dvojako: Rezolucija ili rezolucija slike je gustina piksela na ekranu. Ona mo' e varirati od 50 piksela/in$u do 85 piksela/in$u mada je op! te prihva*eni standard 72 piksela/in$u. Postoje monitori sa veoma velikim rezolucijama od 100, 150 pa $ak i 200 piksela/in$u ali je njihova cena veoma velika tako da su veoma retko u upotrebi. Raster dimenzija ili rezolucija ekrana pretstavlja veli$inu slike koju monitor mo' e da prika' e. Ona se izra' ava u broju piksela po ! irini i du' ini koji mogu da stanu na ekran i zavisi od monitora do monitora. Naj$e! *a rezolucije koju standardni 14 "($etrnest in$ni) monitori podr' avaju su od 640x480 do 1024x768 Ve*i monitori 17 " i 21 " podr' avaju i ve*e rezolucije sve do 1600x1200.

Rasterska grafika "Rasterska ili bitmap grafika, jednostavno re$eno, odnosi se na grafiku proizvedenu od velikog broja piksela" - "Graphic & Web Page Design"- Jon M. Duff and James L. Mohler. Rasterska slika se sastoji iz redova i kolona piksela slo' enih u matrici koji $ine sliku. Pojmovi rezolucije koji su definisani kod monitora na sli$an na$in se koriste i za bitmape: Raster rezolucija se meri DPI jedinicama i govori nam koliki je kvalitet grafike. - to je ve*i proj piksela po in$u to je slika kvalitetnija i obrnuto. Sa druge strane, raster dimenzijom se odre) uje veli$ina grafike. Tu se misli na du' inu i ! irinu slike. Tre*i bitan element za odre) ivanje grafike je broj boja koje nosi svaki piksel ? dubina boje. Broj boja je veoma bitan $inilac za odre) ivanje krajnjeg kvaliteta slike i on se kre*e od 256 do preko 32 miliona boja.

Vektorska grafika Vektorska grafika se sastoji iz serije prora$unatih matemati$kih jedna$ina. Jednostavnije re$eno, sastoji se od poligon-objekata kao ! to su: Tekst Linije (krive i prave) Pravougaonici ili kvadrati Krugovi ili elipse

Boja se kod vektorske grafike odre) uje po dimenzijama povr! ina objekata iz kojih se sastoji grafika, tako ! to kod, koji ide sa slikom, govori programu koja boja se nalazi u kojim dimenzijama poligona. Prednost vektorske grafike je, ! to se veoma lako vr! i promena njene veli$ine bez gubitka na kvalitetu. To je mogu*e po! to je vektor grafika, kao ! to je ve* re$eno, skup matemati$kih jedna$ina prenesenih na ekran, tako da

prera$unavanjem jedna$ina po novim parametrima dobijamo efekat pove*anja ili smanjenja. Najop! tije gledano, sve grafi$ke formate koji se javljaju na Internetu mo' emo podeliti na: 2D formate i 3D formate.

2D formati
Grafi$ki elementi kori! *eni na Webu su uglavnom u bitmap obliku, s obzirom na slabu podr' anost vektorske grafike. Postoji na stotine formata u kojima se bitmape zapisuju i $itave knjige su napisane o njima. Osnovne karakteristike svih formata su nivo kori! *ene kopresije (u skladu sa tim veli$ina datoteke) i kvalitet slike.Ovde *e biti dat pregled naj$e! *ih formata, sa malo ! irim osvrtom na najva' nije, koji se upotrebljavaju na Web-u. Formati koji se naj$e! *e koriste za distribuciju na Web-u su: GIF JPEG NPG

Slede*i formati se uglavnom koriste za ! tampu: TIF (Tagged Image Format) je format koji koristi lossless kompresiju podataka ali istovremeno uspeva da sa$uva kvalitet slike. TIF daje prili$no male datoteke sa obzirom na kvalitet koji pru' a. EPS (Encapsulated Postscript) koristi postskript jezik ! tampa$a koji je razvila firma Adobe.Ograni$enje je da ! tampa$ mora podr' avati postskript jezik. U ovom formatu se ne koristi kompresija tako da su datoteke prili$no velike. BMP (Bitmap) je standardni format po kome je cela grupa formata dobila ime. Tako) e ne koristi kompresiju, ali su datoteke u tom formatu opet zna$ajno manje od EPS formata. Mo' e se re*i da je ovo format veoma ! iroko kori! *en u Windows okru' enju. PICT (Macintosh Picture File) je standardni format za Macintosh platforme. Za njega je zanimljivo da mo' e biti vektorski ili rasterski format. Ne preporu$uje se za kori! *enje, osim na Mac platformama. WFM (Windows Meta File) je ekvivalent PICT formatu, samo za Windows platforme. Tako) e podr' ava i vektorski i rasterski oblik grafike.

GIF

Graphics Interchange Format je bitmap, platformski-nezavistan format kreiran od strane servisa Compuserve mre' e. GIF podr' ava do 256 boja (8 bita), a veli$ina datoteke je odre) ena brojem boja i veli$inom piksela. Veli$ina datoteke se smanjuje kori! *enjem LZW (Lempel-ZivWelch) algoritma za kompresiju podataka, bez gubljenja na kvalitetu. Ovaj algoritam omogu*ava istovremeno dekompresovanje i u$itavanje datoteke. Sve ovo

$ini ovaj format idealnim za kori! *enje na Web dokumentima za odre) ene specifi$ne elemente kao ! to su : dugmad, grafika zasnovana na tekstu ili bilo koja grafika koja ne zahteva 24-bitnu paletu boja. Za razliku od drugih popularnih formata, kao ! to je JPEG, GIF podr' ava mnoge veoma korisne osobine. Transparentnost Interlace mod GIF Animacije

Transparentnost je veoma korisna osobina koja se ! iroko koristi na Web-u. Dizajner je u mogu*nosti da jednu od boja proglasi transparentnom ili nevidljivom (Slika1.). Obi$no se pozadinska boja proglasi za transparentnu i na taj na$in se dobijaju veoma dobri efekti jer grafika izgleda kao sastavni deo stranice. Kod kori! *enja ovog efekta mora se voditi ra$una o nekoliko stvari da bi krajnji rezultat bio zadovoljavaju*i. Mora se pa' ljivo izabrati transparentna boja, da se ne bi desilo da sa pozadinom i neke druge delove slike (sa istom bojom kao pozadinska) u$inimo nevidljivim. Ako transparentna grafika ima primenjen anti-alias efekat vide*e se okvir oko grafike jer samo jedna boja mo' e biti transparentna. Re! enje je jedino da se za grafi$ke elemente koji *e biti transparentni ne primenjuje anti-alias efekat.

Interlace mod je takodje veoma popularan i $esto u upotrebi na Web-u. Poznato je da pri u$itavanju grafike browser na njeno mesto stavlja prazan okvir, dok se grafika u potpunosti ne prenese. Ovo, nekad, mo' e da bude prli$no dosadno i ne-esteski, pogotovo kada se radi o ve*im grafi$kim datotekama. Da bi se to spre$ilo koristi se interlace mod koji po$inje prikazivanje grafike na 1/8 krajnje rezolucije i nastavlja sve dok se $itava datoteka ne prenese i prika' e. Prikazivanje slike ide u nekoliko prolaza. GIF animacija je jo! jedna, veoma efektna, mogu*nost koju pru' a ovaj format. Animacije se prave kao serija GIF slika, koje se prikazuju jedna za drugom i na taj na$in stvaraju efekat pokreta. Kreiranje ovakvih datoteka je prili$no jednostavno tako da su one ! iroko zastupljene na Web-u kao banneri (slu' e u reklamne svrhe) ili drugi grafi$ki elementi kojima je svrha da privuku pa' nju. Na kraju, potrebno je zapamtiti da u radu sa GIF formatom treba koristiti najvi! e 256 boja, koliko je i podr' ano. U suprotnom, mo' e do*i do pojave zvane ditering, kada sistem poku! ava da u paletu od 256 boja uklopi ve*i broj boja (16,7 miliona). To mo' e da izazove prili$no neo$ekivane i ru' ne efekte. JPEG Joined Picture Expert Group - JPEG ili JPG je format koji je u veoma ! irokoj upotrebi na Web-u, a naro$ito za ve*e slike. To je tako) e format koji se mo' e koristiti na vi! e platformi a njegova glavna prednost u odnosu na GIF je kori! *enje 16.7 miliona boja

(24-bita) i primenjeni lossy algoritam kompresije koji vi! estruko smanjuje veli$inu JPEG datoteke, ali uti$e na kvalitet slike. Na ovaj na$in mo' emo dobiti veoma kvalitetne slike koje nisu mnogo velike, tj. nije im potrebno dosta vremena za u$itavanje i ba! to je glavni razlog veoma velike popularnosti ovog formata. Kompresija je metod koji smanjuje veli$inu grafi$kih datoteka. Svi grafi$ki elementi na Internetu moraju biti preneseni preko mre' e, tako da je kompresija neophodna da bi smanjili vreme u$itavanja. Na drugoj strani, kod ! tampanja grafike $esto je veoma bitno da grafika zadr' i kvalitet, bez obzira na veli$inu datoteke. U te svrhe je bolje koristiti formate koji upotrebljavaju lossless tehniku kompresije, koja $uva kvalitet slike. Jedan od takvih formata je TIF. Kada se slika kompresuje, izdvajaju se podaci o svakom pikselu iz koda slike i sme! taju se u matricu. Ideja je da se svakoj boji, koja je kori! *ena, pridru' e svi pikseli koji nose tu boju. Tako npr. ako imamo crnu liniju, kod bez kompresije bi definisao svaki piksel i njegovu boju, dok bi kompresovan kod uzeo ceo red i dodelio mu crnu boju. Na ovom primeru je o$igledno da bi u drugom slu$aju dobili daleko manju datoteku. JPEG format ima jos jednu karakteristiku, a to je da se pri snimanju grafike mo' e odre) ivati nivo kompresije koji ' elimo. Obi$no je to dato u skali 1 - 10 ili procentualno 1% - 100 %. Problem je ! to se ve*om kompresijom gubi na kvalitetu slike, tako da se mora voditi ra$una o odnosu kvalitet - kompresija. Dizajneri Web-a $esto na) u kompromis tako da se lo! iji kvalitet slike izazvan kompresijom ne prime*uje na ekranu monitora. Postoje dodaci za postoje*i software za obradu slika, koji JPEG formatu daju mogu*nosti da se parcijalno prikazuje slika kako se u$itava, sli$no kao Interlace kod GIF formata. Ovaj oblik JPEG-a se naziva Progressive JPEG.

PNG
Portable Network Grafics Specificaton format je najnoviji format zapisa grafi$kih datoteka, optimizovan za upotrebu na Internetu. Op! te mi! ljenje je, da je ovaj format budu*nost Web grafike. On predsatavlja kobinaciju najboljih karakteristika GIF i JPEG formata. Najva' nije odlike PNG formata su: Podr' ava grayscale, 8-bitne, 24-bitne i 48-bitne vrste slika Kori! *en je napredan losseless algoritam kompresije, koji daje odli$ne rezultate.Nivo kopresije se mo' e menjati, a kori! *enjem dodatnih filtera za kompresiju (mo' e ih biti pet) posti' u se zapanjuju*i rezultati u smanjivanju veli$ine komprimovane datoteke Varijabilna transparentnost je tako) e podr' ana. To zna$i, da za razliku od GIF formata, gde piksel mo' e biti transparentan ili ne, kod PNG-a uvodi 254 nivoa transparentnosti Koristi se Gama korekcija koja ispravlaj razlike u izgledu grafike, koje se javljaju kod razli$itih platformi. (vidi poglavlje 3.) Interlaced na$in prikazivanja koji je znatno unapredjen u odnosu na druge formate koji podr' avaju sli$ne na$ine prikazivanja(GIF i Progressive JPEG)

Prema svemu iznetom, mo' e se zaklju$iti je da je PNG grafi$ki format superioran me) u svim formatima koji se koriste na Internetu.U njemu su implementirane najbolje osobine svih ostalih formata (pre svega se misli na GIF i JPEG). Ali PNG jo! uvek nije u ! irokoj upotrebi me) u korisnicima, a tako) e nije podr' an u $ita$ima na pravi na$in. Ostaje nada, da *e se to u skorije vreme promeniti i da *e ovaj format zauzeti visoko mesto, koje po svojim karakteristikama nesumnjivo zaslu' uje.

3D formati
Kao ! to je ve* ranije pominjano, jedna od glavnih karakteristika kod 2D grafi$kih formata je stepen primenjene kompresije. Ova osobina je kod 3D formata jo! izra' enija samim tim ! to su video datoteke vi! estruko ve*e, u odnosu na obi$nu 2D grafiku. Primenjuje se kompresija nad pojedina$nim slikama, kao i nad nizom slika. Sve tehnike kompresije koriste algoritam "codec" (Compressor/Decompressor). Stopa kompresije se defini! e kao odnos veli$ine datoteke pre i posle kompresije, i naj$e! *e se kre*e od 2:1 do preko 200:1. Svi 3D grafi$ki format se prili$no razlikuju, jer daju razli$it kvalitet animacije i drugu stopu kompresije. Postavlja se pitanje koji je od njih najbolji? Odgovor na ovo pitanje je prili$no te! ko dati, po! to zavisi od mnogo faktora kao i od vrste ra$unarske platforme. U svakom slu$aju, najpopularniji su slede*i formati: AVI ili Video for Windows je format napravljen radi distribucije video materijala u windows okru' enju. Ovaj format dozvoljava nekoliko razli$itih codec-a za kompresiju datoteke. U principu, svi ti algoritmi daju veoma sli$ne rezultate, tako da *e prose$an korisnik veoma te! ko primetiti razliku. Najpopularniji codec-i su Cinepak - bolji je za kompresiju animacija koje se sastoje od nekoliko boja. Drugi algoritam je Indeo - koristi se za kompresiju video materijala koji sadr' i ! iroku paletu boja. Oba algoritma su lossy, ! to zna$i da se kvalitet materijala smanjuje sa ve*im stepenom kompresije. Apple QuickTime - MOV je prvi format koji se pojavio na tr' i! tu, i u su! tini je veoma sli$an AVI formatu. Ovaj format je namenjen korisnicima Macintosh platformi. Tako) e koristi Cinepak i Indeo codec-e. MPEG je najmla) i format na tr' i! tu, ali zbog svojih kvaliteta (zadovoljavaju*eg kvaliteta slike i relativno male veli$ine datoteke) je veoma ! iroko rasprostranjen. Kod ovog formata algoritam kompresije je unapred zadat i ne mo' e se menjati. MPEG-1 kompresija je bazirana na prostornoj i vremenskoj komponenti kompresije. Vremenska komponenta se oslanja na sli$nost dve sukcesivne slike i koristi predvi) anje i kompenzaciju pokreta, dok je prostorna kompresija usmerena prema otklanjanju monotonih delova u okviru jedne slike (DCT transformacijom, kvantizacijom i entropijskim kodiranjem). MPEG - 2 je nastao kao odgovor na potrebu za generi$kim metodom kodiranja pokretnih slika i uklju$ivanja zvuka. Bitna razlika u odnosu na predhodni standard je podr! ka konceptu preplitanja - interlace.

Formati datoteka

Format je na$In na koji su snimljeni elektronski deli*i& koji $ine datoteku na ra$unaru. Razli$iti formati razli$ito struktuiraju ove deli*e. (Photoshop za neupu*ene, str.47-49). PCX Mati$ni format PaintBrush-a, ali i PixelPaint-a na Mac-u. TIFF (Tag Image File Format) Slu' i kao standard nezavisan od platforme. Veliki je komunikator. Nudi kompresiju bez gubitka. JPEG (Joint Photographical Expert Group) [tedljiv korisnik prostora. Koristi kompresiju sa gubitkom. EPS (Encapsulated PostScript) TIFF i JPEG snimaju samo slike, a EPS prihvata sve ! to ! tampa$ mo' e da od! tampa. Zauzima puno prostora. BMP (BitMaP) Primarni format za Windows grafiku, a podr' avaga ga i OS2. Generi$ki format slike. Opcija 1 bit podrazumeva da slika sadr% i dve boje, 4 bita - 16 boja, 8 bita - 256 boja i 24 bita - 16.800.000 boja. PSD Ovo je mati$ni format Photoshopa. Nudi kompresiju bez gubitka. Izbor formata u programskom paketu PhotoShop: Ako se slika ' eli koristiti u Photoshopu snimiti je u formatu PSD. Ako se slika ' eli koristiti u Photoshopu ali se ' eli ! tedeti prostor snimiti je u formatu BMP. Ako se slika ' eli u$itati u nekom drugom programu snimiti je u formatu TIFF ukoliko ima dovoljno mesta na disku. Ako se slika ' eli u$itati u nekom drugom programu, a nema dovoljno prostora na disku snimiti je u formatu JPEG. Ako se slika ' eli u$itati u nekom drugom programu koji ne podr' ava ni TIFF ni JPEG snimiti je u formatu EPS.

Formati Corel-a - u$itavanje: (Corel, str. 490-, str. 565-) CDR Format Corel crte' a. AI Format Afobe Illustrator-a DXF Format AutoCad CGM Format Compuer Graphics Metafile (koristi ga program Harvard Graphics) Corel Draw u$itava i formate EPS, TIFF, PCX. Pored navedeni formata CGM, DXF, EPS, PCX i TIFF datoteka mo' e iz Corel-a da se izveze i u formatima:

WMF Format Windows MetaFile GEM Format koji mo' e koristiti Ventura, ali zastareo. HPGL Format za posebne poslove, koji je pogodan za slanje ploterima Npr. Corel Trace vr! i vektorizaciju: bitmapirane formate (TIF, PCX, PCC, BMP, GIF, TGA) prevodi u EPS format.

Anti-alising
Ako se izbliza pogleda grafika na monitoru ra$unara (PC), primeti*e se ta$ke od kojih su objekti napravljeni. Ako je objekat nacrtan pod odgovaraju*im uglom, ivice objekta mogu izgledati izlomljeno. Tekst, a posebno onaj koji je ra) en u velikim fontovima, mo' e izgledati prili$no ru' no.

Na slede*oj slici prikazana su uve*anja linija i delova teksta. Jasno su vidljive isprekidane linije. Ti prekidi se nazivaju aliasing. Aliasing se pojavljuje kada se prikazuje podaci u rezoluciji koja nije dovoljno velika za prikazivanje svih va% nih informacija. Ve' ina kompjuterskih monitora ima rezoluciju od 96 ta#aka po in#u. Kada se prika% e neki objekat na monitoru, njegova rezolucija je 96 ta#aka po in#u. Me) utim, na e o#i mogu da razlu#e mnogo ve' u rezoluciju. Ovo dovodi do pojave aliasinga. Alialising se ne pojavljuje uvek. Na primer, kada se crtaju vertikalne ili horizontalne linije na ekranu. Ta#ke od kojih se sastoje ove linije sadr% e dovoljno va% nih informacija, tako da linije izgledaju glatko.

Drugi efekat koji proizilazi iz aliasinga je taj, da horizontalne i vertikalne linije izgledaju tamniije od dijagonalnih. Na slede*oj slici prikazano je nekoliko vertikalnih i horizontalnih linija. Ako su ove linje prikazane na monitoru sa rezlocijom od 96 ta$aka po in$u, vertikalne i horizontalne linije *e sadr' ati 96 ta$aka po in$u. Po! to su dijagonalne linije nacrtane pod uglom od 45

96 2 ta$aka ili pribli' no 68 ta$aka po in$u. Stoga *e stepeni, one *e sadr' ati samo
dijagonalne linije izgledati svetlije nego horizontalne i vertikalne linije. Anti/aliasing je proces koji redukuje efekte aliasing-a. U slede*em odeljku bi*e prikazane anti-anti-aliasing metode koje se koriste u Delphiju, a analogno va' e i za Visual Basic.

Re) avanje aliasing problema


Na slede*oj slici (slici 3.) prikazana je izbliza kratka crna linija ! irine jedne ta$ke. Ivica prikazuje lokaciju ta$aka na ekranu. Najlak! i na$in da se ovo nacrta jeste da se zatame ta$ke koje le' e najbli' e centru linije kao na slici 4. Ovaj metod je jednostavan i brz. Na' alost on mo' e prouzrokovati aliasing.

slika 3

slika 4.

Bolje re! enje je osen$iti svaku ta$ku kroz koju linija prolazi sa stepenom koji je proporcionalan pokrivenosti ta$ke linijom. Ako je ta$ka kompletno pokrivena linijom, ona mora biti crne boje. Ako je ta$ka sa 40% pokrivena linijom, ona mora biti boje koja je 40% od crne. Na slici 5. prikazana je linija koja je nacrtana na ovaj na$in.

slika 5. Ako se pogleda izbliza, linija *e izgledati $udno& . Me) utim, pogled sa normalne udaljenosti *e imati zadovoljavaju*e efekte, tj. aliasing *e biti redukovan.

Supersampling

Ideja koja stoji iza anti-aliasing metode je opisana u slede*em primeru: Potrebno je izra$unati procenat svake ta$ke koju prekriva objekat i nijansirati ta$ku odgovaraju*im iznosom. Me) utim, u ovom slu$aju matematika i te kako stoji iza ove kalkulacije. Mnogo je komplikovanije ako se ' eli izvesti anti-aliasing tekst karaktera kada se mo' da i ne znaju ta$ke tih karaktera. Supersampling ili postfiltering obezbe) uju alternativni metod za anti-aliasing koji je mnogo jednostavniji za implementaciju. Supersampling je trostepeni proces, mada se u praksi drugi i tre*i korak obi$no odvijaju u isto vreme. 1. Kao prvo, mo' e se napraviti slika u pove*anoj rezoluciji. Na primer, umesto da se napravi sliks sa 96 piksela po in$u, generi! e se sa 192 piksela po in$u. 2. Zatim se primeni tkz. LowPass filter da bi se uklonili visokofrekventne informacije koje proizvode aliasing. 3. I na kraju je potrebno vratiti sliku na originalnu veli$inu. Tako bi se radilo u nekom od crta$kih alata, recimo kao ! to je AdobePhotoShop. Me) utim, takav metod nije prakti$no mogu*e primeniti kada je u pitanju Delphi, Visual Basic ili neki sli$ni programski jezik. U Delphiju i Visual Basicu ne postoji na$in za kreiranje slike pove*ane rezolucije. Vrlo je komplikovano napisati program koji odre) uje koja ta$ka *e biti kori! *ena kada se crta u rezoluciji 192 ta$ke po in$u. Me) utim, ne mora se kreirati vi! e ta$aka po in$u. Jedino ! to je potrebno je da slika koristi vi! e ta$aka. Jednostavan na$in da se postignete ovaj cilj je da se slika nacrta u veli$ini koja je ve*a nego normalna. Umesto crtanja slike u mnogo ve*oj rezoluciji, crta*e se u normalnoj rezoluciji, ali sa dva puta ve*om veli$inom. Po! to se na taj na$in dobije dva puta vi! e ta$aka po X i Y pravcu, ovaj pristup *e dati $etiri puta vi! e ta$aka u slici. Mogu se kreirati uve*ane slike kori! *enjem Delphijeve crta$ke komande MoveTo, LineTo, Circle, Ellipse i ostale ili kod Visual Basica Line, Circle i Print metode. Antialiasing je tehnika za izgla) ivanje nazubljenih linija, ivica i sl. Ovim procesom se posti' u mek! e ivice tako ! to se interpoliraju novi pikseli sa srednjom vredno! *u boja. U skorije vreme se na PC ra$unarima koristi i hardverska implementacija metode antialising. Ovakva tehnologija omogu*ava ispravljenje gre! aka koje su se pojavljivale zbog aliasing efekta i daje lep! e i realnije scene. Hardverski je implementirana tzv. metoda edge antialising& . In' enjer Gary Tarolli je za PC ra$unare konstruisao T-buffer koji predstavlja varijantu antialiasing-a koja se koristi na skupim radnim stanicama.

Kornja ina grafika (Turtle graphics)


Prelazak iz tekstualnog re' ima rada u grafi$ki re' im rada na Turbo PROLOG-u se vr! i pomo*u predikata graphics. Kada se pre) e u grafi$ki na$in rada ekran se obri! e i "kornja$a" (turtle) se postavlja u sredinu ekrana. Pomo*u ugra) enih standardnih predikata mo' e se odrediti pozicija kornja$e, pravac i smer njenog pomeranja, kao i mogu*nost crtanja, tj. ostavljanja traga njenog kretanja u odre) enoj boji. U ovu grupu spadaju predikati: forward, back, right, left, pendown, penup, pencolour. Primer 1. Prikazati na sredini ekrana kvadrat u koji je upisan drugi kvadrat $ija temena polove stranice ve*eg kvadrata. Prema tome, ako se sa a obele' i du' ina stranice ve*eg kvadrata, onda se du' ina stranice manjeg kvadrata koja je obele' ena sa b, dobija: b = a / 2 . Predicates

goal

grafik. dkvadrat(integer). kvadrat(integer).

grafik. clauses grafik :- graphics(2,1,4), dkvadrat(2000). dkvadrat(V) :kvadrat(V), H=V/2, forward(H), left(45), D=72*S/10, kvadrat(D). kvadrat(S) :forward(S), left(90), forward(S), left(90), forward(S), left(90), forward(S), left(90). Primer 2. Neka se zadatak sastoji u prikazivanju kruga na ekranu. Predikat za crtanje kruga mo' e se obele' iti sa krug i realizovati na slede*i na$in: predicates krug

goal clauses

graphics(2,1,0), krug. krug:-forward(100), right(1), krug.

Primer 3. Prikazati na ekranu jednakostrani$ni mnogougao. Broj uglova unosi korisnik. predicates grafik. rekurz(integer,integer). goal grafik. clauses grafik :write("unesite broj uglova: "), readint(En), graphics(2,1,4), U = 360 / En,rekurz(En,U). rekurz(0,_). rekurz(N,U) :forward(10000), left(U), N1 = N - 1, rekurz(N1,U).

Ako se za broj uglova (En) unese 3 na ekranu ra$unara *e biti prikazan jednakostrani$ni trougao. Kada se za broj uglova unese 4 (En=4) bi*e prikazan kvadrat, za En=5 prikaza*e se jednakostrani$ni petougaonik, za En=6 bi*e prikazan jednakostrani$ni ! estougaonik, itd. Primer 4. Prikazati na ekranu zvezdasti mnogougaonik. predicates grafik. unos(integer,integer). rekurz(integer,integer,integer,integer). goal grafik. clauses grafik :- unos(U,S), graphics(2,1,4), rekurz(S,U,0,1). unos(144,10000). rekurz(_,_,_,0). rekurz(L,U,SU,_) :- forward(L), left(U), SU1 = (SU + U) mod 360, rekurz(L,U,SU1,SU1).

Program *e za date argumente predikata unos na ekranu nacrtati petokraku. Kada se za argumente ovog predikata unesu vrednosti ra$unara *e se prikazati slede*a slika. unos(190,10000) na ekranu

Neki poznati problemi KENINGSBER+KI MOSTOVI


Preko reke koja proti$e kroz grad Keningsberg (dana! nji Kaljingrad) i koju ostrvo A deli na dva rukavca, postoji sedam mostova a, b, c, d, e, f, g. Da li je mogu*e pre*i sve mostove ne prelaze*i ni preko jednog dva ili vi! e puta?

Re! enje: Ovaj zadatak je postavio i re! io Leonard Ojler u XVIII veku. On je pokazao da se zadatak o keningsber! kim mostovima svodi na zadatak o crtanju mre' e u ravni u jednom potezu (ne podi' u*i olovku sa hartije), ne prelaze*i po ve* povu$enoj liniji. Takva jedna zatvorena mre' a, koja se sastoji od ta$aka ($vorova) i linija koje spajaju ove ta$ke, a ne presecaju se me) usobno, mogu se predstaviti pomo*u grafa. Dva $vora grafa zovu se susedna ako su spojena linijom. Za grafove koji se mogu nacrtati na pomenuti na$in ka' e se da poseduju Ojlerov put. Teorema koja daje uslove za postizanje Ojlerovog puta glasi: Graf poseduje Ojlerov put ako i samo ako ima dva ili nijedan $vor neparnog reda. Graf koji odgovara rasporedu keningsber! kih mostova ima 4 $vora neparnog stepena tako da, na osnovu Ojlerove teoreme, prelaz preko sedam keningsber! kih mostova nije mogu*e izvr! iti u jednom potezu. Primena Ojlerovih puteva je u organizaciji pojedinih slu' bi (npr. po! te) velikih gradova.

g d C c A e

f b a B

PRELAZ PREKO 15 MOSTOVA


8 etiri ostrva spojena su me|u sobom i sa obalama reke pomo*u mostova kao na donjoj slici. Da li se u jednom potezu& mogu pre*i svi mostovi, ne prelaze*i dva ili vi! e puta ni preko jednog?

Graf za ovaj zadatak ima dva neparna $vora (D i E), dok su svi ostali $vorovi parni. Na osnovu Ojlerove teoreme sledi da se postavljeni zadatak mo' e re! iti i to polaze*i iz jednog od $vorova D ili E. Prelaz se mo' e ostvariti u poretku: E a F b B c F d A e F f C g A h C i D k A m En A p B q E l D ili u obrnutom smeru.

D m k g h

n p c e f d

F
- UVARI MUZEJA
Ako galerija ima n zidova, koliko je najmanje $uvara potrebno da bi oni mogli potpuno da kontroli! u celokupan prostor galerije?

Re! enje problema vezano je za Hvatalovu teoremu. Va! eh Hvatal (Univerzitet Mekgil u Montrealu, Kanada) dokazao je da ako galerija ima n zidova (tj. ako obrazuje n-tougaonik), tada je minimalan broj $uvara koji je potreban da nadgleda celu galeriju jednak celobrojnom delu n/3.

Galerija od n strana se posmatra kao n-tougaonik, koji se mo' e podeliti na trouglove pomo*u nepresecaju*ih dijagonala koje spajaju njegova temena (tzv. triangulacija). Temena dobijenog grafa se oboje tako da ona koja pripadaju istoj du' i budu obojena razli$itim bojama. Koriste*i metod matemati$ke indukcije mo' e se dokazati da je za ovakvo bojenje dovoljno tri boje. Ako je n=3 galerija ima oblik trougla i za bojenje njegovih temena su dovoljne tri boje. Zatim se pretpostavlja da su tri boje dovoljne za pravilno bojenje temena trianguliranog n-tougaonika G/ (n>3). Ako se posmatra mnogougaounik G sa (n+1)-stranom koji se dobija iz G/ tako {to se umesto strane (zida galerije) AB posmatraju pridodate strane (zidovi) AC i CB. Po induktivnoj pretpostavci temena trianguliranog n-tougaonika G/ su obojena pomo*u tri boje. Temena A i B le' e na istoj du' i tako da su obojena razli$itim bojama. Ako se teme C trougla ABC oboji tre*om bojom proizilazi da je i mnogougaonik G sa (n+1) - stranom mogu*e obojiti pomo*u tri boje. To zna$i da se temena svakog trianguliranog n-tougaonika mogu obojiti pomo*u tri razli$ite boje: a, b i c tako da me) usobno povezana temena budu obojena razli$itim bojama. Neka Na, Nb i Nc ozna$ava broj temena obojenih redom bojama a, b i c. Ako je n broj strana trianguliranog mnogougaonika, mo' e se primetiti da razlika izme) u brojeva Na, Nb i Nc iznosi ili 0 ili 1. U slu$aju da je n deljivo sa 3, tada je Na = Nb = Nc = n / 3; u suprotnom ovi brojevi pripadaju skupu {[n/3], [n/3]+1}. Dakle, minimalan broj temena u jednoj boji je [n/3]. Ako se u svako od ovih temena postave $uvari oni *e kontrolisati $itavu galeriju, jer *e na ovaj na$in kontrolisati svaki od trouglova na koje je podeljen n-tougaonik.

G
A

G'

Re! enje ovog zadatka ima prakti$nu primenu za raspored $uvara u muzejima, umenti$kim galerijama i drugim objektima gde se zahteva nadzor celokupnog prostora, jer je geometrijski oblik pomenutih prostora $esto veoma slo' en i $ini $udne ornamente. Aproksimativno se mo' e uzeti da ravanski presek ovih prostorija ima oblik mnogougaonika.

Teorija boje
Boja ima dva zna$enja i predstavlja: Subjektivni $ovekov ose*aj koji se javlja prilikom posmatranja svetlosti, odnosno Supstancu koja sadr' i pigmente.

Boje se mogu opisati objektivnim i subjektivnim parametrima. Objektivni parametri boje: Talasna du' ina, 8 isto*a, Svetlosni fluks.

Talasna du' ina i $isto*a odre) uju hromati$nost svetlosti, tj. ose*aj boje. Objektivnim parametrima odgovaraju subjektivni parametri boje: Ton boje ili stepen obojenosti (Hue) odgovara talasnoj du' ini, Veli$ina zasi*enja (Saturation) odgovara $isto*i boje, Svetlina boje (Brightness) odgovara svtlosnom fluksu.

Metod opisivanja boje subjektivnim faktorima obele' ava se sa HSB. Veli$ina zasi*enja predstavlja stepen odstupanja neke boje od sive boje iste svetline. Zasi*enje je obrnuto srazmerno udelu sivog u boji. Potpuno zasi*ena je ona boja koja ne sadr' i sivu, takve su spektralne boje, dok su potpuno nezasi*ene: bela, crna, sivi tonovi. Osnovne boje su: Crvena, : uta i Plava.

Bela boja = crvena + ' uta + plava. Komplementarne boje: Crvena , zelena (= ' uta + plava), Plava , narand' asta (= ' uta + crvena), : uta , ljubi$asta (= crvena + plava).

Prilikom kreiranja slika na ra$unaru potrebno je voditi ra$una o estetici i o: Prostornom efektu boja, Harmoniji i slaganju boja, Kontrastu boja:

o o o o

Kontrast boje prema boji, Svetlo-tamni kontrast, Hladno-topli kontrast, Komplementarni kontrast, ...

Postoje dva osnovna na$ina izra' avanja boja: Aditivni metod i Suptraktivni metod.

Aditivni metod
Boju je mogu' e izraziti preko tri komponente. Kao osnovu aditivne sinteze boja izabrane su iz spektra slede' e boje: Crvena (Red), Zelena (Green), Plava (Blue).

To su primarne boje. Od po#etnih slova engleskih naziva ovih boja, metoda se #esto naziva i RGB. Ovom metodom se vr i formiranje boje na ekranu ra#unara. Komponenta 1 Komponenta 2 Komponenta 3 Rezultat R G B bela R G % uta R B magenta G B cijan crna

Suptraktivni metod
Ovo je drugi na#in za formiranje boje. Pomo' u filtera se iz spektra bele svetlosti oduzimaju pojedine komponente. Osnovne komponente su: : uta (Yellow), Magenta (Magenta), Cijan (Cyan).

Od po$etnih slova engleskih naziva ovih boja metod se $esto naziva YMC. Vi! ebojna ! tampa se radi ovom metodom. U procesu ! tampe se dodaje jo! i crna boja, pa se tada metod naziva YMCK. Da bi se u ! tampi reprodukovao vi! ebojni original potrebno je za svaku njegovu ta$ku odrediti udeo osnovnih boja suptraktivnog metoda (Y, M, C). To se posti' e: klasi$nim repro-fotografskim postupkom (snimanje originala kroz crveni, zeleni i plavi filter; pri svakom snimanju izdvaja se komplementarna boja i dobija film sa njenim udelom), ili skeniranjem slike (korekcija se vr! i na ra$unaru).

Y R
G

M R
B

C
G B

R Y M R

Y C
G

M C
B

Y M C
crna boja (Black)

Transformacija slika u ra unarskoj grafici


Osnovne afine transformacije u 2d U okviru ove nastavne jedinice, bi*e obra) ene slede*e transformacije: 1. 2. 3. 4. 5. 6. Translacija Skaliranje u 2D Rotacija oko koordinatnog po$etka Smicanje u 2D Afina transformacija=linearna+translacija Homogenizacija afinih transformacija

Translacija

Translacija je odre) ena parom odgovaraju*ih ta$aka A i A. Radijus vektor (x,y) ta$ke A odre) uje se kao zbir radijus vektora (x,y) ta$ke A i vektora translacije (x,y). (x,y)= (x+ x, y+ y) Skaliranje u 2D Skaliranje je afino preslikavanje koordinatne ravni na sebe, koje omogu*ava nezavisno pode! avanje odnosa veli$ina jedini$nih podeoka na razli$itim koordinatnim osama. Matrica skaliranja, sa parametrima (argumentima) a i b je dijagonalna matrica:

a 0 H (a, b ) = 0 b
tj. Transformacije po koordinatama su x = a*x i y = b*y

Rotacija oko koordinatnog po$etka Neka se prirotaciji za ugao u pozitivnom smeru oko koordinatnog po$etka O ta$ka A(x,y) preslikava na ta$ku A(x,y) i neka je sa ozna$en ugao koji poluprava OA odre) uje sa pozitivnim krakom x-ose. Prema slici . va' i: X=r cos y=r sin x=r cos( +) y=r sin( +)

Primenom adicionih formula dobija se:

X= r cos cos - r sin sin = xcos - ysin Y= r cos sin + rsin cos = xsin + ycos Mo' e da se zapi! e i A=A pri $emu je matrica rotacije:

cos R( ) = sin
Smicanje u 2D

sin cos

Smicanje u pravcu neke ose je afina transformacija kojom se sve ta$ke ravni pomeraju paralelno toj osi, u jednom od dva mogu*a smera, za du' inu koja je srazmerna njihovom odstojanju od ose. Ako sa A1 ozna$imo sliku ta$ke A pri smicanju i sa A podno' je normale iz ta$ke A na razmatranu osu, onda veli$inu smicanja odre) ujemo kao veli$inu orijentisanog ugla <A1AA Tako smicanje za ugao a u smeru x-ose mo' e da se predstavi pomo*u veza x=x+ytg; y=y kojima odgovara slede*a matrica transformacije:

1 Sxa = tg

0 1

Afina transformacija= linearna+translacija Postojanje upravo uvedenih matrica R(), H(a,b) i Sx() samo po sebi govori da su rotacija oko koordinatnog po$etka, skaliranje i smicanje linearne transformacije i u slu$aju kada se primenjuju nehomogene koordinate. - to se ti$e translacije, videli smo da ona pri radu sa nehomogenim koordinatama nije linearna transformacija. Sa druge strane, translacija je svakako afina transformacija, budu*i da $uva paralelnost pravih. Ispostavlja se da op! ta afina transformacija u euklidskom prostoru (u kome koristimo nehomogene koordinate) mo' e da se defini! e kao kompozicija linearne transformacije L i translacije T(a) za neki vektor a. Pritom va' i: T(a)L=LT(aL) Na primer, ako se sa L ozna$i rotacija oko koordinatnog po$etka za neki ugao a, onda na slici va' i X=XT(a) , Xn=XL, Xm=XT(a)L=XLT(aL)

Homogenizacija afinih transformacija Nakon homogenizacije, translacija za vektor (x,y) mo' e da se realizuje dejstvom matrice:

0 0 1 T (x, y ) = 1 0 0 x y 1
Dok matrice R(), H(a,b) i Sx() redom dobijaju slede*i izgled:

cos sin 0

sin cos 0

0 0 1

a 0 0 1 0 b 0 tg 0 0 1 0

0 0 1 0 0 1

Zadatak Ta$ka P(3,4) se rotiranjem za ugao = 45 oko ta$ke Q (1,2) prevodi na lokaciju P1(x1,y1) odakle se odgovaraju*om translacijom prevodi na novu lokaciju P2(-1,9). Zatim se zahteva neproporcijalno skaliranje u odnosu na ta$ku A(-1,3) sa faktorima skaliranja 2 i 1.5, redom po x i y osi. Odrediti matricu translacije i novu lokaciju P3 (x3,y3)

cos 4 0 0 1 0 * sin 1 0 4 1 2 1 0

4 cos 4 0 sin

0 1 0 0 1 0 0 0.71 0.71 0 1 0 0 0 * 0 1 0 = 0 1 0 * 0.71 0.71 0 * 0 1 0 = 0 1 1 1 2 1 1 2 1 0 1 2 1

0.71 0 1 0 0 0.71 0.71 0 0.71 0.71 0.71 0 * 0 1 0 = 0.71 0.71 0 0 . 71 2 . 13 1 1 2 1 1 . 71 0 . 13 1

[x1

y1

0.71 0 0.71 1] = [3 4 1]* 0.71 0.71 0 = [1 4.84 1] 1.71 0.13 1

P1(1,4.84)

1 [ 1 9 1] = [1 4.84 1]* 0 Dx 1 = 1 + D x D x = 2 9 = 4.84 + D y D y = 4.16

0 1 Dy

0 0 = 1 + D x 1

4.84 + D y ` 1

0 0 1 T ( 2,4,.16) = 0 1 0 2 4 . 16 1 0 0 1 0 0 2 0 0 1 0 0 2 0 0 1 0 0 2 0 1 0 * 0 1.5 0 * 0 1 0 = 0 1.5 0 * 0 1 0 = 0 1.5 0 1 3 1 0 0 1 1 3 1 2 4.5 1 1 3 1 1 1.5 1

[x 3

y3

0 0 2 1] = [ 1 9 1] = 0 1.5 0 = [ 1 12 1] 1 1.5 1

P3(-1, 12)

Transformacije u 3D grafici Translacija u 3D


P` = P * T

P = [x y z 1] P`= [x` y` z ` 1]

Faktori translacije po x, y i z-osi su redom: Dx, Dy i Dz. Matrica translacije T:

[x`

y ` z ` 1] = [x

11]* T0 z 0 1 0 0 Dx Dy

0 0 0 Dz 1 0 0 1

Skaliranje u 3D P = [x
P` = P * S

P`= [x` y` z ` 1]

z 1]

[x`

y ` z ` 1] = [x

z 1]* S

Faktori skaliranja po x, y i z-osi su redom: Sx, Sy i Sz.

Matrica skaliranja S:

Sx 0 0 0 0 Sy 0 0 0 0 Sz 0 0 0 0 1

Rotacija u 3D
P` = P * R

P = [x

P`= [x` y` z ` 1`]

z 1]

Ugao rotacije (obrtanja) meri se u smeru koji je suprotan smeru kretanja kazaljke na $asovniku. Matrica rotacije R oko ose koja je paralelna x-osi:

0 1 0 cos 0 sin 0 0

0 sin cos 0

0 0 0 1

Matrica rotacije R oko ose koja je paralelna y-osi:

cos 0 sin 0

0 sin 1 0 0 cos 0 0

0 0 0 1

Matrica rotacije R oko ose koja je paralelna z-osi:

cos sin 0 0

sin cos 0 0

0 0 1 0

0 0 0 1

You might also like