background image

Algorytmy rastrowe:

rysowanie okręgu i 

elipsy.

background image

Urządzenia rastrowe:

Monitor

Kartka papieru w drukarce,ploterze

Obraz składa się ze skończonej liczby 

elementów nazywanych pikselami.

Piksele tworzą siatkę prostokątną 

uporządkowana w l linii i kolumn.

l x k –rozdzielczość urządzenia graficznego.
Aspekt urządzenia graficznego - odległość 

między środkami sąsiednich pikseli w 
poziomie do odległości w pionie.

background image

Rasteryzacja

Zamiana ciągłej funkcji 2D na funkcję 
dyskretną  (rysowanie okręgu na podstawie 
równania okręgu).

Problem sprowadza się do wyboru pikseli, 
którym trzeba nadać kolor, aby w efekcie 
otrzymać wymagany kształt.

background image

Algorytmy generacji 
krzywych

Algorytmy numeryczne

Algorytmy inkrementacyjne

background image

Algorytmy numeryczne - 
idea

Numeryczna analiza krzywej podanej w 
sposób jawny przez funkcję opisującą 
krzywą i funkcje będące różniczkami 
cząstkowymi.

background image

Algorytmy 
inkrementacyjne - idea

Generacja krzywych od punktu 
początkowego do punktu końcowego.
Na podstawie punktu bieżącego liczy się 
elementarne przesunięcie określające 
punkt następny.

Wykorzystują własności geometryczne 
krzywych w przestrzeni dyskretnej 
(rastrowej) i ich własności strukturalne.

background image

Algorytmy rysowania 
okręgu: 

Algorytm Bresenhama 

dla 1/4 okręgu

dla 1/8 okręgu

Algorytm DDA(Digital Differential Analized)

background image

Algorytm Bresenhama

Założenia:

równanie okręgu  x

2

+y

2

=R

2

R - liczba naturalna

Środek okręgu w początku układu współrzędnych

kreślona jest ¼ okręgu

Kierunek kreślenia – ruch wskazówek zegara

Kolejne punkty wybierane są metodą 

inkrementacyjną (dla ¼ okręgu wybierany jest 

jeden z trzech sąsiednich punktów rastra)

background image

Algorytm Bresenhama

Założenia:

Aspekt ekranu a=p/q ≠1

Ośmiokierunkowy wybór pikseli 
przybliżających krzywą   F(x,y)=p

2

x

2

+q

2

y

2

-

q

2

R

2

=0

background image

Algorytm Bresenhama

Punkty okręgu generowane przez 
algorytm

background image

Algorytm Bresenhama - 
idea

Taki wybór punktów aby różnica pomiędzy 
promieniem poprowadzonym do 
wybranego punktu rastra, a rzeczywistym 
promieniem R była jak najmniejsza.

Wybór sprowadza się do analizy trzech 
pikseli.

background image

Algorytm Bresenhama

Analizę zaczynamy od punktu P

0

=(0,R)

Istotny jest punkt, którego współczynnik 
kierunkowy wynosi -1

Dzieli on ćwiartkę okręgu na dwa fragmenty, 

w których wybieramy różne piksele.

background image

Algorytm Bresenhama

W pierwszym fragmencie wybieramy 

pomiędzy pikselami A i B w drugim 
pomiędzy B i C

background image

Algorytm Bresenhama 
Analiza punktów środkowych

Kryterium Van Akenema – rozstrzygnięcie, środek 

którego z pikseli leży bliżej przybliżanego 
okręgu.

Wybór zależy od wartości funkcji f w punkcie 

środkowym S między alternatywnymi pikselami.

I: II:
fs

i

=f(x

i

+1,y

i

-1/2)

fs

i

=f(x

i

+1/2 ,y

i

-1)

fs

i

 > 0  to punk zew.  -> wybieramy I:B, II:C

fs

i

 < 0  to punk wew.  -> wybieramy I:A, II:B

background image

Algorytm Bresenhama 
Wartość zmiennej 
decyzyjnej

Dla startowego piksela  P

0

=(x

0

,y

0

)=(0,R)

wartość zmiennej decyzyjnej:

fs

0

 =f(x

0

+1,y

0

-1/2)=p

2

(0+1)

2

+q(R-1/2)

2

-

q

2

R

2

=

=p

2

-q

2

R+q

2

/4

background image

Algorytm Bresenhama 
Wartość zmiennej 
decyzyjnej

Dla pierwszego fragmentu okręgu p

2

x<q

2

x

zwiększamy wartość x o 1 i wybieramy A lub B
 Przejście: 

P

-> P

i+1

=A 

x

i+1

=x

i

+1     y

i+1

=y

i

 

f(x

i+1

+1, y

i+1

-1/2)=f(x

i

+1, y

i

-1/2 ) +2p

2

x

i+1

+p

2

lub krócej:

fs

i+1

=fs

i

+2p

2

x

i+1

+p

2

 Przejście: 

P

-> P

i+1

=B

x

i+1

=x

i

+1     y

i+1

=y

i

-1

fs

i+1

=fs

i

+2p

2

x

i+1

+p

2

-2q

2

y

i+1

background image

Algorytm Bresenhama 
Wartość zmiennej 
decyzyjnej

Dla drugiego fragmentu okręgu p

2

x>q

2

x

zwiększamy wartość y o 1 i wybieramy B lub 

C.

Wybór B,lub C powinien zależeć od nowej 

wartości

f(x

i+1

+1/2, y

i+1

-1), a nie od starej f(x

i+1

+1, 

y

i+1

-1/2). 

Różnica pomiędzy nimi wynosi:

background image

Algorytm Bresenhama 

Nowa wartość zmiennej 
decyzyjnej

Poprzednio obliczoną zmienną decyzyjną 

wystarczy zmodyfikować o tę wartość:

Korzystając z rekurencji przeanalizować 

wybór punktu B lub C.

background image

Algorytm Bresenhama 
Wartość zmiennej 
decyzyjnej

Przejście P

i

 -> P

i+1

=B

x

i+1

=x

i

+1     y

i+1

=y

i

-1

fs

i+1

= f(x

i+1

+1/2, y

i+1

-1)=fs

i

+2p

2

x

i+1

-

2q

2

y

i+1

+q

2

Przejście P

i

 -> P

i+1

=C

x

i+1

=x

i

     y

i+1

=y

i

-1

 fs

i+1

=fs

i

-2q

2

y

i+1

+q

2

background image

Algorytm Bresenhama - 
przypomnienie

p,q,R – liczby naturalne

Znak zmiennej decyzyjnej fs

decyduje o 

wyborze piksela.

 

background image

Algorytm Bresenhama dla 
elipsy

Ta sama procedura jak przy rysowaniu koła.
Założenia:

Równanie elipsy:

Rysujemy w I ćwiartce układu współrzędnych

Zaczynamy od pkt (0,b) zgodnie z ruchem 
wskazówek zegara.

W każdym kroku stawiamy symetrycznie 4 
pkt. elipsy.

background image

Algorytm Bresenhama dla 
elipsy

Założenia:

Ośmiokierunkowy wybór pikseli 
przybliżających krzywą   F(x,y)=b

2

x

2

+a

2

y

2

-

a

2

b

2

=0

Początkową osią wiodącą jest oś OX

W punkcie zmiany osi wiodącej 
współczynnik nachylenia stycznej do elipsy 
wynosi -1 (tg 135

o

)

background image

Algorytm Bresenhama dla 
elipsy

Kryterium przejścia osi wiodącej z OX na 
OY.

background image

Algorytm Bresenhama dla 
elipsy

Do określenia, który piksel znajduje się 
bliżej kreślonej figury stosujemy jak dla 
okręgu kryterium Van Akenema

background image

Algorytm DDA

Podstawą rysowania figury jest postać 
opisującego ją równania różniczkowego.

Algorytm korzystający z operacji 
mnożenia i funkcji trygonometrycznych, 
wolna realizacja.

Zasada działania – równoczesne 
zwiększanie x i y o niewielki przyrost ε.

Rysujemy 1/8 okręgu.

background image

Algorytm DDA

Postać równania różniczkowego przy 
założeniach:

 środek okręgu=początek układu 

współrzędnych

background image

Algorytm DDA

Obliczanie współrzędnych kolejnych punktów:
x

i+1

=x

i

+εy

i

y

i+1

=y

i

2

y

i

- ε x

i

Wartości przyrostów nie są stałe i muszą być 

obliczane dla każdego x,y przy użyciu 
operacji mnożenia.

Mnożenie można zastąpić przesunięciami 
przy

 założeniu:

background image

Algorytm DDA

Algorytm ten nie rysuje okręgu lecz 
elipsę ale dla małych ε, błąd ten można 
uważać za pomijalnie mały.

background image

Dokładny  algorytm DDA - 
okrąg

Punktem wyjścia dla tej metody jest 
równanie parametryczne okręgu o 
promieniu R i środku w początku układu 
współrzędnych.

background image

Dokładny  algorytm DDA - 
okrąg

Zależności trygonometryczne dla sąsiednich 

punktów okręgu:

background image

Dokładny  algorytm DDA - 
okrąg

Definiujemy Θ jako kąt pomiędzy 
promieniami poprowadzonymi do dwóch 
sąsiednich punktów okręgu.

background image

Dokładny  algorytm DDA - 
okrąg

Po przekształceniach 

trygonometrycznych:

postać macierzowa:

background image

Dokładny  algorytm DDA - 
okrąg

Z rekurencyjnego charakteru zależności 
wynika, że wielkość kąta Θ jest stała dla 
każdej iteracji.

Wielkość kąta Θ zależy od liczby punktów 
tworzących okrąg, a ta zwiększa się wraz z 
promieniem.

Dla małych Θ algorytm generuje ciągłe i 
dokładne łuki ale dla małych promieni bardzo 
wydłuża się czas kreślenia jeżeli zakres 
rozdzielczości zostanie przekroczony.


Document Outline