Jump to content

Digital differential analyzer (graphics algorithm)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Markzou (talk | contribs) at 16:51, 14 August 2007 (Adding information and sample code). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

DDA (digital differential analyzer) is used for generating pixels using a line formed by two points. It employees the equation for line representation (example: y=mx+c), then scan through an axis. Each scan it would determine the value on the other axis using the equation, this way the proper pixel can be located. Here is a sample C code of the DDA implementation:

void line DDA(int xa, int ya, int xb, int yb) { int dx=xb-xa, dy=yb-ya, steps, k; float xIncrement, yIncrement, x=xa, y=ya; if(abs(dx)>abs(dy)) steps=abs(dx); else steps=abs(dy);

xIncrement=dx/(float)steps; yIncrement=dy/(float)steps;

setPixel(ROUND(x), ROUND(y)); for(k=0; k<steps; k++) { x += xIncrement; y += yIncrement; setPixel(ROUND(x), ROUND(y)); }

}