Digital differential analyzer (graphics algorithm)

This is an old revision of this page, as edited by ClueBot (talk | contribs) at 05:25, 9 January 2008 (Reverting possible vandalism by 122.144.115.192 to version by MattieTK. False positive? report it. Thanks, User:ClueBot. (150758) (Bot)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In Computer graphics, Digital Differential Analyzer (DDA) 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.

The DDA method is not very efficient due to the need for division and rounding. Bresenham's line algorithm is a more efficient method to draw lines because it uses only addition, subtraction and bit shifting.

Sample Code

{{citation}}: Empty citation (help) This is a sample DDA implementation in the C programming language:

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));
            }
}