DDA vs Bresenhami algoritm
DDA ja Bresenhami algoritm on terminid, millega oleksite arvutigraafikat õppides kohanud. Enne nende kahe termini erinevuse selgitamist vaatame, mis on DDA ja mis on Bresenhami algoritm. Arvuti leiutamine tegi asja lihtsaks ja üks neist oli diferentsiaalvõrrandite lahendamine. Varem tehti seda mehaanilise diferentsiaalanalüsaatoriga, mis oli aeglane ja vigaderohke, kuid DDA ehk Digital Differential Analyzer on analüsaatori rakendus digitaalsel kujul, mis on täpne ja kiire. Diferentsiaalanalüsaatorit kasutatakse joonte tegemiseks kahe punkti vahel nii, et ekraanil oleks näha sirgjoont või hulknurka n arvu külgedega. Kahe punkti või piksli vahelist kaugust kirjeldatakse diferentsiaalvõrrandiga, kus tarkvaras on määratud algus- ja lõpp-punkti koordinaadid. Seda saab saavutada DDA ja Bresenhami algoritmi abil.
Mis on DDA?
DDA-d kasutatakse sirgjoone tõmbamisel, et moodustada arvutigraafikas joon, kolmnurk või hulknurk. DDA analüüsib proove piki joont korrapäraste intervallidega, mille üks koordinaat on täisarvuna ja teise koordinaadi puhul ümardab see joonele lähima täisarvu. Seetõttu skannib joone edenedes esimest täisarvu koordinaati ja ümardatakse teine lähima täisarvuni. Seetõttu on x-koordinaadi jaoks DDA-ga tõmmatud joon x0 kuni x1, kuid y-koordinaadi puhul on see y=ax+ b ja joonistusfunktsioon see on Fn(x, y ümardatud).
Mis on Bresenhami algoritm?
Bresenhami algoritmi töötas välja J. E. Bresenham 1962. aastal ning see on palju täpne ja palju tõhusam kui DDA. See skaneerib koordinaate, kuid nende ümardamise asemel võtab see arvesse lisaväärtust, liites või lahutades ning seetõttu saab seda kasutada ringi ja kõverate joonistamiseks. Seega, kui kahe punkti x ja y vahele tõmmata joon, on järgmised koordinaadid (xa+1, ya) ja (x a+1, ya+1), kus a on järgmiste koordinaatide inkrementaalne väärtus ja nende kahe vaheline erinevus arvutatakse, lahutades või liites nende moodustatud võrrandid.
DDA ja Bresenhami algoritmi erinevus
• DDA kasutab ujukpunkte, samas kui Bresenhami algoritm kasutab fikseeritud punkte.
• DDA ümardab koordinaadid lähima täisarvuni, kuid Bresenhami algoritm seda ei tee.
• Bresenhami algoritm on palju täpne ja tõhus kui DDA.
• Bresenhami algoritm suudab joonistada ringe ja kõveraid palju suurema täpsusega kui DDA.
• DDA kasutab võrrandi korrutamist ja jagamist, kuid Bresenhami algoritm kasutab ainult lahutamist ja liitmist.