DDA vs Bresenham Algorithm
DDA ja Bresenham Algorithm ovat termejä, joihin olisit törmännyt tietokonegrafiikkaa opiskellessasi. Ennen kuin selitämme näiden kahden termin välisen eron, katsotaanpa, mikä on DDA ja mikä on Bresenham-algoritmi. Tietokoneen keksintö yksinkertaisti asioita ja yksi niistä oli differentiaaliyhtälöiden ratkaiseminen. Aiemmin se tehtiin mekaanisella differentiaalianalysaattorilla, joka oli hidas ja täynnä virheitä, mutta DDA tai Digital differential Analyzer on digitaalisessa muodossa olevan analysaattorin sovellus, joka on tarkka ja nopea. Differentiaalianalysaattorilla tehdään viivoja kahden pisteen välille siten, että näytöllä näkyy suora tai monikulmio, jossa on n sivuja. Kahden pisteen tai pikselin välinen etäisyys kuvataan differentiaaliyhtälöllä, jossa aloituspisteen ja loppupisteen koordinaatit on määritelty ohjelmistossa. Tämä voidaan saavuttaa DDA- ja Bresenham-algoritmilla.
Mikä on DDA?
DDA:ta käytetään suorien viivojen piirtämiseen muodostamaan viiva, kolmio tai monikulmio tietokonegrafiikassa. DDA analysoi näytteitä viivaa pitkin säännöllisin väliajoin, kun yksi koordinaatti on kokonaisluku, ja toiselle koordinaatille se pyöristää riviä lähinnä olevan kokonaisluvun. Siksi rivin edetessä se skannaa ensimmäisen kokonaisluvun koordinaatin ja pyöristää toisen lähimpään kokonaislukuun. Siksi DDA:lla piirretty viiva x-koordinaatille on x0 ja x1, mutta y-koordinaatille se on y=ax+ b ja piirtofunktio se on Fn(x, y pyöristettynä).
Mikä on Bresenham-algoritmi?
Bresenham Algorithmin kehitti J. E. Bresenham vuonna 1962, ja se on paljon tarkka ja paljon tehokkaampi kuin DDA. Se skannaa koordinaatit, mutta pyöristyksen sijaan se ottaa inkrementaalisen arvon huomioon lisäämällä tai vähentämällä ja siksi sitä voidaan käyttää ympyrän ja käyrien piirtämiseen. Jos siis viiva piirretään kahden pisteen x ja y välille, seuraavat koordinaatit ovat (xa+1, ya) ja (x a+1, ya+1), jossa a on seuraavien koordinaattien inkrementaalinen arvo ja näiden kahden välinen ero lasketaan vähentämällä tai lisäämällä niiden muodostamat yhtälöt.
DDA:n ja Bresenham-algoritmin ero
• DDA käyttää liukulukuja, kun taas Bresenham-algoritmi käyttää kiinteitä pisteitä.
• DDA pyöristää koordinaatit lähimpään kokonaislukuun, mutta Bresenham-algoritmi ei.
• Bresenham-algoritmi on paljon tarkka ja tehokas kuin DDA.
• Bresenham-algoritmi voi piirtää ympyröitä ja käyriä paljon tarkemmin kuin DDA.
• DDA käyttää yhtälön kerto- ja jakolaskua, mutta Bresenham-algoritmi käyttää vain vähennys- ja yhteenlaskua.