0% found this document useful (0 votes)
42 views

Computer Graphics - Unit 2 (DDA )

The document discusses the DDA (Digital Differential Analyzer) algorithm, which is used to generate lines in computer graphics. It describes the steps of the algorithm, including calculating the difference between endpoint coordinates, determining the number of steps, and incrementing the x and y coordinates while plotting pixels. An example of applying the algorithm to a line between two points is also provided.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Computer Graphics - Unit 2 (DDA )

The document discusses the DDA (Digital Differential Analyzer) algorithm, which is used to generate lines in computer graphics. It describes the steps of the algorithm, including calculating the difference between endpoint coordinates, determining the number of steps, and incrementing the x and y coordinates while plotting pixels. An example of applying the algorithm to a line between two points is also provided.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Unit 2 (DDA Algorithm)

DDA Algorithm
Introduction :

DDA (Digital Differential Analyzer) is a line drawing


algorithm used in computer graphics to generate a line
segment between two specified endpoints. It is a simple
and efficient algorithm that works by using the
incremental difference between the x-coordinates and
y-coordinates of the two endpoints to plot the line.

The steps involved in DDA line generation algorithm are:

 Input the two endpoints of the line segment, (x1,y1)


and (x2,y2).

 Calculate the difference between the x-coordinates


and y-coordinates of the endpoints as dx and dy
respectively.

 Calculate the slope of the line as m = dy/dx.

 Set the initial point of the line as (x1,y1).

 Loop through the x-coordinates of the line,


incrementing by one each time, and calculate the
corresponding y-coordinate using the equation y = y1
+ m(x – x1).

 Plot the pixel at the calculated (x,y) coordinate.

 Repeat steps 5 and 6 until the endpoint (x2,y2) is


reached.

Digital Differential Analyzer DDA algorithm is the simple line


generation algorithm which is explained step by step here.

Step 1 − Get the input of two end points (X0,Y0)(�0,�0) and


(X1,Y1)(�1,�1).

Step 2 − Calculate the difference between two end points.

dx = X1 - X0

dy = Y1 - Y0

Step 3 − Based on the calculated difference in step-2, you need to


identify the number of steps to put pixel. If dx > dy, then you
need more steps in x coordinate; otherwise in y coordinate.

if (absolute(dx)>absolute(dy)) Steps =absolute(dx);else Steps =


absolute(dy);

Step 4 − Calculate the increment in x coordinate and y coordinate.

Xincrement = dx / (float) steps;

Yincrement = dy / (float) steps;

Step 5 − Put the pixel by successfully incrementing x and y


coordinates accordingly and complete the drawing of the line.

for(intv=0;v <Steps;v++){ x = x + Xincrement; y =y +Yincrement;


putpixel(Round(x),Round(y));}

Advantage:

 It is a faster method than method of using direct use of line equation.


 This method does not use multiplication theorem.
 It allows us to detect the change in the value of x and y ,so plotting of
same point twice is not possible.
 This method gives overflow indication when a point is repositioned.

 It is an easy method because each step involves just two additions.

Disadvantage:

 It involves floating point additions rounding off is done.


Accumulations of round off error cause accumulation of error.
 Rounding off operations and floating point operations consumes a
lot of time.
 It is more suitable for generating line using the software. But it is less
suited for hardware implementation.

Example: If a line is drawn from (2, 3) to (6, 15) with use of DDA. How many
points will needed to generate such line?

Solution: P1 (2,3) P11 (6,15)

x1=2
y1=3
x2= 6
y2=15
dx = 6 - 2 = 4
dy = 15 - 3 = 12

m=

For calculating next value of x takes x = x +

Step1: Start Algorithm

Step2: Declare x1,y1,x2,y2,dx,dy,x,y as integer variables.

Step3: Enter value of x1,y1,x2,y2.

Step4: Calculate dx = x2-x1

Step5: Calculate dy = y2-y1

Step6: If ABS (dx) > ABS (dy)


Then step = abs (dx)
Else

Step7: xinc=dx/step
yinc=dy/step
assign x = x1
assign y = y1
Step8: Set pixel (x, y)

Step9: x = x + xinc
y = y + yinc
Set pixels (Round (x), Round (y))

Step10: Repeat step 9 until x = x2

Step11: End Algorithm

Program to implement DDA Line Drawing Algorithm:

#include<graphics.h>

#include<conio.h>

#include<stdio.h>

void main()

intgd = DETECT ,gm, i;

float x, y,dx,dy,steps;

int x0, x1, y0, y1;

initgraph(&gd, &gm, "C:\\TC\\BGI");

setbkcolor(WHITE);

x0 = 100 , y0 = 200, x1 = 500, y1 = 300;

dx = (float)(x1 - x0);
dy = (float)(y1 - y0);

if(dx>=dy)

steps = dx;

else

steps = dy;

dx = dx/steps;

dy = dy/steps;

x = x0;

y = y0;

i = 1;

while(i<= steps)

putpixel(x, y, RED);

x += dx;

y += dy;

i=i+1;

getch();
closegraph();

You might also like