Introduktion til linietegningsalgoritme

I denne artikel ser vi en oversigt over linietegningsalgoritmen. Linjetegning på computeren betyder, at computerskærmen opdeles i to dele rækker og kolonner. Disse rækker og kolonner er også kendt som Pixels. I tilfælde af at vi er nødt til at tegne en linje på computeren, skal vi først og fremmest vide, hvilke pixels der skal være på. En linje er en del af en lige linje, der strækker sig i den modsatte retning på ubestemt tid. Linjen er defineret af to slutpunkter. Dens densitet skal være adskilt fra længden på linjen.
Formlen for en linieaflytning af skråningen: Y = mx + b
I denne formel er m en linie i skråningen, og b er aflytning af y i linjen. I positioner (x1, y1) og (x2, y2) specificeres to slutpunkter for linjesegmentet.

Værdien af ​​hældningen m og b kan bestemmes i overensstemmelse hermed
• m = y2 - y1 / x2 - x1
• dvs. M = Δy / Δx

Eksempel:

Linieendepunkter er (0, 0) og (4, 12). Plott resultatet for at beregne hver værdi af y som x-trinnene fra 0 til 4.

Løsning:

Så vi har en formel for ligning af linjen: Y = mx + b
• m = y2 - y1 / x2 - x1
• m = 12 - 0/4 - 0
• m = 3
Y-afskærmningen b findes derefter ved at linke y1 og x1 til y = 3 x + b-formlen, 0 = 3 (0) + b. Derfor er b = 0, så y = 3x linjeformel.
Målet er at bestemme den næste x, y placering så hurtigt som muligt af den foregående.

Typer af linietegningsalgoritme

Nedenfor er angivet typer af algoritme:

1. Digital Differential Algorithm (DDA)

En inkrementel konverteringsmetode er en DDA-algoritme, og vi kaldte også Digital Differential Algorithm (DDA). Denne tilgang er kendetegnet ved brugen af ​​resultaterne fra det forrige trin i hver beregning.

Lad os se på nedenstående eksempler:

Eksempel 1

Endepunktlinjen er (x1, y1) og (x2, y2)

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

så nu bestemmer vi længden på linjen, hvis abs (dx)> = abs (dy), så længde = abs (dx) ellers længde = abs (dy)

  • Δx = dx / længde
  • Δy = dy / længde
  • X = x1
  • Y = y1

Setpixel (rund (x), rund (y));

  • i = 1

mens (i <= længde)

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

sætpixel (rund (x), rund (y));
i = i + 1
slutte mens

Eksempel 2

En linje med slutpunkter (5, 4) & (6, 9) kan konverteres med DDA.

Løsning:
• dx = x2 - x1
• dx = 6 - 5 = 1
• dy = y2 - y1
• dy = 9 - 4

dy = 5
Som dx <dy derefter,
• længde = y2 - y1 = 5
• dx = (x2 - x1) / længde = 1/5 = 0, 2
• dy = (y2-y1) / længde = 5/5 = 1
x1 y1 x2 y2 L dx dy ixy

Resultat:

X1

Y1

X2

Y2

L

Dx

D y

jeg

x

Y

Resultat

3

2

4

7

5

0, 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

Begrænsning af DDA-algoritme

  • Aritmetik til flydende og afrundingspunkter er tidskrævende procedurer.
  • En afrundingsfejl kan føre til en afstand fra den ægte langlinjesegmentsti ved den målte pixelplacering.

2. Bresenham Line Algoritme

Scan-konverteringsalgoritmen er Bresenham-algoritmen. Denne algoritme tilbyder den største fordel ved kun at bruge heltalberegninger.

1. Slutpunkter på rækken og gem det venstre slutpunkt i (x1, y1)
2. For beslutningsparameteren for at få den første værdi Δx dvs. Dx, Δy dvs. Dy, 2 Δy og 2 Δx.
3. Initialiser start
4. Initialiser i = 1 som en tæller,
Ellers er det næste punkt til plot (xk + 1, yk + 1) og Gentag trin 4 (Δx - 1) gange.
Justering
For m> 1 kan vi sige, om vi øger x hver gang vi øger y.
Når beslutningsvariablen pk vil blive løst, er formlen meget lignende, kun x og y i ligningen erstattes.

Bresenham Line Algorithm Resume

Dette er følgende fordele ved Bresenham-linealgoritmen:
• En hurtig inkrementel algoritme.
• Dette bruger kun heltalberegninger.
DDA har følgende problemer sammenlignet med DDA-algoritmen:
• Den pixelerede linje kan være fjernt fra den forventede akkumulering af afrundingsfejl.
• Der kræves tid til afrunding og aritmetik med flydende punkter.

Anbefalede artikler

Dette har været en guide til linjetegningsalgoritme. Her diskuterer vi, hvad der er linietegningsalgoritme sammen med de forskellige eksempler. Du kan også se på de følgende artikler for at lære mere–

  1. Maskinlæringsalgoritmer
  2. SVM-algoritme
  3. Enkel lineær regression
  4. Multivariat regression
  5. Top sammenligning af lineær regression vs logistisk regression

Kategori: