Computer Graphics 3
Computer Graphics 3
Lab File
For
UTTAR PRADESH
1|Page
EXP. NO. : 3 STUDENT NAME: CHAITANYA SAXENA
PROGRAM :
1. DESCRIPTION (INTRODUCTION)
DDA stands for Digital Differential Analyzer. It is an incremental method of
scan conversion of line. In this method calculation is performed at each step but
by using results of previous steps.
m= yi+1-
yi=∆y.......................equation 3
yi+1-xi=∆x......................equation 4
2|Page
yi+1=yi+∆y ∆y=m∆x
yi+1=yi+m∆x ∆x=∆y/m
xi+1=xi+∆x
xi+1=xi+∆y/m
Case1: When |M|<1 then (assume that x1<x2)
x= x1,y=y1 set ∆x=1
yi+1=y1+m, x=x+1
Until x = x2</x
xi+1= , y=y+1
3. It allows us to detect the change in the value of x and y ,so plotting of same point twice is not possible.
Disadvantage:
1. It involves floating point additions rounding off is done. Accumulations of round off error cause accumulation
of error.
2. Rounding off operations and floating point operations consumes a lot of time.
3. It is more suitable for generating line using the software. But it is less suited for hardware implementation.
DDA Algorithm:
3|Page
Step3: Enter value of x1,y1,x2,y2.
Else
Step7: xinc=dx/step
yinc=dy/step assign
x = x1 assign y =
y1
Step9: x = x + xinc
y = y + yinc
End Algorithm
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?
x1=2
y1=3 x2= 6
y2=15 dx = 6 -
2=4 dy = 15 -
3 = 12
m=
4|Page
5|Page
2. SOURCE CODE –
#include<graphics.h>
#include<conio.h>
#include<stdio.h> int
main()
{
int gd = 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);
6|Page
x += dx;
y += dy;
i=i+1;
}
getch();
closegraph();
return 0;
}
3. OUTPUT -
7|Page