Sissejuhatus joone joonistamise algoritmi

Selles artiklis näeme joone joonistamise algoritmi kontuuri. Joone joonistamine arvutis tähendab, et arvutiekraan jaguneb kaheks osaks ridadeks ja veergudeks. Neid ridu ja veerge tuntakse ka kui piksleid. Juhul, kui peame arvutisse joone tõmbama, peame kõigepealt teadma, millised pikslid peaksid olema. Joon on sirgjoone osa, mis ulatub lõputult vastupidises suunas. Joont määratlevad kaks lõpp-punkti. Selle tihedus peaks olema eraldusjoone pikkusest eraldi.
Kalle sirge pealtkuulamise valem: Y = mx + b
Selles valemis on m kalle sirge ja b on y sirge sirgega. Positsioonides (x1, y1) ja (x2, y2) on joonelõigu jaoks määratud kaks lõpp-punkti.

Kalde m ja b väärtusi saab vastavalt määrata
• m = y2 - y1 / x2 - x1
St st M = Δy / Δx

Näide:

Joone lõpp-punktid on (0, 0) ja (4, 12). Joonestage tulemus, et arvutada y iga väärtus x-astmetena vahemikus 0 kuni 4.

Lahendus:

Nii et meil on joone võrrandi valem: Y = mx + b
• m = y2 - y1 / x2 - x1
• m = 12 - 0/4 - 0
• m = 3
Seejärel leitakse y ristlõige b, sidudes y1 ja x1 valemiga y = 3 x + b, 0 = 3 (0) + b. Seetõttu b = 0, seega y = 3x joone valem.
Eesmärk on järgmise x, y asukoht võimalikult kiiresti kindlaks teha.

Joone joonistamise algoritmi tüübid

Allpool on toodud algoritmi tüübid:

1. Digitaalne diferentsiaal algoritm (DDA)

Inkrementaalne teisendusmeetod on DDA algoritm ja seda nimetatakse ka digitaalseks diferentsiaalse algoritmiks (DDA). Seda lähenemisviisi iseloomustab eelmises etapis saadud tulemuste kasutamine igas arvutamises.

Vaatame allpool toodud näiteid:

Näide nr 1

Lõpppunkti joon on (x1, y1) ja (x2, y2)

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

Niisiis, nüüd määrame rea pikkuse, kui abs (dx)> = abs (dy), siis pikkus = abs (dx), muidu pikkus = abs (dy)

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

Setpiksel (ümmargune (x), ümmargune (y));

  • i = 1

kuigi (i <= pikkus)

  • x = x + Ax;
  • y = y + Ay;

setpiksel (ümmargune (x), ümmargune (y));
i = i + 1
lõpeta samal ajal

Näide 2

Lõpppunktide (5, 4) ja (6, 9) rida saab DDA abil teisendada.

Lahendus:
• dx = x2 - x1
• dx = 6 - 5 = 1
• dy = y2 - y1
• dy = 9 - 4

dy = 5
Nagu dx <dy siis,
• pikkus = y2 - y1 = 5
• dx = (x2 - x1) / pikkus = 1/5 = 0, 2
• dy = (y2-y1) / pikkus = 5/5 = 1
x1 y1 x2 y2 L dx dy ixy

Tulemus:

X1

Y1

X2

Y2

L

Dx

Kuule

Mina

X

Y

Tulemus

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

DDA algoritmi piirang

  • Ujuvate ja ümardamispunktide aritmeetika on aeganõudev protseduur.
  • Ümardatud tõrge võib viia mõõdetud piksli asukoha kaugusele tegelikust pika joonega segmendi teest.

2. Bresenhami rea algoritm

Skaneerimise muundamise algoritm on Bresenhami algoritm. See algoritm pakub peamise eelise, kui kasutatakse ainult täisarvu arvutusi.

1. Rea lõpp-punktid ja salvestage vasakpoolne lõpp-punkt (x1, y1)
2. Otsustusparameetri jaoks saadakse esimene väärtus Δx, st Dx, Δy, st Dy, 2 Δy ja 2 Δx.
3. Alustage alustamist
4. Initsieeri i = 1 loendurina,
Vastasel juhul on järgmine joonistamispunkt (xk + 1, yk + 1) ja korrake toimingut 4 (Δx - 1) korda.
Reguleerimine
M> 1 korral võime öelda, kui suurendame x iga kord, kui suurendame y.
Pärast otsuse muutuja pk lahendamist on valem väga sarnane, ainult võrrandis asendatakse x ja y.

Bresenhami rea algoritmi kokkuvõte

Need on Bresenhami rea algoritmi järgmised eelised:
• Kiire inkrementaalne algoritm.
• See kasutab ainult täisarvu arvutusi.
DDA-l on DDA algoritmiga võrreldes järgmised probleemid:
• Pikseldatud joon võib olla ümardatud vigade eeldatavast kogunemisest eemal.
• Ümardamistoimingute ja ujukomaaritmeetiliste toimingute jaoks on vaja aega.

Soovitatavad artiklid

See on olnud joonise joonistamise algoritmi juhend. Siin arutame koos jooniste joonistamise algoritmi koos erinevate näidetega. Võite lisateabe saamiseks vaadata ka järgmisi artikleid -

  1. Masinõppe algoritmid
  2. SVM algoritm
  3. Lihtne lineaarne regressioon
  4. Mitme muutujaga regressioon
  5. Lineaarse regressiooni ja logistilise regressiooni parim võrdlus

Kategooria: