Introduksjon til linjetegningsalgoritme

I denne artikkelen vil vi se en oversikt over linjetegningsalgoritmen. Linjetegning på datamaskinen betyr at dataskjermen deler seg i to deler rader og kolonner. Disse radene og kolonnene er også kjent som Pixels. I tilfelle vi må tegne en strek på datamaskinen, må vi først og fremst vite hvilke piksler som skal være på. En linje er en del av en rett linje som strekker seg i motsatt retning på ubestemt tid. Linjen er definert av to sluttpunkter. Dens densitet skal være adskilt fra lengden på linjen.
Formelen for en linjeavskjæring av skråningen: Y = mx + b
I denne formelen er m en linje i skråningen og b er avskjæring av y i linjen. I posisjoner (x1, y1) og (x2, y2) er to sluttpunkter spesifisert for linjesegmentet.

Verdien av skråningen m og b kan bestemmes tilsvarende
• m = y2 - y1 / x2 - x1
• dvs. M = Δy / Δx

Eksempel:

Linjeendepunkter er (0, 0) og (4, 12). Plott resultatet for å beregne hver verdi av y som x trinn fra 0 til 4.

Løsning:

Så vi har en formel for ligning av linjen: Y = mx + b
• m = y2 - y1 / x2 - x1
• m = 12 - 0/4 - 0
• m = 3
Y-avskjæringen b blir deretter funnet ved å koble y1 og x1 til formelen y = 3 x + b, 0 = 3 (0) + b. Derfor er b = 0, så y = 3x linjeformelen.
Målet er å bestemme den neste x, y-plasseringen så raskt som mulig av den forrige.

Typer linjetegningsalgoritme

Nedenfor er gitt algoritmens typer:

1. Digital Differential Algorithm (DDA)

En inkrementell konverteringsmetode er en DDA-algoritme, og vi kalte også Digital Differential Algorithm (DDA). Denne tilnærmingen er preget av bruken av resultatene fra forrige trinn i hver beregning.

La oss se på eksemplene gitt nedenfor:

Eksempel 1

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

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

Så nå vil vi bestemme lengden på linjen hvis abs (dx)> = abs (dy) så lengde = abs (dx) ellers lengde = abs (dy)

  • Δx = dx / lengde
  • Δy = dy / lengde
  • X = x1
  • Y = y1

Setpiksel (rund (x), rund (y));

  • i = 1

mens (i <= lengde)

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

setpixel (rund (x), rund (y));
i = i + 1
slutte mens

Eksempel 2

En linje med sluttpunkter (5, 4) og (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 da,
• lengde = y2 - y1 = 5
• dx = (x2 - x1) / lengde = 1/5 = 0, 2
• dy = (y2- y1) / lengde = 5/5 = 1
x1 y1 x2 y2 L dx dy ixy

Resultat:

X1

Y1

X2

Y2

L

Dx

dy

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

Begrensning av DDA-algoritmen

  • Aritmetikk for flytende og avrundingspunkter er tidkrevende prosedyrer.
  • En avrundingsfeil kan føre til en avstand fra den virkelige langlinjesegmentbanen med den målte pikselplasseringen.

2. Bresenham Line-algoritmen

Scan-konverteringsalgoritmen er Bresenham-algoritmen. Denne algoritmen gir den største fordelen ved å bruke bare heltallberegninger.

1. Endepunkter på raden og lagre venstre sluttpunkt i (x1, y1)
2. For at beslutningsparameteren skal få den første verdien Δx dvs. Dx, Δy dvs. Dy, 2 Δy og 2 Δx.
3. Initialiser start
4. Initialiser i = 1 som en teller,
Ellers er neste punkt å plotte (xk + 1, yk + 1) og gjenta trinn 4 (Δx - 1) ganger.
Justering
For m> 1 kan vi si om vi øker x hver gang vi øker y.
Etter at beslutningsvariabelen pk vil bli løst, er formelen veldig lik, bare x og y i ligningen blir erstattet.

Bresenham Line Algoritme Sammendrag

Dette er følgende fordeler med Bresenham-linjealgoritmen:
• En rask inkrementell algoritme.
• Dette bruker bare heltallberegninger.
DDA har følgende problemer sammenlignet med DDA-algoritmen:
• Den pikslerte linjen kan være fjern fra den forventede akkumuleringen av avrundingsfeil.
• Det kreves tid for avrundingsoperasjoner og flytende punkter aritmetikk.

Anbefalte artikler

Dette har vært en guide til linjetegningsalgoritme. Her diskuterer vi hva som er linjetegningsalgoritme sammen med de forskjellige eksemplene. Du kan også se på følgende artikler for å lære mer–

  1. Maskinlæringsalgoritmer
  2. SVM-algoritme
  3. Enkel lineær regresjon
  4. Multivariat regresjon
  5. Topp sammenligning av lineær regresjon vs logistisk regresjon

Kategori: