Računarska grafika. Rasterizacija linije

Σχετικά έγγραφα
Računarska grafika. Rasterizacija linije

Ispitivanje toka i skiciranje grafika funkcija

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

3.1 Granična vrednost funkcije u tački

Kontrolni zadatak (Tačka, prava, ravan, diedar, poliedar, ortogonalna projekcija), grupa A

Računarska grafika - vežbe. 9 Rasterizacija kružnice

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.

numeričkih deskriptivnih mera.

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

Inženjerska grafika geometrijskih oblika (5. predavanje, tema1)

SISTEMI NELINEARNIH JEDNAČINA

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

Obrada signala

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

Program testirati pomoću podataka iz sledeće tabele:

Zavrxni ispit iz Matematiqke analize 1

41. Jednačine koje se svode na kvadratne

Matematka 1 Zadaci za drugi kolokvijum

IZVODI ZADACI (I deo)

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

5. Karakteristične funkcije

Prvi kolokvijum. y 4 dy = 0. Drugi kolokvijum. Treći kolokvijum

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

Elementi spektralne teorije matrica

MATEMATIKA 2. Grupa 1 Rexea zadataka. Prvi pismeni kolokvijum, Dragan ori

Trigonometrijske nejednačine

Kaskadna kompenzacija SAU

OSNOVI ELEKTRONIKE VEŽBA BROJ 1 OSNOVNA KOLA SA DIODAMA

Sistemi veštačke inteligencije primer 1

Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013

5 Ispitivanje funkcija

Klasifikacija blizu Kelerovih mnogostrukosti. konstantne holomorfne sekcione krivine. Kelerove. mnogostrukosti. blizu Kelerove.

Teorijske osnove informatike 1

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

TAČKA i PRAVA. , onda rastojanje između njih računamo po formuli C(1,5) d(b,c) d(a,b)

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

ELEKTROTEHNIČKI ODJEL

18. listopada listopada / 13

Reverzibilni procesi

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

(P.I.) PRETPOSTAVKA INDUKCIJE - pretpostavimo da tvrdnja vrijedi za n = k.

Sortiranje prebrajanjem (Counting sort) i Radix Sort

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović

Ispit održan dana i tačka A ( 3,3, 4 ) x x + 1

MATERIJAL ZA VEŽBE. Nastavnik: prof. dr Nataša Sladoje-Matić. Asistent: dr Tibor Lukić. Godina: 2012

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

II. ODREĐIVANJE POLOŽAJA TEŽIŠTA

POTPUNO RIJEŠENIH ZADATAKA PRIRUČNIK ZA SAMOSTALNO UČENJE

7 Algebarske jednadžbe

- pravac n je zadan s točkom T(2,0) i koeficijentom smjera k=2. (30 bodova)

Osnovne teoreme diferencijalnog računa

( , 2. kolokvij)

DIMENZIONISANJE PRAVOUGAONIH POPREČNIH PRESEKA NAPREGNUTIH NA PRAVO SLOŽENO SAVIJANJE

ιαφάνειες παρουσίασης #3

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a =

radni nerecenzirani materijal za predavanja

Παράλληλη Επεξεργασία Κεφάλαιο 2 Παραλληλισμός Δεδομένων

1 UPUTSTVO ZA IZRADU GRAFIČKOG RADA IZ MEHANIKE II

Fakultet tehničkih nauka, Softverske i informacione tehnologije, Matematika 2 KOLOKVIJUM 1. Prezime, ime, br. indeksa:

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

II. ODREĐIVANJE POLOŽAJA TEŽIŠTA

S t r a n a 1. 1.Povezati jonsku jačinu rastvora: a) MgCl 2 b) Al 2 (SO 4 ) 3 sa njihovim molalitetima, m. za so tipa: M p X q. pa je jonska jačina:

Zadaci iz trigonometrije za seminar

I.13. Koliki je napon između neke tačke A čiji je potencijal 5 V i referentne tačke u odnosu na koju se taj potencijal računa?

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

OM2 V3 Ime i prezime: Index br: I SAVIJANJE SILAMA TANKOZIDNIH ŠTAPOVA

Operacije s matricama

FTN Novi Sad Katedra za motore i vozila. Teorija kretanja drumskih vozila Vučno-dinamičke performanse vozila: MAKSIMALNA BRZINA

1. Pojam fazi skupa. 2. Pojam fazi skupa. 3. Funkcija pripadnosti, osobine i oblici. 4. Funkcija pripadnosti, osobine i oblici

III VEŽBA: FURIJEOVI REDOVI

5. PARCIJALNE DERIVACIJE

PRIMJER 3. MATLAB filtdemo

Ako prava q prolazi kroz koordinatni početak i gradi ugao φ [0, π) sa x osom tada je refleksija S φ u odnosu na tu pravu:

10. STABILNOST KOSINA

Elektrotehnički fakultet univerziteta u Beogradu 16.maj Odsek za Softversko inžinjerstvo

Mate Vijuga: Rijeseni zadaci iz matematike za srednju skolu

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

NOMENKLATURA ORGANSKIH SPOJEVA. Imenovanje aromatskih ugljikovodika

2log. se zove numerus (logaritmand), je osnova (baza) log. log. log =

FTN Novi Sad Katedra za motore i vozila. Teorija kretanja drumskih vozila Vučno-dinamičke performanse vozila: MAKSIMALNA BRZINA

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema Algoritmi se mogu opisivati:

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014

Μαζέρας Αχιλλέας. Οι εντολές επανάληψης στην Pascal (While) Φυσικός Αυτοματιστής M.Sc. Νοέµβριος 2009

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

ТЕМПЕРАТУРА СВЕЖЕГ БЕТОНА

4 Numeričko diferenciranje

Geometrija (I smer) deo 1: Vektori

Eliminacijski zadatak iz Matematike 1 za kemičare

Zadatak 2 Odrediti tačke grananja, Riemann-ovu površ, opisati sve grane funkcije f(z) = z 3 z 4 i objasniti prelazak sa jedne na drugu granu.

π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;

( ) π. I slučaj-štap sa zglobovima na krajevima F. Opšte rešenje diferencijalne jednačine (1): min

21. ŠKOLSKO/OPĆINSKO/GRADSKO NATJECANJE IZ GEOGRAFIJE GODINE 8. RAZRED TOČNI ODGOVORI

Pismeni dio ispita iz Matematike Riješiti sistem jednačina i diskutovati rješenja u zavisnosti od parametra a:

Transcript:

Računarska grafika

Osnovni inkrementalni algoritam Drugi naziv u literaturi digitalni diferencijalni analizator (DDA) Pretpostavke (privremena ograničenja koja se mogu otkloniti jednostavnim uopštavanjem algoritma): 1. nagib (slope) linije u granicama: 0<nagib<1; (nagib=tg α) 2. linija zadata pomoću krajnjih tačaka p1 i p2 za koje važi: p1.x<p2.x (p1 je levo u odnosu na p2) p2(x n,y n ) p1(x 1,y 1 ) (x i,y i ) (x i+1,y i+1 ) tgα 1 dx=p2.x-p1.x dy=p2.y-p1.y 2

Algoritam Nagib prave je racionalan broj: nagib = dy/dx = (p2.y-p1.y)/(p2.x-p1.x) U svakom koraku algoritma, inkrementira se x: x i+1 =x i +1 Važi: y i+1 -y i = nagib*(x i+1 -x i ) = nagib*1 Sledi: y i+1 = y i + nagib 3 Da bi se dobio i-ti piksel potrebno je izvršiti zaokruživanje dobijene vrednosti y i+1 Procedure LineDraw(p1,p2: Point; v: Value); Var x: Integer; y, nagib: Real; Begin nagib:= (p2.y - p1.y)/(p2.x - p1.x); y:=p1.y; For x:=p1.x To p2.x Do Begin SetPixel(x,Round(y),v); y:=y+nagib End End;

Problemi i rešenja Jedan potencijalan problem kumulativna greška kod dodavanja nagib na y Rešenje: Procedure LineDraw(p1,p2: Point; v: Value); Var x,y: Integer; nagib: Real; Begin nagib:= (p2.y - p1.y)/(p2.x - p1.x); y:=p1.y; For x:=p1.x To p2.x Do Begin SetPixel(x,y,v); y:=p1.y+round((x-p1.x+1)*nagib) End End; Veći problem aritmetika realnih brojeva je spora u odnosu na celobrojnu 4

Bresenham-ov algoritam 1965. J.Bresenham je studirao problem generisanja prave linije na digitalnom ploteru i razvio algoritam koji se koristi i danas Tehnika se zasniva na odlučivanju: da li za inkrementiranu vrednost koordinate X treba inkrementirati (eventualno dekrementirati) vrednost koordinate Y Pretpostavke za izvođenje su iste kao kod DDA algoritma: 1. nagib linije u granicama: 0<nagib<1; (nagib=tg a) 2. linija zadata pomoću krajnjih tačaka p1 i p2 za koje važi: p1.x<p2.x (p1 je levo u odnosu na p2) Osnovna pozitivna karakteristika Bresenham-ovog algoritma je da se Real aritmetika zamenjuje Integer aritmetikom 5

Pojam greške Posmatra se prava koja prolazi kroz tačku (piksel) (x-1,y) i uočavaju se dve sledeće kandidat-tačke: A(x,y) i B(x,y+1) (x,y+1) 6 e i 1 nagib 1/2 1 (x-1,y) (x,y) i-1 i Uvodi se pojam greške (odstupanja) e stvarne prave od sredine vertikalne duži koja spaja dva piksela: e>0, ako prava prolazi kroz "gornju" polovinu duži e=0, ako prava prolazi kroz polovinu duži e<0, ako prava prolazi kroz "donju" polovinu duži

Slučajevi greške Dva osnovna slučaja su: (1) nagib > 1/2 (e i >0) (2) nagib 1/2 (e i 0) (x+1,y+2) e i+1 7 e i 1 nagib 1/2 1 (x-1,y) i-1 (x,y+1) (x,y) i 3/2 (x+1,y) i+1 2*nagib e i = nagib 1/2 -e i = 1/2-nagib e i = nagib 1/2 e i+1 = 2nagib 3/2 = e i + nagib 1 e i+1 =2nagib 1/2 = e i + nagib 1 (x-1,y) i-1 1 (x,y+1) 1/2 e -e i+1 i nagib (x,y) i (x+1,y+1) (x+1,y) i+1 2*nagib

Izvođenje Za odlučivanje je dovoljan znak greške, apsolutna vrednost nije bitna: (1) nagib > 1/2 (e i >0) (2) nagib 1/2 (e i 0) e i = dy/dx 1/2 /*2dx e i = dy/dx 1/2 /*2dx e i+1 = e i + dy/dx 1 /*2dx e i+1 = e i + dy/dx /*2dx 2dx e i = 2dy dx 2dx e i = 2dy dx 2dx e i+1 = 2dx e i + 2dy 2dx 2dx e i+1 = 2dx e i + 2dy Za odlučivanje je dovoljan znak greške, apsolutna vrednost nije bitna: e' i = 2dy dx e' i = 2dy dx e' i+1 = e' i + 2(dy dx) e' i+1 = e' i + 2dy 8

Algoritam sa ograničenjima Pseudokod: x:=p1.x; y:=p1.y; dy:= (p2.y - p1.y); dx:= (p2.x - p1.x); e:= 2*dy - dx; {Integer!} for i:=1 to dx do begin SetPixel(x,y,v); if e > 0 then begin y:= y+1; e:= e+2*(dy-dx) end else e:= e + 2*dy; x:= x+1; end; SetPixel(x,y,v); Ograničenje (1) može se ukloniti da algoritam važi za: 0 nagib +, tako što se za strme prave (1 nagib + ) zamene vrednosti za x i y prilikom crtanja tačke Ograničenje (2) uklanja se tako što crtanje uvek počinje od tačke sa manjom x koordinatom 9

Kompletan algoritam (1) Kompletan Bresenham-ov algoritam za prave sa ne-negativnim nagibom (nagib>0): Procedure BresenhamLineDraw(p1,p2: Point; v: Value); Var dx,dy,x,y,incr1,incr2,xend,e,t: Integer; strma: Boolean; Begin dx:= Abs(p2.x - p1.x); dy:= Abs(p2.y - p1.y); strma:= dy > dx; If strma Then Begin t:= dx; dx:= dy; dy:= t; t:= p1.x; p1.x:= p1.y; p1.y:= t; t:= p2.x; p2.x:= p2.y; p2.y:= t; End; incr1:= 2*dy; incr2:=2*(dy-dx); e:=2*dy - dx; 10

Kompletan algoritam (2) {nastavak} If p1.x > p2.x Then Begin x:= p2.x; y:= p2.y; xend:= p1.x End Else Begin x:= p1.x; y:= p1.y; xend:= p2.x End; While x < xend Do Begin If strma Then SetPixel(y,x,v) Else SetPixel(x,y,v); If e > 0 Then Begin y:= y + 1; e:= e + incr2 End Else e:= e + incr1; x:= x + 1; End; If strma Then SetPixel(y,x,v) Else SetPixel(x,y,v) End; Slučaj za nagib<0 rešiti kroz samostalno vežbanje. 11