Asked in ComputersComputer ProgrammingC Programming
Computers
Computer Programming
C Programming
DDA line algorithm?
Answer

Wiki User
September 17, 2009 3:00PM
DDA Line Drawing Algorithm
Step 1:[Determine The Dx & Dy]
Dx=Xb-Xa
Dy=Yb-Ya
Step 2:[Determine Slope is Gentle or Sharp]
If |Dx|>|Dy| then
Gentle Slope
M=Dy/Dx
Set The Starting Point
If Dx>0 Then
C=CELING(Xb)
D=Yb+M*(C-Xb)
F=FLOOR(Xa)
R=FLOOR(D+0.5)
H=R-D+M
IF M>0 Then
Positive Gentle Slope
M1=M-1
Now Step Through The Columns
WHILE C<=F
C Programming Coding For
DDA Algorithm
void linedda(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;
putpixel(round(x),round(y),2)
for(k=0;k<steps;k++) {
x+=xincrement;
y+=yincrement;
putpixel(round(x),round(y),2);
}
}
More Information
http://knol.google.com/k/thiyagaraaj-m/dda-line-algorithm/1lfp8o9xxpx13/78#http://i.thiyagaraaj.com/articles/articles/dda-line-algorithm
Related Questions
Asked in Computers, Computer Programming, C Programming, Comparisons
Make a comparison between Bresenham and DDA line drawing algorithms?

Difference Between DDA and Bresenham Algorithm
• DDA uses floating points where as Bresenham algorithm use
fixed points.
• DDA round off the coordinates to nearest integer but Bresenham
algorithm does not.
• Bresenham algorithm is much accurate and efficient than
DDA.
• Bresenham algorithm can draw circles and curves with much more
accuracy than DDA.
• DDA uses multiplication and division of equation but Bresenham
algorithm uses subtraction and addition only.
Asked in Computers, Computer Programming, C Programming
Advantages of DDA line drawing algorithm?

Advantages of DDA Algorithm:
1. It is the simplest algorithm and it does not require special
skills for implementation.
2. It is a faster method for calculating pixel positions than
the direct use of equation y=mx + b. It eliminates the
multiplication in the equation by making use of raster
characteristics, so that appropriate increments are applied in the
x or y direction to find the pixel positions along the line
path.
Asked in Computer Programming, Math and Arithmetic, C Programming
What is the advantage of bresenham algorithm over dda algorithm?

DDA uses float numbers and uses operators such as division and
multiplication in its calculation. Bresgenham's algorithm uses ints
and only uses addition and subtraction. Due to the use of only
addition subtraction and bit shifting (multiplication and division
use more resources and processor power) bresenhams algorithm is
faster than DDA in producing the line. Im not sure, though if i
remember right, they still produce the same line in the end.
One note concerning efficiency: Fixed point DDA algorithms are
generally superior to Bresenhams algorithm on modern computers. The
reason is that Bresenhams algorithm uses a conditional branch in
the loop, and this results in frequent branch mispredictions in the
CPU. Fixed point DDA also has fewer instructions in the loop body
(one bit shift, one increment and one addition to be exact. In
addition to the loop instructions and the actual plotting). As CPU
pipelines become deeper, mispredictions penalties will become more
severe.
Since DDA uses rounding off of the pixel position obtained by
multiplication or division, causes an accumulation of error in the
proceeding pixels whereas in Bresenhams line algorithm the new
pixel is calculated with a small unit change in one direction and
checking of nearest pixel with the decision variable satisfying the
line equation.
Asked in Computers, Computer Programming
Difference between DDA and Bresenham's line drawing algorithm?

DDA uses float numbers and uses operators such as division and
multiplication in its calculation. Bresenhams algorithm uses ints
and only uses addition and subtraction. Due to the use of only
addition subtraction and bit shifting (multiplication and division
use more resources and processor power) bresenhams algorithm is
faster than DDA in producing the line. Im not sure, though if i
remember right, they still produce the same line in the end. One
note concerning efficiency: Fixed point DDA algorithms are
generally superior to Bresenhams algorithm on modern computers. The
reason is that Bresenhams algorithm uses a conditional branch in
the loop, and this results in frequent branch mispredictions in the
CPU. Fixed point DDA also has fewer instructions in the loop body
(one bit shift, one increment and one addition to be exact. In
addition to the loop instructions and the actual plotting). As CPU
pipelines become deeper, mispredictions penalties will become more
Severe.
Asked in Science, Engineering, C Programming, Visual Basic Programming
Disadvantages of DDA line drawing algorithm?

1.It drift away from the actual line path because of rounding
off float values to integer
2.It causes jaggies or stair-step effect
----------------------------------------------------------------------------------------------------------------
Disadvantage:
The accumulation of round of error is successive addition of the
floating point increments is used to find the pixel position but it
take lot of time to compute the pixel position.
----------------------------------------------------------------------------------------------------------------
More Information
http://knol.google.com/k/thiyagaraaj-m/dda-line-algorithm/1lfp8o9xxpx13/78#
http://i.thiyagaraaj.com/articles/articles/dda-line-algorithm
----------------------------------------------------------------------------------------------------------------
the standard version of dda given as in one of its steps as
if(abs(dx)>abs(dy)) steps=abs(dx);
else steps=abs(dy);
this part just supports the positive slop with starting point on
left side. Take an example of any other end points as {(8,3) to
(2,2) or (4,5) to ( 8,2) or (8,3) to (5,5) } where the slop needs
to be negative( for the last two cases) only.
can anyone correct me by suggesting the accurate version of DDA?
Or is this the actual DDA??.
Asked in C Programming
Use dda line algorithm in c create?

C Programming Coding For
DDA Algorithm
void linedda(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;
putpixel(round(x),round(y),2)
for(k=0;k<steps;k++) {
x+=xincrement;
y+=yincrement;
putpixel(round(x),round(y),2);
}
}
More Information
http://knol.google.com/k/thiyagaraaj-m/dda-line-algorithm/1lfp8o9xxpx13/78#
http://i.thiyagaraaj.com/articles/articles/dda-line-algorithm
Asked in Computers
DDA line algorithm to be executed in C?

C Programming Coding For
DDA Algorithm
void linedda(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;
putpixel(round(x),round(y),2)
for(k=0;k<steps;k++) {
x+=xincrement;
y+=yincrement;
putpixel(round(x),round(y),2);
}
}
More Information
http://knol.google.com/k/thiyagaraaj-m/dda-line-algorithm/1lfp8o9xxpx13/78#
http://i.thiyagaraaj.com/articles/articles/dda-line-algorithm
Asked in Software and Applications (non-game), Computer Programming, C Programming
What is dda algorithm?

digital differential analyzer is a scan conversion incrementing
line drawing algorithm
which is based on calculating either delta x or delta y.
increment along one axis
i.e either along x or y is set to unity and along other axis is
calculated depending
on the slope of line...
by-
sweet n gorgeous gal...
Asked in Educational Methods and Theories
Differences between digital differential analyzer and bresenham algorithm?

Answer
DDA uses float numbers and uses operators such as division and
multiplication in its calculation. Bresenhams algorithm uses ints
and only uses addition and subtraction. Due to the use of only
addition subtraction and bit shifting (multiplication and division
use more resources and processor power) bresenhams algorithm is
faster than DDA in producing the line. Im not sure, though if i
remember right, they still produce the same line in the end.
One note concerning efficiency: Fixed point DDA algorithms are
generally superior to Bresenhams algorithm on modern computers. The
reason is that Bresenhams algorithm uses a conditional branch in
the loop, and this results in frequent branch mispredictions in the
CPU. Fixed point DDA also has fewer instructions in the loop body
(one bit shift, one increment and one addition to be exact. In
addition to the loop instructions and the actual plotting). As CPU
pipelines become deeper, mispredictions penalties will become more
severe.
Since DDA uses rounding off of the pixel position obtained by
multiplication or division, causes an accumulation of error in the
proceeding pixels whereas in Bresenhams line algorithm the new
pixel is calculated with a small unit change in one direction and
checking of nearest pixel with the decision variable satisfying the
line equation.
BUT this error can be calculated and will not cause problems for
typical line drawing applications. Lines longer than what fits on a
typical computer screen (a few thousand pixels) will be identical
to Bresenham lines when using 32 bit integers. Fixed point DDA also
has another advantage: Since it does not require conditional jumps,
you can compute several lines in parallel with SIMD (Single
Instruction Multiple Data) techniques.