#include #include #include #include void main() { int gd=DETECT; int gm=DETECT; int dx,dy,Xa,Ya,Xb,Yb,c,r,p,f,m; detectgraph(&gm, &gd); initgraph(&gm,&gd,"c:\\tc\\bgi"); cleardevice(); printf("\n\n\t\t\t MAIN MENU\n"); printf("\t\t\t1.GENTLE POSITIVE SLOPE.\n"); printf("\t\t\t2.GENTLE NEGATIVE SLOPE.\n"); printf("\t\t\t3.SHARP POSITIVE SLOPE.\n"); printf("\t\t\t4.SHARP NEGATIVE SLOPE.\n\n"); printf("\t\t\t ENTER YOUR CHOICE : "); scanf("%d",&m); switch(m) { case 1: printf("\n\n\n\n\t\t\tEnter your first X-coordinates: "); scanf("%d",&Xa); printf("\t\t\tEnter your first Y-coordinates: "); scanf("%d",&Ya); printf("\t\t\tEnter your second X-coordinates: "); scanf("%d",&Xb); printf("\t\t\tEnter your second Y-coordinates: "); scanf("%d",&Yb); dx=Xb-Xa; dy=Yb-Ya; p=2*dy-dx; if(Xa>Xb) { c=Xb; r=Yb; f=Xa; } else { c=Xa; r=Ya; f=Xb; } putpixel(c,r,YELLOW); do { c=c+1; if(p<0) p=p+2*dy; else { r=r+1; p=p+2*(dy-dx); } putpixel(c,r,YELLOW); }while(c0) p=p+2*dy; else { r=r-1; p=p+2*(dy+dx); } putpixel(c,r,YELLOW); } while(c<=f); getch(); line(Xa,Ya,Xb,Yb); getch(); break; case 3: printf("\n\n\n\n\t\t\tEnter your first X-coordinates: "); scanf("%d",&Xa); printf("\t\t\tEnter your first Y-coordinates: "); scanf("%d",&Ya); printf("\t\t\tEnter your second X-coordinates: "); scanf("%d",&Xb); printf("\t\t\tEnter your second Y-coordinates: "); scanf("%d",&Yb); printf("\n\n\n\n\n\t\t\t\t WAIT!"); dx=Xb-Xa; dy=Yb-Ya; p=2*dx-dy; if(Ya Yb) { c=Xb; r=Yb ; f=Ya; } else { c=Xa; r=Ya; f=Yb; } do { if(p<0) { c=c-1; r=r+1; p=p-2*(fabs(dx)-fabs(dy)); } else { r=r+1; p=(p-2*fabs(dx)); } putpixel(c,r,YELLOW); } while(r<=f); getch(); line(Xa,Ya,Xb,Yb); getch(); break; default:invalid(); break; } } blackout() { int i,j; for(i=0;i<640;i++) { for(j=0;j<480;j++) putpixel(j,i,BLACK); } } invalid() { blackout(); halfscr(); printf("\t\t\t\tINVALID INPUT!"); getch(); exit(); } halfscr() { printf("\n\n\n\n\n\n\n\n\n"); }