DDA Line Drawing
Turbo C++
#include<iostream.h>
#include<graphics.h>
#include<conio.h>
void main()
{
int gd = DETECT, gm;
float x1,x2,y1,y2;
clrscr();
cout<<"Enter x1 y1 x2 y2: ";
cin>>x1>>y1>>x2>>y2;
initgraph(&gd,&gm,"C:/TURBOC3/BGI");
int dx = x2-x1, dy = y2 - y1;
if(dx>=dy)
{
for(int i=0;i<=dx;i++)
{
putpixel(x1,y1,WHITE);
x1++;
y1 = y1 + (dy/dx);
}
}
else
{
for(int i=0;i<=dy;i++)
{
putpixel(x1,y1,WHITE);
x1 = x1 + (dx/dy);
y1++;
}
}
getch();
closegraph();
}
Bresenham Line Drawing
Turbo C++
#include<iostream.h>
#include<graphics.h>
#include<conio.h>
void main()
{
int gd=DETECT,gm,x1,x2,y1,y2,p,dy,dx;
clrscr();
cout<<"Enter x1 y1 x2 y2: ";
cin>>x1>>y1>>x2>>y2;
initgraph(&gd,&gm,"C:/TURBOC3/BGI");
dy = y2-y1;
dx = x2-x1;
p = (2*dy) - dx;
if((dy/dx)<1)
{
for(int i=0;i<=dx;i++)
{
putpixel(x1,y1,WHITE);
if(p<0)
{
x1++;
p = p + (2*dy);
}
else
{
x1++;
y1++;
p = p + (2*dy) - (2*dx);
}
}
}
else
{
for(int i=0;i<=dy;i++)
{
putpixel(x1,y1,WHITE);
if(p<0)
{
y1++;
p = p + (2*dx);
}
else
{
x1++;
y1++;
p = p + (2*dx) - (2*dy);
}
}
}
getch();
closegraph();
}