Path: blob/main/4. DDA and Bresenhams Line Drawing Algorithm.cpp
724 views
/*14. Write a c++ program for drawing a line using2DDA and Bresahnams Line Drawing Algorithm3*/456#include<iostream.h>7#include<graphics.h>8#include<math.h>910int sign(int x)11{12if(x<0)13return -1;14else if(x>0)15return 1;16else17return 0;18}19void bline(int x1,int y1,int x2,int y2,int col)20{21int dx,dy,e,x,y,i=1;22dx=x2-x1;23dy=y2-y1;24x=x1;25y=y1;26e=2*dy-dx;27while(i<=dx)28{29while(e>=0)30{31y++;32e=e-2*dx;33}3435x++;36e=e+2*dy;37putpixel(x,y,col);38i++;39}40}41void ddaline(int x1,int y1,int x2,int y2,int42col)43{44int x,y,len,i;45float dx,dy;46if(x1==x2 && y1==y2)47putpixel(x1,y1,col);48else49{50dx=abs(x2-x1);51dy=abs(y2-y1);52if(dx>dy)53len=dx;54else55len=dy;56dx=(x2-x1)/len;57dy=(y2-y1)/len;58x=x1+0.5*sign(dx);59y=y1+0.5*sign(dy);60i=1;61while(i<len)62{63putpixel(x,y,col);64x=x+dx;65y=y+dy;66i++;67}68}69}70int main()7172{73int ch,col,x1,x2,y1,y2;74cout<<"\n------------MENU------------\n"75cout<<"1.USING DDA\n";76cout<<"2.Using Bresahnams\n";77cout<<"\nEnter your choice : \n";78cin>>ch;79cout<<"\nEnter points x1,y1,x2,y2 : \n";80cin>>x1>>y1>>x2>>y2;81cout<<"\nEnter colour 1-15 : \n";82cin>>col;83if(col>15||col<1)84col=1;85int gd=DETECT,gm;86initgraph(&gd,&gm,”c:\\turboc3\\bgi”);87switch(ch)88{89case 1:90ddaline(x1,y1,x2,y2,col);91ddaline(300,300,400,300,col);92ddaline(300,300,300,400,col);93ddaline(300,400,400,400,col);94ddaline(400,400,400,300,col);95break;96case 2:97bline(x1,y1,x2,y2,col);98ddaline(300,300,400,300,col);99ddaline(300,300,300,400,col);100ddaline(300,400,400,400,col);101ddaline(400,400,400,300,col);102break;103default :104cout<<"\nEnter valid choice :\n";105}106107getch();108closegraph();109return 0;110}111112113