Ero DDA n ja Bresenhamin algoritmin välillä

Digitaalinen differentiaalialgoritmi (DDA) ja Bresenhamsin algoritmi ovat digitaalisten viivojen piirtämisalgoritmeja, ja niitä käytetään tietokonegrafiikassa kuvien piirtämiseen. Aikaisemmin olimme käyttäneet analyyttisiä analysaattoreita pikselien laskemiseen, ja siten viivapiirrokset tehtiin mahdolliseksi. Mutta nämä analyyttiset menetelmät eivät ole yhtä tarkkoja kuin digitaaliset menetelmät, että näiden digitaalisten algoritmien käytön kanssa nyt ja kuten kaikilla aloilla, olemme keksineet korkeamman laadun menetelmiä myös tietokonegrafiikassa. Näiden algoritmien keksintö on täydellinen esimerkki. Ennen kuin jatkamme, katsotaanpa näiden algoritmien takana olevaa konseptia. Vaikka se näyttääkin keskustelun ulkopuolella, on välttämätöntä tuoda esiin näiden kahden väliset peruserot. Jos tunnet algoritmit todella, voit siirtyä todellisiin eroihin, jotka sijaitsevat tämän sivun lopussa.

Mikä on digitaalinen differentiaalialgoritmi (DDA)?

DDA: ta käytetään enimmäkseen viivojen piirtämiseen tietokonegrafiikassa ja se käyttää todellisia arvoja ennustaessaan seuraavia pikseliarvoja. Oletetaan, että pikselin alkuarvo on (X0, Y0) (X0, Y0) ja kohdepikseli (X1, Y1) (X1, Y1). Opimme kuinka laskemaan kohdepikseliarvot tunnetusta pikseliarvosta (X0, Y0) (X0, Y0) kuten alla.

  • Kuinka laskea kohdepisteen arvo DDA: n avulla?

Vaihe 1: Tässä on tulo (X0, Y0) (X0, Y0) ja meidän pitäisi tunnistaa, kulkeeko linja x-akselin tai y-akselin suuntaisesti. Laskekaamme sen selvittämiseksi nyt alkuperäisen ja kohdepikselin arvojen välinen ero.

dx = X1 - X0

dy = Y1 - Y0

Vaihe-2: Nyt olemme löytäneet eron ja meidän pitäisi piirtää viiva x-akselia pitkin, jos 'dx' on nolla, muuten meidän pitäisi piirtää viiva y-akselin suuntaisesti. Tässä on todellinen laskenta tietokonekielen suhteen.

if (absoluuttinen (dx)> absoluuttinen (dy))

Vaiheet = absoluuttinen (dx);

muu

Vaiheet = absoluuttinen (dy);

Vaihe-3: Nyt on aika tunnistaa todelliset x-koordinaatit tai y-koordinaatit pikseliarvot viivan vetämiseksi.

X-lisäys = dx / (kelluva) vaiheet;

Y lisäys = dy / (kelluva) askel;

Vaihe-4: Tämä on laskettava, kunnes olemme saavuttaneet kohdepikselin. DDA-algoritmi pyöristää pikseliarvon lähimpään kokonaislukuun laskennan aikana. Tässä on koodinäyte siitä, mistä olemme keskustelleet nyt.

Jolle (int v = 0; v < Steps; v++)

x = x + X-lisäys;

y = y + Y-lisäys;

pikselipiste (pyöreä (x), pyöreä (y));

Olemme valmiita piirtämään viivan DDA: lla ja siirrymme nyt Bresenhamin tautiin!

Mikä on Bresenhamin algoritmi?

Se on myös digitaalinen viivojen piirtämisalgoritmi, jonka Bresenham keksi vuonna 1962, ja siksi se on saanut saman nimen. Tämä algoritmi on tarkempi ja siinä käytettiin vähentämistä ja lisäystä pikseliarvon laskemiseen linjaa piirtäessä. Bresenhamin algoritmin tarkkuus on luotettava, kun piirrät myös käyriä ja ympyröitä. Katsokaamme kuinka tämä algoritmi toimii.

Vaihe 1: Bresenhamin algoritmit olettavat pikselin alkukoordinaatin muodossa (xa + 1, y).

Vaihe-2: Se laskee seuraavan pikselin arvon automaattisesti muodossa (xa + 1, ya + 1), Tässä 'a' on inkrementaalinen arvo ja algoritmi laskee sen lisäämällä tai vähentämällä muodostetut yhtälöt.

Tämä algoritmi laskee tarkat arvot pyöristämättä ja näyttää myös helpommalta!

  • Numeerinen esimerkki Bresenhamin algoritmista:

Tarkastellaan nyt pisteitä (0,0) ja (-8, -4) ja piirretään raja näiden pisteiden välillä Bresenhamin algoritmin avulla.

Annetut tiedot, (x1, y1) = (0, 0) ja (x2, y2) = (-8, -4).

Lasketaan nyt erotusarvot alla esitetyllä tavalla.

Ax = x2-x1 = -8-0 = 8

Siksi x = ∆x / x2 = 8 / -8 = -1 inkrementaaliarvo.

Ay = y2-y1 = -4-0 = 4

Siksi y = ∆y / y2 = 4 / -4 = -1 inkrementaaliarvo.

Päätöksen muuttuja = e = 2 * (∆y) - (∆x)

Siksi e = 2 * (4) - (8) = 8-8 = 0

Edellä esitetyn laskennan avulla lasketaan tulokseksi saadut arvot. Y-koordinaatin arvot säädetään päätöksen muuttujan perusteella ja emme vain huomioi sen laskentaa tässä.

Pixel x y                                              Päätöksen muuttuja
(0,0) 0 0 0
(-1,0) -1 0 Arvo
(-2, -1) -2 -1 0
(-3, -1) -3 -1 Arvo
(-4, -2) -4 -2 0
(-5, -2) -5 -2 Arvo
(-6, -3) -6 -3 0
(-7, -3) -7 -3 Arvo
(-8, -4) -8 -4 0

DDA: n ja Bresenhamin algoritmin väliset erot:

  • Aritmeettinen laskenta:

DDA käyttää laskelmissaan todellisia arvoja liukulukujen kanssa. Seuraavat pikselin tai pisteen arvot määritetään differentiaaliyhtälöillä

X-lisäys = dx / (kelluva) vaiheet

Y lisäys = dy / (kelluva) askel

Tässä ei käytetä kiinteitä vakioita, mutta Bresenhamin algoritmissa kiinteitä pisteitä käytetään aritmeettisiin laskutoimituksiin. Bresenhamin algoritmi käyttää integer-aritmeettista, toisin kuin DDA.

  • Käytetyn operaation tyyppi:

DDA ratkaisee differentiaaliyhtälöt kerto- ja jakamisoperaatioilla. Voit huomata saman täällä, X-lisäys = dx / (kelluva) vaiheet. Bresenhamin algoritmi käyttää summaus- ja vähennysoperaatioita, ja voit huomata saman täällä seuraavassa pikseliarvon laskentayhtälössä (xa + 1, ya + 1). Bresenhamin aritmeettiset tiedot ovat yksinkertaisempia kuin DDA.

  • tehokkuus:

Kuten aiemmin olemme keskustelleet, Bresenhamin algoritmi käyttää yksinkertaisempaa aritmeetiaa kuin DDA ja se johtaa tehokkaisiin tuloksiin.

  • Nopeus: Koska DDA käyttää liukulukujen kokonaislukuja kertolaskun ja jakamisen lisäksi, se on suhteellisen hitaampi, kun taas Bresenhamin algoritmissa käytetään vain kokonaislukuaritmetiikkaa sekä pelkästään summaukset ja vähennykset. Tämä vähentää huomattavasti laskentaan kuluvaa aikaa ja siten nopeammin kuin DDA.
  • tarkkuus: Vaikka DDA käyttää liukulukuarvoja, DDA: n tarkkuus ei ole yhtä parempi kuin Bresenhamin. Useat tekijät vaikuttavat tähän käsitykseen, ja siksi Bresenham's on tarkempi kuin DDA.
  • Pyöristäminen: Katsokaa vain DDA: n laskentaa täältä.

X-lisäys = dx / (kelluva) vaiheet

Voit huomata 'kelluvan', joten se ei pyöristä arvoja, kun taas Bresenhamin algoritmi pyöristää arvot lähimpään kokonaislukuun. Siksi käytetyt arvot ovat yksinkertaisempia Bresenhamin algoritmissa.

  • Mitä se vetää??

DDA pystyy piirtämään ympyröitä ja käyrät linjojen lisäksi. Bresenhamin algoritmi pystyy myös piirtämään kaikki edellä mainitut ja sen tarkkuus on todella suurempi kuin DDA: n. Samoin Bresenhamin algoritmi voisi tuottaa tehokkaita käyriä kuin DDA: n tuottama. Molemmat algoritmit voivat piirtää myös kolmioita ja monikulmioita.

  • Mikä on kallista?

Koska DDA sisältää myös pyöristämisen, se on kallista kuin Bresenhamin algoritmin käyttö.

  • Mikä on optimoitu algoritmi?

Yllä olevasta keskustelumme perusteella on erittäin selvää, että Bresenhamin algoritmi on optimoitu toimintonopeuden, kustannusten ja käytön suhteen.

Katsokaamme eroja taulukkomuodossa.

S.No Erot Digitaalinen differentiaalialgoritmi Bresenhamin algoritmi
1. Miksi nimi? Koska se oli yhtälöiden digitaalinen toteutus, se on saanut nimen. Sen keksi J.E. Bresenham vuonna 1962 ja tästä myös nimi.
2. laskelmat Siihen sisältyy tiukempia laskelmia. Käytetyt laskelmat ovat todella yksinkertaisempia.
3. Käytetyt operaatiot Se käytti kertolaskuja ja jakoa. Tässä käytetyt näytteen erotusyhtälöt ovat Xincrement = dx / (kelluva) askelmat,

Yincrement = dy / (kelluva) portaat.

Se käyttää lisäyksiä ja vähennyksiä. Näytteen laskenta voidaan tässä merkitä (xa + 1, ya + 1).
4. Aritmeettinen laskenta-arvo Se käyttää liukulukuarvoja. Se käyttää vain kokonaislukuja.
5. tehokkuus Monimutkainen aritmeettinen tulos vähentää tehokkuutta. Yksinkertaisempi aritmeettinen tulos lisää tehokkuutta.
6. Nopeus Kertolaskujen ja jakamistoimintojen käyttö vie paljon aikaa sen laskentaprosesseihin. Lisäys- ja vähennystoimenpiteiden käyttö vie vähemmän aikaa kuin DDA.
7. tarkkuus Se on vähemmän tarkkoja. Se on tarkempi.
8. Pyöristäminen Se käyttää todellisia arvoja eikä koskaan pyöristä arvoja. Se pyöristää arvot lähimpään kokonaislukuarvoon.
9. Piirustuskyky Se pystyy piirtämään viivoja, ympyröitä ja käyriä, mutta vähemmän tarkkuudella. Voimme jopa piirtää kolmioita ja monikulmioita tällä algoritmilla. Se pystyy piirtämään viivoja, ympyröitä ja käyriä tehokkaammin. Kolmioita ja monikulmioita on myös mahdollista piirtää tällä algoritmilla.
10. Laskelmien kustannukset Se on kallista, koska siihen liittyy myös pyöristäminen. Bresenhamin algoritmin käyttö on halvempaa kuin DDA.
11. Optimoitu algoritmi Se ei ole optimoitu algoritmi Se on optimoitu algoritmi.

Olemme käsitelleet kaikki mahdolliset erot DDA: n ja Bresenhamin algoritmin välillä. Se saattaa jopa näyttää toistuvalta, mutta on olemassa syy mainita nämä kohdat uudelleen, ja saatat tietää, kun ymmärrät sen kokonaan. Jos epäilet edelleen epäselvyyttä, jätä meille kommentti. Oppikaamme yhdessä jakamalla oikea tieto!