Rysowanie linii Arch, Grafika komputerowa

[ Pobierz całość w formacie PDF ]
Rysowanie linii
Na ekranie komputera można
narysować tylko przybliżenie idealnej
linii. Jest to spowodowane
koniecznością użycia układu
współrzędnych
o wartościach
dyskretnych.
Ważne własności linii

Ciągłość.

Jednakowa grubość i jasność.

Dokładność (najlepsze przybliżenie
idealnej linii).

Szybkość rysowania.

Możliwość ustalenia grubości linii.
Najprostszy algorytm rysowania
linii
linii
y = ax + b

Dane wejściowe:
P
0
(x
0
, y
0
), P
1
(x
1
, y
1
)

Współrzędne pikseli tworzących
linię:
P
i
(x
i
, round(ax
i
+ b)) lub P
i
(round(y
i
/a – b/a), y
i
)
Przypadek szczególny
x
0
= x
1
– prosta pionowa.
Najprostszy algorytm rysowania

Implementacja
// pseudo kod
void simpleLine(TScreen screen, TColor color, int x0, int y0, int x1, int y1) {
double a = (double) (y1 - y0) / (double)(x1 - x0),
b = y0 - a * x0;
for (int x = x0; x <= x1; x++) {
int y = a*x + b + 0.5;
screen[x][ y] = color;
}
}
Wady:

Generuje nieciągłe linie.
Wymaga obsłużenia szczególnych przypadków.
-
linia pionowa;
-
dla x
0
> x
1
(zamiana współrzędnych).
-
współczynnik a spełnia nierówność: –1
£
a
£
1

Algorytm używa czasochłonnego mnożenia i zaokrąglania.

Optymalizacja – przyspieszanie
obliczeń

Operacje dodawania
i odejmowania są
wykonywane szybciej
niż operacje
mnożenia.

Wykorzystanie
wyników wcześniej
wykonanych obliczeń.

Obliczenia na liczbach
całkowitych wykonują
się szybciej niż
obliczenia na liczbach
rzeczywistych

Operacja mnożenia
jest szybsza od
operacji dzielenia.
Optymalizacja – przyspieszanie
obliczeń
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • frania1320.xlx.pl
  • Tematy