How To Fill a Rectangle using Scan Line Rectangle Fill Algorithm in C++

来源:转载

HiTo day we make a Fill a Rectangle using Scan Line Rectangle Fill Algorithm in C++.Lets Try to make it.

Developer : ijaz Rs khAn & Bilal tahir

Email : [email protected]

Compiler : Microsoft Visual Studio 2012

Comp. Date: 1-11-2015

Fill a Rectangle using Scan Line Rectangle Fill Algorithm in C++

Source Code

# include <graphics.h> //for textcolor & textbackground# include <conio.h> // for clrscr# include <math.h> // for math functionvoid show_screen( ); // show screen void Fill_rectangle(constint,constint,constint,constint); void Rectangle(constint,constint,constint,constint);void Line(constint,constint,constint,constint);int main( ) // main function{int driver=VGA;int mode=VGAHI; int x_1=0;int y_1=0; int x_2=0;int y_2=0; do{show_screen( ); // show screen gotoxy(8,10);cout<<"Coordinates of Left Point..... (x1,y1) :"; gotoxy(8,11);cout<<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; gotoxy(12,13);cout<<"Insert the value of x1 = ";cin>>x_1; gotoxy(12,14);cout<<"Insert the value of y1 = ";cin>>y_1; gotoxy(8,18);cout<<"Coordinates of Right Point... (x2,y2) :"; gotoxy(8,19);cout<<"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; gotoxy(12,21);cout<<"Insert the value of x2.... = ";cin>>x_2; gotoxy(12,22); ///cout<<"Insert the value of y2 = ";cin>>y_2; int driver=VGA;int mode=VGAHI;int error_code; initgraph(&driver,&mode,"..//Bgi"); setcolor(15);Rectangle(x_1,y_1,x_2,y_2); setcolor(9);Fill_rectangle((x_1+1),(y_1+1),(x_2-1),(y_2-1)); setcolor(15);outtextxy(110,460,"enter to continue or any other key to exit."); int key=int(getch( )); if(key!=13)break;}while(1); // while loop return 0;}{int y_min=((y_1>=y_2)?y_2:y_1);int y_max=((y_1<=y_2)?y_2:y_1); for(int count=y_min;count<=y_max;count++)Line(x_1,count,x_2,count);}{Line(x_1,y_1,x_2,y_1);Line(x_2,y_1,x_2,y_2);Line(x_2,y_2,x_1,y_2);Line(x_1,y_2,x_1,y_1);} {int color=getcolor( ); //for color int x1=x_1;int y1=y_1; int x2=x_2;int y2=y_2; if(x_1>x_2){x1=x_2;y1=y_2; x2=x_1;y2=y_1; } int dx=abs(x2-x1);int dy=abs(y2-y1);int inc_dec=((y2>=y1)?1:-1); if(dx>dy){int two_dy=(2*dy);int two_dy_dx=(2*(dy-dx));int p=((2*dy)-dx); int x=x1;int y=y1; putpixel(x,y,color); while(x<x2) //while loop{x++; if(p<0) // if comditionp+=two_dy; else{y+=inc_dec;p+=two_dy_dx;} putpixel(x,y,color);}} else{int two_dx=(2*dx);int two_dx_dy=(2*(dx-dy));int p=((2*dx)-dy); int x=x1;int y=y1; putpixel(x,y,color); while(y!=y2){y+=inc_dec; if(p<0)p+=two_dx; else{x++;p+=two_dx_dy;} putpixel(x,y,color);}}}{restorecrtmode( );textmode(C4350); cprintf("/n**********************************");cprintf("*******- -***********");cprintf("*------- "); textbackground(1);cprintf(" Scan-Line Rectangle Fill Algorithm ");textbackground(8); cprintf(" --------*")cprintf("*******- -****************");cprintf("*-************************-*"); for(int count=0;count<42;count++)cprintf("*-* *-*"); gotoxy(1,46);cprintf("*-***************-*");cprintf("*------------------*");cprintf("*******************"); gotoxy(1,2);} Copy and paste the following C++ program in test.cpp file and compile and run this program.if you Face any problem Freely contact us.Give your Feed Back.Thank you.



分享给朋友:
您可能感兴趣的文章:
随机阅读: