Uvod v algoritem risanja črt

V tem članku bomo videli oris Algoritma risanja linij. Risba črte na računalniku pomeni, da se računalniški zaslon deli na dva dela vrstice in stolpce. Te vrstice in stolpci so znani tudi kot Piksli. V primeru, da moramo na računalniku potegniti črto, moramo najprej vedeti, na katerih pikah naj bo. Črta je del ravne črte, ki se v nedogled razteza v nasprotni smeri. Vrstica je definirana z dvema končnima točkama. Njegova gostota mora biti ločena od dolžine črte.
Formula za prestrezanje premca pobočja: Y = mx + b
V tej formuli je m črta naklona in b je prestrezna črka y v premici. V položajih (x1, y1) in (x2, y2) sta za linijski segment določeni dve končni točki.

Vrednost naklona m in b lahko ustrezno določimo
• m = y2 - y1 / x2 - x1
• tj. M = Δy / Δx

Primer:

Končne točke vrstice so (0, 0) in (4, 12). Rezultat narišite tako, da izračunate vsako vrednost y kot x korakov od 0 do 4.

Rešitev:

Torej imamo formulo enačbe premice: Y = mx + b
• m = y2 - y1 / x2 - x1
• m = 12 - 0/4 - 0
• m = 3
Y prestreznik b potem najdemo s povezavo y1 in x1 s formulo y = 3 x + b, 0 = 3 (0) + b. Zato je b = 0, torej je y = 3x vrstica.
Cilj je določiti naslednjo lokacijo x, y čim hitreje od prejšnje.

Vrste algoritma risanja črt

Spodaj so navedene vrste algoritma:

1. Digitalni diferencialni algoritem (DDA)

Metoda inkrementalne pretvorbe je algoritem DDA in imenovali smo jo tudi digitalni diferencialni algoritem (DDA). Za ta pristop je značilna uporaba rezultatov iz prejšnje stopnje pri vsakem izračunu.

Poglejmo spodnje primere:

Primer 1

Končna točka sta (x1, y1) in (x2, y2)

  • dx = x2 - x1
  • dy = y2 - y1

Torej, zdaj bomo določili dolžino črte, če je abs (dx)> = abs (dy), potem je dolžina = abs (dx), sicer dolžina = abs (dy)

  • Δx = dx / dolžina
  • Δy = dy / dolžina
  • X = x1
  • Y = y1

Setpixel (okroglo (x), okroglo (y));

  • i = 1

medtem ko (i <= dolžina)

  • x = x + Δx;
  • y = y + Δy;

setpixel (okroglo (x), okroglo (y));
i = i + 1
konec medtem

Primer # 2

Vrstica končnih točk (5, 4) in (6, 9) se lahko pretvori z DDA.

Rešitev:
• dx = x2 - x1
• dx = 6 - 5 = 1
• dy = y2 - y1
• dy = 9 - 4

dy = 5
Kot je, dx <dy,
• dolžina = y2 - y1 = 5
• dx = (x2 - x1) / dolžina = 1/5 = 0, 2
• dy = (y2-y1) / dolžina = 5/5 = 1
x1 y1 x2 y2 L dx dy ixy

Rezultat:

X1

Y1

X2

Y2

L

Dx

Dy

jaz

X

Y

Rezultat

3

2

4

7

5

.2

1

0

3.5

5.5

3, 5, 5, 5

1

3.9

1.5

3.9, 1.5

2

4.9

3.5

4.9, 3.5

3

5.1

7.5

5.1, 7.5

4

3.7

4.5

3.7, 4.5

5

4.5

7.5

4.5, 7.5

Omejitev algoritma DDA

  • Aritmetika za plavajoče in zaokrožene točke je zamuden postopek.
  • Napaka pri zaokrožitvi lahko vodi do oddaljenosti od prave poti poti odseka z izmerjeno lokacijo pikslov.

2. Algoritem vrstice Bresenham

Algoritem za pretvorbo skeniranja je Bresenham-algoritem. Ta algoritem ponuja glavno prednost uporabe le celih izračunov.

1. Končne točke vrstice in levo končno točko shranite v (x1, y1)
2. Za parameter odločitve dobimo prvo vrednost Δx, tj. Dx, Δy, tj. Dy, 2 Δy in 2 Δx.
3. Začnite z začetkom
4. Inicializirajte i = 1 kot števec,
V nasprotnem primeru je naslednja točka za risanje (xk + 1, yk + 1) in ponovite korak 4 (Δx - 1) krat.
Prilagoditev
Za m> 1 lahko rečemo, če povečamo x vsakič, ko povečamo y.
Ko bo spremenljivka pk razrešena, je formula zelo podobna, nadomestita se le x in y v enačbi.

Bresenham Line Algorithm Povzetek

To so naslednje prednosti algoritma vrst Bresenham:
• Hiter inkrementalni algoritem.
• Uporablja se le celosten izračun.
DDA ima naslednje težave v primerjavi z algoritmom DDA:
• Pikselirana črta je lahko oddaljena od pričakovanega kopičenja napak v zaokrožitvi.
• Čas je potreben za operacije zaokroževanja in aritmetiko s plavajočimi točkami.

Priporočeni članki

To je vodnik za algoritem risanja linij. Tukaj razpravljamo, kaj je algoritem risanja črt in različni primeri. Za več informacij si lahko ogledate tudi naslednje članke -

  1. Algoritmi strojnega učenja
  2. Algoritem SVM
  3. Preprosta linearna regresija
  4. Multivariatna regresija
  5. Najboljša primerjava linearne regresije in logistične regresije

Kategorija: