You are on page 1of 20

Vektorska grafika

 Slika kod vektorske grafike se formira pomoću


geometrijskih objekata, kao što su tačke, linije, krive,
poligoni, ili krive koje se temelje na matematičkim
funkcijama.
 Ti se geometrijski objekti nazivaju primitivi.

Računarska grafika i animacija 1


Vektorska grafika
 Na primjer, za modeliranje kruga poluprečnika "r",
potrebne su sljedeće informacije:
 Informacija o tome da se namjerava nacrtati krug (a ne neki
drugi primitiv)
 Poluprečnik "r"
 Koordinate tačke za centar kruga
 Stil, debljina i boja linije
 Stil i boja unutrašnjosti kruga.

Računarska grafika i animacija 2


Vektorska grafika
 Prednosti ovakve definicije u odnosu na rastersku grafiku
su:
 Minimalna količina informacija zahtijeva znatno manju veličinu
datoteke u odnosu raster sliku (veličina ne zavisi od dimenzija
slike)
 Može se neograničeno zumirati na dio kruga, a da rub kruga
ostaje gladak. Kod rasterske slike sa zumiranjem dolazi do
pojave "nazubljenosti" ruba, odnosno pikseli postaju vidljivi
kao kvadrati.
 Parametri objekata ostaju pohranjeni i mogu se naknadno
mijenjati. To znači da translacija, skaliranje, rotacija, promjena
boje unutrašnjosti i sl. ne degradiraju kvalitet crteža.

Računarska grafika i animacija 3


Vektorska grafika
 Tipični objekti koji se koriste kao 2D primitivi obuhvataju:
 Duži (linije),
 Višestruke segmente povezanih linija (polyline),
 Poligone (pravougaonik, trougao, trapez i sl.),
 Krugove i elipse,
 Bézierove krive i tekst (različiti fontovi, gdje se svako slovo
formira od Bézierovih krivih).
 Nekad se i rasterske slike koriste kao primitivi, a u relaciji s
drugim objektima ponašaju se kao pravougaoni poligoni.

Računarska grafika i animacija 4


Vektorska grafika
 Vektorska grafika omogućava transformacije objekata kao što
su:
 Translacija,
 Rotacija,
 Simetrično preslikavanje (mirror),
 Skaliranje,
 Kombinovanje primitiva u složenije objekte.
 Često se koriste tehnike kao što je odsijecanje linija do neke
granice (trim), koso obaranje ivica (chamfer), obaranje ivica
radijusom (fillet), te matematičke operacije nad likovima kao
što su presjek, unija i razlika.
 Jednom kreirani objekti se mogu kopirati, od njih se mogu
praviti višestruke pravilno raspoređene kopije (pattern), te
koncentrične
Računarska kopije (offset).
grafika i animacija 5
Vektorska grafika - Tačka
 Tačka je svojstvo prostora (element prostora; osnovna gradivna
nedjeljiva cjelina).
 Označavanje tačke zavisi o prostoru u kojem se ta tačka nalazi. Ono
osnovno što određuje način označavanja tačke jest
dimenzionalnost prostora.
 Svaka tačka označena je svojim koordinatama, i to s toliko
koordinata kolika je dimenzija prostora.
 Tako će tačka u 2D prostoru biti označena pomoću dvije
koordinate: x i y.
 U 3D prostoru tačka će biti označena pomoću tri koordinate: x, y i
z.
 U nastavku ćemo tačke označavati kao uređene n-torke
koordinata, npr. (x, y, z)
Računarska grafika i animacija 6
Vektorska grafika

Računarska grafika i animacija 7


Vektorska grafika

Računarska grafika i animacija 8


Vektorska grafika

Računarska grafika i animacija 9


Vektorska grafika - Vektor
  
Vektor ćemo promatrati kao usmjerenu dužinu.
 Vektor će nam obično služiti kao gradijent, tj. pokazatelj
koji govori za koliko se nešto mijenja.
 Zapis vektora, isto kao i tačke zavisi o prostoru u kojem se
taj vektor opisuje, te će imati onoliko komponenti kolika
je dimenzionalnost prostora.
 Zbog toga ćemo vektore također zapisivati kao uređene n-
torke, npr. = (x,y,z).

Računarska grafika i animacija 10


Vektorska grafika - Vektor

Računarska grafika i animacija 11


Vektorska grafika - Vektor

Računarska grafika i animacija 12


Vektorska grafika - Vektor

Računarska grafika i animacija 13


Vektorska grafika - Vektor
  
Skalarni i
vektorskiproizvoddvasutemeljnaoperatoralinearnealgebre
, i kaotakvičinenezaobilazanalatračunarskegrafike.
 Skalarni proizvod je
operacijakojakaorezultatmnoženjadvajuvektoradajeskalar
(broj). Npr. zavektore  i  može se
skalarniproizvoddefinisatijednostavnimizrazom:

 Gdje je θ ugao između vektora, a a i b njegovi iznosi.

Računarska grafika i animacija 14


Vektorska grafika - Vektor
  
Vektorski proizvod je operacija koja kao rezultat množenja
dvaju vektora (npr. vektora  i ) daje treći vektor, smjera
koji je okomit na smjerove vektora koje množimo, a
orijentaciju mu određuje pravilo desne ruke.
 Rezultantni vektorpiše se kao , a izos mu je:

Računarska grafika i animacija 15


Vektorska grafika - Vektor

Računarska grafika i animacija 16


Vektorska grafika - Interpolacija
 U računarskoj grafici često se koriste interpolacije.
Primjerice, pri animaciji nekog objekta želimo brzinu
kojom se objekt kreće smanjiti od početne do konačne u
nekoliko koraka, ili pak želimo objekt pomaknuti od jedne
pozicije do druge pozicije ali tako da se dobije dojam
kontinuiranog kretanja i slično. U svim tim situacijama
imamo zadanu početnu i konačnu vrijednost, i naš je
zadatak pronaći niz međuvrijednosti.
 Ovisno o potrebama, interpolaciju možemo raditi na
različite načine.

Računarska grafika i animacija 17


Vektorska grafika - Interpolacija
 Linearna interpolacija
 Interpolacija kubnim polinomima
 Bilinearna interpolacija
 Interpolacija vektora

Računarska grafika i animacija 18


Vektorska grafika - Interpolacija
 Linearna interpolacija koristi se za interpolaciju između dvije vrijednosti koje
smo označavali s x0 i x1.
 U praksi se, međutim, često javlja problem interpolacije između četiri
vrijednosti, odnosno preciznije bi bilo reći između dva para vrijednosti.
 Primjer: Pravimo program za renderiranje 3D modela s potporom za ljepljenje
tekstura na objekte. Kao teksturu smo uzeli sliku pepsi.png - to je slika
dimenzija 100 × 400 koja prikazuje limenku pepsi-cole u 256 nijansi sive boje.
 Naša scena se sastoji od jednog valjka na koji je potrebno zalijepiti ovu
teksturu kako konačni rezultat ne bi bio jednobojni valjak već valjak koji
izgleda kao limenka pepsi-cole.
 Potom smo pokrenuli generiranje visokorezolucijskog prikaza naše scene.
Prilikom renderiranja, program je utvrdio da slikovnom elementu ekrana na
poziciji (352, 692) odgovara element teksture s koordinatama (29.75, 140.25).
Postavlja se pitanje – koju ćemo vrijednost slikovnog elementa iz slike
teksture uzeti za popunjavanje odabranog slikovnog elementa zaslona?

Računarska grafika i animacija 19


Vektorska grafika - Interpolacija
 Da su kojim slučajem koordinate u teksturi ispale cjelobrojne, primjerice (29,
140), mogli bismo bez razmišljanja uzeti vrijednost tog slikovnog elemenata.
Međutim, to se nije dogodilo. Jedno moguće rješenje problema je postupiti
na sljedeći način: zaokružimo dobivene koordinate (29.75, 140.25) → (30,
140) i očitajmo boju slikovnog elementa na tim koordinatama u teksturi.
 Nažalost, kako zaokruživanje tipično vodi do nazubljenog prikaza i niza drugih
problema, bolje je rješenje boju konstruirati interpolacijom. Kako je x
koordinata s kojom ulazimo u teksturu 29.75, nalazimo se između slikovnog
elementa koji ima x = 29 i slikovnog elementa koji ima x = 30; isto tako, kako
je y koordinata s kojom ulazimo u teksturu 140.25, nalazimo se između
slikovnog elementa koji ima y = 140 i slikovnog elementa koji ima y = 141.
 Oko pogođene lokacije imamo dakle 4 slikovna elementa: (29, 140), (30, 140),
(29, 141) i (30, 141). Za svaki od tih slikovnih elemenata u teksturi možemo
pročitati boju (odnosno u našem slučaju gdje radimo s 256 nijansi sive,
možemo pročitati pridruženi intenzitet sive).

Računarska grafika i animacija 20

You might also like