1 / 32

Računarska geometrija i računarska grafika

Računarska geometrija i računarska grafika. profesor : dr Milorad Banjanin. student: Ivan Milanovic. Sadržaj. Definicije Brasenhajmov algoritam za crtanje duži Brasenhajmov algoritam za crtanje kružnice Popunjavanje poligona bojom Aliasing i anti-aliasing. Računarska grafika :

lilli
Download Presentation

Računarska geometrija i računarska grafika

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Računarska geometrijairačunarska grafika profesor: drMiloradBanjanin student: Ivan Milanovic

  2. Sadržaj • Definicije • Brasenhajmov algoritam za crtanje duži • Brasenhajmov algoritam za crtanje kružnice • Popunjavanje poligona bojom • Aliasing i anti-aliasing

  3. Računarskagrafika: –granična oblast računarstvai geometrijekoja se bavi vjernimprikazivanjem geometrijskihobjekatanaekranu Računarskageometrija: –deomatematikekoji se bavi algoritamskimrešavanjem geometrijskihproblema 2D prostor u kome se modeliraju matematički objekti je kontinualan –duži, kružnice ili krive nemaju “debljinu” Ekran (ili drugi rasterski izlazni uređaj) je diskretan –sastavljen od konačnog skupa tačaka (piksela) –tačke mogu biti u dva stanja (monohromatski) ili većeg broja stanja iz konačnog skupa (kolor) Kako verno predstaviti geometrijske objekte na ekranu?

  4. Bresenhamov algoritam za crtanje duži •Izračunava piksele koje treba “osvetliti”odnosno uključiti •Inkrementalni algoritam –izračunava se piksel po piksel

  5. Ideja U svakom koraku povećavamoxza jedani biramo između dve različiteykoordinate. Na primer, posle pozicije (2, 3) treba da izaberemo između (3, 3) i (3, 4) Želimo odabrati tačku koja je bliža originalnoj liniji 5 (xk+1, yk+1) 4 (xk, yk) 3 (xk+1, yk) 2 2 3 4 5

  6. Brasenhajmov algoritam za crtanje duži yk+1 dgore y ddole yk xk+1 Zaxk+1obeležimo vertikalna rastojanja od matematičke prave do susednih piksela sadgoreiddole Koordinatayna matematičkoj pravoju tačkixk+1je:

  7. Brasenhajmov algoritam za crtanje duži Sledi da je: i da je: Ove veličine možemo upotrebitipri odlučivanju koji je piksel bližimatematičkoj pravoj.

  8. Brasenhajmov algoritam za crtanje duži Odluka će zavisiti od razlikeizmeđu pozicije dva susedna piksela: Zamenimo li msa∆y/∆xgdjesu ∆xi∆yrastojanja između krajnjih tačaka, dobija se:

  9. Brasenhajmov algoritam za crtanje duži Parametar odlukepkzak-tikorak iscrtavanja duži dat je sa: Znak parametra odluke pkjednak je znaku od ddole – dgore Pa ako jepk negativan broj, osvetliće se piksel ispod matematičke prave, a ako je pozitivan osvetliće se piksel iznad prave

  10. Brasenhajmov algoritam za crtanje duži Uk+1 koraku parametar odluke jedat sa: Oduzimanjempkod ovoga dobijamo: Sva izračunavanja su celobrojna, što znatno ubrzava ovaj algoritam

  11. Brasenhajmov algoritam za crtanje duži Pošto je, xk+1isto kao ixk+1 sledi da je: ayk+1 – ykje 0 ili 1 što zavisi od znaka uzpk Prvi parametar odluke p0izračunava se u tački (x0, y0) i dat je sa:

  12. Brasenhajmov algoritam za crtanje duži • (za |m| < 1.0) • Ulaz zahteva krajnje tačke linije, a potom učitava levu krajnju tačku na poziciju(x0, y0) • Osvetljava tačku(x0, y0) • Računa konstanteΔx, Δy, 2Δy, i (2Δy - 2Δx) i početnu vrednostza parametar odluke: • Za svakoxkduž linije, počevši odk = 0, se ispituje: • Ako jepk < 0, osvjetljuje se tačka(xk+1, yk)i:

  13. Brasenhajmov algoritam za crtanje duži Upozorenje! Ovajalgoritamje tačan samo ako je izvod prave manji od jedan (|m| < 1.0). Za druge pravce neophodno je prilagođavanje algoritma. • U suprotnom, osvetljuje se tačka (xk+1, yk+1) i: • Ponavljanje koraka 4, (Δx – 1) puta

  14. Brasenhajmov algoritam srednje-tačke kružnice Slično kao za linije, postoji i rekurzivni algoritam za crtanje kružnice – algoritam srednje-tačkekružnice U ovom algoritmuse upotrebljavaosmostrana simetrija, tako da računamo samo tačke gornje desne osmine kruga, a zatim koristimo simetriju za dobijanje ostalih tačaka kružnice. Jack Bresenham, izumitelj rekurzivnog algoritma srednje tačke kružnice ialgoritma za crtanje duži

  15. Brasenhajmov algoritam srednje-tačke kružnice (xk+1, yk) (xk, yk) (xk+1, yk-1) Osvetljena je tačka (xk, yk) Sledeća se osvetljuje jedna od tačaka (xk+1, yk) ;(xk+1, yk-1). Želimo da izaberemotačku koja je bližastvarnojkružnici. Koja je ta tačka ?

  16. Brasenhajmov algoritam srednje-tačke kružnice Predstavimo jednačinu kružnice na sledeći način: Dobija se da je: Izračunavši funkcijuza “srednju tačku”, koja se nalazi između piksela koji su kandidati za osvijetljavanje, omogućuje nam da donesemo odluku

  17. Brasenhajmov algoritam srednje-tačke kružnice Uzmimo da je osvetljena tačka (xk,yk) pa trebamo odabrati između (xk+1,yk) i (xk+1,yk-1) Parametar odluke je tada: Ako je pk< 0,srednja tačka je unutar kružnicepa je piksel saykbliži kružnici U suprotnom je bliža tačka sayk-1

  18. Brasenhajmov algoritam srednje-tačke kružnice Izvedimo rekurzivnu formulu Imamo da je: ili: gdjeyk+1menjamo saykili sayk-1u zavisnosti od znaka pk

  19. Brasenhajmov algoritam srednje-tačke kružnice Prvi parametar odluke je zadat sa: Pa ako jepk < 0 onda je sledeći parametar odluke: A ako je pk > 0 onda je:

  20. Brasenhajmov algoritam srednje-tačke kružnice • Uzima se radijusri centar kružnice(xc, yc), i podešavaju koordinate za prvu tačku kružnice: 2. Računa inicijalnu vrednost parametra odluke: 3. Počevši odk = 0,za svakoxk, ispituje se: Ako jepk < 0, sledeća tačka koja se osvetljuje je (xk+1, yk) i:

  21. Brasenhajmov algoritam srednje-tačke kružnice U suprotnom osvetljuje se tačka(xk+1, yk-1)i: • Određuju se tačke simetrije za ostatak kružnice • Pomeraju se izračunati pikseli(x, y)oko centrakružnice u tački(xc, yc)i osvetljuju se sledeći pikseli: • Ponavljaju se koraci od 3 do 5 sve dok jex >= y

  22. Popunjavanje poligona bojom Kako se boje poligoni? Upotrebom rekurzivnog algoritmapoznatog kaoscan-line algoritam

  23. Popunjavanje poligona bojom 10 Scan Line 8 6 4 2 0 2 4 6 8 10 12 14 16

  24. Popunjavanje poligona bojom Osnovni koraci scan-line algoritmasu: • Pronalazakpresečnih tačaka scan linije sasvimivicama poligona • Sortiranjepresečnih tačaka po x koordinati • Osvetljavanje svih pikselaizmeđu parovapresečnih tačaka koje leže unutar poligona

  25. Popunjavanje poligona bojom

  26. Aliasing Aliasing je potencijalni problem kad god se analogni signal konvertuje u digitalni U prikazu 2D grafike tipičan problem je pojava nazubljenih ivica kosih linija

  27. Aliasing Gustina matrice piksela nije dovoljna za prikaz sitnih detalja Teksture gube svoje vizuelne karakteristike

  28. Anti-aliasing Prefiltering –piksel se tretira kao 2D objekat koji ima dimenzije (kvadrat) –njegova boja se izračunava na osnovu boja koje su prisutne u crtežu na površini koju taj kvadrat prekriva

  29. Anti-aliasing Prefiltering –prikaz slova –tehnika je nezavisna od izabranog fonta

  30. Anti-aliasing Postfiltering (supersampling) –slika se renderujenanputavećojrezolucijinegoštoćebitiprikazivana –boja konačnog piksela se računa kao prosek boja pod-piksela od kojih se on sastoji Primjer •zasliku 512x512 iscrtava se slikasa 3 putagušćommatricom 1536x1536 •bojapiksela se računakaoprosekbojadevet pod-pikselaodkojih se sastoji •nijesvaki pod-pikseljednakoznačajan –u račun se uvodetežinskikoeficijenti

  31. HVALA NA PAŽNJI Ivan Milanović

  32. Osmostrana simetrija (-x, y) (x, y) (-y, x) (y, x) (-y, -x) (y, -x) (-x, -y) (x, -y) Osobina koja omogućuje efikasno crtanje kružnice

More Related