functii grafice În c
DESCRIPTION
Functii grafice in CTRANSCRIPT
Funcia closegraph se folosete atunci cnd vrei s iei din modul grafic :
Declaraie : void closegraph();#include
#include
int main(){
int gd = DETECT, gm;
// iniializare mod grafic initgraph(&gd,&gm,"C:\\TC\\BGI"); // iniializare mod grafic outtext("Press any key to close the graphics mode...");
getch();
closegraph();
return 0;
}
NU folosi clrscr( ) n modul grafic !!!! Dac vrei s curei ecranul, folosete funcia cleardevice :
Declaraie : void cleardevice();
#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
outtext("Press any key to clear the screen."); // Afieaz un text n modul grafic getch();
cleardevice();
outtext("Press any key to exit..."); // Afieaz un text n modul grafic getch();
closegraph();
return 0;
}
Funcia outtext n C ( afieaz un text la poziia respectiv ) :
Declrarare : void outtext(char *string); #include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
outtext("To display text at a particular position on the screen use outtextxy");
getch();
closegraph();
return 0;
}
Funcia outtextxy n C ( afieaz un text la o poziie specificat ) :
Declaraie : void outtextxy(int x, int y, char *string); #include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
outtextxy(100, 100, "Outtextxy function");
getch();
closegraph();
return 0;
}
Unde 100, 100 reprezint coordonatele punctului de unde va ncepe afiarea textului.
Arc de cerc n C :Declaraie : void arc(int x, int y, int stangle, int endangle, int radius);
#include
#include
int main(){ int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
arc(100, 100, 0, 135, 50);
getch();
closegraph();
return 0;
}Unde 100, 100 reprezint coordonatele centrului arcului de cerc, 0 e unghiul de nceput, 135 unghiul final iar 50 raza arcului de cerc...Output :
Cum desenm un dreptunghi, ptrat n C :Declaraie : void bar(int left, int top, int right, int bottom);#include
#include
int main(){ int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
bar(100, 100, 200, 200);
getch();
closegraph();
return 0;
}
Output :
Unde 100, 100 reprezint distana din colul sus-stnga iar 200, 200 laturile patratului...
Cum desenm un dreptunghi, ptrat 3D n C :Declaratie : void bar3d(int left, int top, int right, int bottom, int depth, int topflag);#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
bar3d(100, 100, 200, 200, 20, 1);
getch();
closegraph();
return 0;
}
Output :
Cum desenm un cerc n C :Declaraie : void circle(int x, int y, int radius);
#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
circle(100, 100, 50);
getch();
closegraph();
return 0;
}
Unde 100,100 reprezint coordonatele centrului cercului iar 50 raza cercului.
Output :
Funcia floodfill n C (folosit pentru a umple o suprafa nchis, exemplu, cercul) :
Declaraie : void floodfill(int x, int y, int border);#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
setcolor(RED);
circle(100,100,50);
floodfill(100,100,RED);
getch();
closegraph();
return 0;
}
Output of program:
Cum desenm o elips n C :
Declaratie : void ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius);
#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BIN");
ellipse(100, 100, 0, 360, 50, 25);
getch();
closegraph();
return 0;
}
Output :
Cum desenm poligoane n C :
Declaraie : void drawpoly( int num, int *polypoints );
#include
#include
int main(){
int gd = DETECT, gm;
int points[] = { 320, 150, 420, 300, 250, 300, 320, 150};
initgraph(&gd, &gm, "C:\\TC\\BIN");
drawpoly(4, points);
getch();
closegraph();
return 0;
}Unde vectorul points conine coordonatele punctelor. (320, 150),(420, 300) i (250, 300). Ultimul punct - (320, 150) Output :
Funcia fillpoly n C (folosit pentru a umple coninutul poligoanelor ) :
Declaraie : void drawpoly( int num, int *polypoints );#include
#include
int main(){
int gd = DETECT, gm;
int points[] = { 320, 150, 440, 340, 230, 340, 320, 150 };
initgraph(&gd, &gm, "C:\\TC\\BIN");
fillpoly(4, points);
getch();
closegraph();
return 0;
}
Output of program :
Funcia fillellipse n C :
Declaratie : void fillellipse(int x, int y, int xradius, int yradius);#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");
fillellipse(100, 100, 50, 25);
getch();
closegraph();
return 0;
}
Output :
Funcia getarcoords n C (folosit pentru a obine coordonatele ultimului cerc desenat ) :
Declaraie : void getarccoords(struct arccoordstype *var); #include
#include
#include
int main(){
int gd = DETECT, gm;
struct arccoordstype a;
char arr[100];
initgraph(&gd,&gm,"C:\\TC\\BGI");
arc(250,200,0,90,100);
getarccoords(&a);
sprintf(arr,"(%d, %d)",a.xstart,a.ystart);
outtextxy(360,195,arr);
sprintf(arr,"(%d, %d)",a.xend,a.yend);
outtextxy(245,85,arr);
getch();
closegraph();
return 0;
}
Funcia getbkcolor n C ( returneaz culoarea de fundal ):
Declaraie : int getbkcolor();#include
#include
int main(){
int gd = DETECT, gm;
int bkcolor;
char a[100];
initgraph(&gd,&gm,"C:\\TC\\BGI");
bkcolor = getbkcolor();
sprintf(a,"Current background color = %d",bkcolor);
outtextxy(0, 0, a);
getch();
closegraph();
return 0;
}Funcia getcolor n C ( returneaz culoarea cu care se deseneaz ) :
Declaraie : int getcolor(); #include
#include
int main(){
int gd = DETECT, gm;
int dwcolor;
char a[100];
initgraph(&gd,&gm,"C:\\TC\\BGI");
dwcolor = getcolor();
sprintf(a,"Current drawing color = %d ",dwcolor);
outtextxy(0, 0, a);
getch();
closegraph();
return 0;
}
Funcia getdrivername n C ( returneaz un pointer ctre driverul grafic ) :
#include
#include
int main(){
int gd = DETECT, gm;
char *drivername;
initgraph(&gd, &gm, "C:\\TC\\BGI");
drivername = getdrivername();
outtextxy(200, 200, drivername);
getch();
closegraph();
return 0;
}
Funcia getmaxcolor n C ( returneaz valoarea culorii maxime suportate de modul grafic i de driver ) : Declaraie : int getmaxcolor();#include
#include
int main(){
int gd = DETECT, gm;
int maxcolor;
char a[100];
initgraph(&gd,&gm,"C:\\TC\\BGI");
maxcolor = getmaxcolor();
sprintf(a,"Maximum number of colors for current graphics mode and driver = %d",maxcolor+1);
outtextxy(0, 40, a);
getch();
closegraph();
return 0;
}Funcia getmaxx n C ( returneaz valoarea maxim a lui X pe axa de coordonate n modul grafic ) : Declaraie : int getmaxx();#include
#include
int main(){ int gd = DETECT, gm;
int maxx;
char a[100];
initgraph(&gd,&gm,"C:\\TC\\BGI");
maxx = getmaxx();
sprintf(a,"Maximum X coordinate for current graphics mode and driver = %d.",maxx);
outtext(a);
getch();
closegraph();
return 0;
}
Funcia getmaxy n C ( returneaz valoarea maxim a lui Y pe axa de coordonate n modul grafic ) : Declaraie : int getmaxy();#include
#include
int main(){ int gd = DETECT, gm;
int maxy;
char a[100];
initgraph(&gd,&gm,"C:\\TC\\BGI");
maxy = getmaxy();
sprintf(a,"Maximum Y coordinate for current graphics mode and driver is = %d.",maxy);
outtext(a);
getch();
closegraph();
return 0;
}
Funcia getpixel n C ( returneaz culoarea unei pixel de pe poziia respectiv ) :Declaraie : int getpixel(int x, int y);#include
#include
int main(){
int gd = DETECT, gm;
int color;
char array[50];
initgraph(&gd,&gm,"C:\\TC\\BGI");
color = getpixel(0, 0);
sprintf(array,"color of pixel at (0,0) = %d",color);
outtext(array);
getch();
closegraph();
return 0;
}
Funcia getx n C ( returneaz poziia lui X pe axa de coordonate ) :
Declaraie : int getx();#include
#include
int main(){
int gd = DETECT, gm;
char array[100];
initgraph(&gd, &gm, "C:\\TC\\BIN");
sprintf(array, "Current position of x = %d",getx());
outtext(array);
getch();
closegraph();
return 0;
}
Funcia gety n C ( returneaz poziia lui Y pe axa de coordonate ) :
Declaraie : int gety();#include
#include
int main(){
int gd = DETECT, gm;
char message[100];
initgraph(&gd, &gm, "C:\\TC\\BIN");
sprintf(message, "Current position of y = %d",gety());
outtext(message);
getch();
closegraph();
return 0;
}
Funcia graphdefaults n C ( reseteaz toate funciile grafice la default, valoarea iniial ) :
Declaraie : void graphdefaults(); #include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BIN");
setcolor(RED);
setbkcolor(YELLOW);
circle(250, 250, 50);
getch();
graphdefaults();
getch();
closegraph();
return 0;
}
Funcia grapherrormsg n C ( returneaz un mesaj de tip string n cazul unei erori ) :
Declaraie : char *grapherrormsg( int errorcode ); #include
#include
#include
int main(){
int gd, gm, errorcode;
initgraph(&gd, &gm, "C:\\TC\\BIN");
errorcode = graphresult();
if(errorcode != grOk){
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to exit.");
getch();
exit(1);
}
getch();
closegraph();
return 0;
}
Funcia imagesize n C ( returneaz numrul de bites necesari pentru memorarea unei imagini pe bii ) :
Declarare : unsigned int imagesize(int left, int top, int right, int bottom);#include
#include
int main(){
int gd = DETECT, gm, bytes;
char array[100];
initgraph(&gd, &gm, "C:\\TC\\BIN");
circle(200, 200, 50);
line(150, 200, 250, 200);
line(200, 150, 200, 250);
bytes = imagesize(150, 150, 250, 250);
sprintf(array, "Number of bytes required to store required area = %d", bytes);
outtextxy(10, 280, array);
getch();
closegraph();
return 0;
}
Output :
Funcia line n C ( funcie ce deseneaz o linie folosind coordonate ) :
Declaraie : void line(int x1, int y1, int x2, int y2); #include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
line(100, 100, 200, 200);
getch();
closegraph();
return 0;
}
O linie desenat din punctul (100, 100) la punctul (200, 200).
Output :
Funcia lineto n C ( deseneaz o linie din poziia curent ctre un punct ) :
#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
moveto(100, 100);
lineto(200, 200);
getch();
closegraph();
return 0;
}
Funcia linerel n C ( deseneaz o linie din poziia curent ctre un punct la o distan relativ ) :
#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BIN");
moveto(250, 250);
linerel(100, -100);
getch();
closegraph();
return 0;
}
Funcia moveto n C ( funcie folosit pentru a schimba poziia curent ctre o poziie dat ) :
Declaraie : void moveto(int x, int y); #include
#include
int main(){
int gd = DETECT, gm;
char msg[100];
initgraph(&gd, &gm, "C:\\TC\\BIN");
sprintf(msg, "X = %d, Y = %d",getx(),gety());
outtext(msg);
moveto(50, 50);
sprintf(msg, "X = %d, Y = %d", getx(), gety());
outtext(msg);
getch();
closegraph();
return 0;
}
Funcia moverel n C ( funcie folosit pentru a schimba poziia curent ctre o poziie la o distan relativ ):
Declaraie : void moverel(int x, int y);#include
#include
int main(){
int gd = DETECT, gm;
int x, y;
char message[100];
initgraph(&gd, &gm, "C:\\TC\\BIN");
moveto(100, 100);
moverel(100, -100);
x = getx();
y = gety();
sprintf(message, "Current x position = %d and y position = %d", x, y);
outtextxy(10, 10, message);
getch();
closegraph();
return 0;
}
Funcia pieslice n C :
#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
pieslice(200,200,0,135,100);
getch();
closegraph();
return 0;
}
Output of program:
Funcia putpixel n C ( coloreaz un pixel de coordonate x i y cu o culoare dat ) :
Declarare : void putpixel(int x, int y, int color);#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
putpixel(25, 25, RED);
getch();
closegraph();
return 0;
}
Funcia rectangle n C ( deseneaz un rectangular ) :
Declarare : void rectangle(int left, int top, int right, int bottom);#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
rectangle(100,100,200,200);
getch();
closegraph();
return 0;
}
Output :
Funcia sector n C :
Declarare : void sector( int x, int y, int stangle, int endangle, int xradius, int yradius); #include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BIN");
sector(100, 100, 0, 135, 25, 35);
getch();
closegraph();
return 0;
}
Funcia setbkcolor n C ( schimb culoarea de fundal ) :
Declarare : void setbkcolor(int color); #include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
outtext("Press any key to change the background color to GREEN");
getch();
setbkcolor(GREEN);
getch();
closegraph();
return 0;
}
Funcia setcolor n C :
Declarare : void setcolor(int color);#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
circle(100,100,50); /* drawn in white color */
setcolor(RED);
circle(200,200,50); /* drawn in red color */
getch();
closegraph();
return 0;
}
Output :
Funcia setfillstyle n C ( seteaz stilul i culoarea de umplere ) :
Declarare : void setfillstyle( int pattern, int color);#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");
setfillstyle(XHATCH_FILL, RED);
circle(100, 100, 50);
floodfill(100, 100, WHITE);
getch();
closegraph();
return 0;
}
Output :
Funcia settextstyle n C ( funcie folosit pentru a schimba modul de afiare a textului ) : Declarare : void settextstyle( int font, int direction, int charsize);#include
#include
int main(){
int gd = DETECT, gm;
int x = 25, y = 25;
int font = 0;
initgraph(&gd,&gm,"C:\\TC\\BIN");
for ( font = 0 ; font < 9 ; font++)
{
settextstyle(font, HORIZ_DIR, 1);
outtextxy(x, y, "Text with different fonts");
y = y + 25;
}
getch();
closegraph();
return 0;
}
Funcia setviewport n C ( funcie folosit pentru a restriciona desenarea pe anumite poriuni a ecranului ) : Declarare : void setviewport(int left, int top, int right, int bottom, int clip);#include
#include
int main(){
int gd = DETECT, gm;
int midx, midy;
initgraph(&gd,&gm,"C:\\TC\\BGI");
midx = getmaxx()/2;
midy = getmaxy()/2;
setviewport(midx - 50, midy - 50, midx + 50, midy + 50, 1);
circle(50, 50, 55);
getch();
closegraph();
return 0;
}
Output of program:
Funcia textheight n C ( returneaz nlimea unui text n pixeli ) :
Declarare : int textheight(char *string);#include
#include
int main(){
int gd = DETECT, gm;
int height;
char arr[100];
initgraph(&gd, &gm, "C:\\TC\\BGI");
height = textheight("C programming");
sprintf(arr,"Textheight = %d",height);
outtext(arr);
getch();
closegraph();
return 0;
}
Funcia textwidth n C ( returneaz limea unui text n pixeli ) :
Declarare : int textwidth(char *string); #include
#include
int main(){
int gd = DETECT, gm;
int width;
char arr[100];
initgraph(&gd, &gm, "C:\\TC\\BGI");
width = textwidth("programming");
sprintf(arr,"Textwidth = %d",width);
outtext(arr);
getch();
closegraph();
return 0;
}
Funcii pentru maus n C
Verific dac exist suport pentru maus :
#include
#include
int initmouse();
union REGS i, o;
int main(){
int status;
status = initmouse();
if ( status == 0 )
printf("Mouse support not available.\n");
else
printf("Mouse support available.\n");
getch();
return 0;
}
int initmouse()
{
i.x.ax = 0;
int86(0X33,&i,&o);
return ( o.x.ax );
}
Output:
Afieaz maus-ul n modul grafic :#include
#include
#include
int initmouse();
void showmouseptr();
union REGS i, o;
int main(){
int status;
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
status = initmouse();
if ( status == 0 )
printf("Mouse support not available.\n");
else
showmouseptr();
getch();
return 0;
}
int initmouse(){
i.x.ax = 0;
int86(0X33,&i,&o);
return ( o.x.ax );
}
void showmouseptr(){
i.x.ax = 1;
int86(0X33,&i,&o);
}
Output :
Ascunde mause-ul n modul grafic :#include
#include
#include
int initmouse();
void showmouseptr();
void hidemouseptr();
union REGS i, o;
int main(){
int status, count = 1;
int gd = DETECT, gm;
initgraph(&gd,&gm,"C:\\TC\\BGI");
status = initmouse();
if ( status == 0 )
printf("Mouse support not available.\n");
else{ showmouseptr();
while(count0)
{
movemouseptr(tempx, tempy);
x = tempx;
y = tempy;
}
tempx = x;
tempy = y;
}
closegraph();
return 0;
}
Deseneaz forme n C :#include
#include
int main(){
int gd = DETECT, gm;
int left = 100,top = 100, right = 200, bottom = 200;
int x = 300, y = 150, radius = 50;
initgraph(&gd, &gm, "C:\\TC\\BGI");
rectangle(left, top, right, bottom);
circle(x, y, radius);
bar(left + 300, top, right + 300, bottom);
line(left - 10, top + 150, left + 410, top + 150);
ellipse(x, y + 200, 0, 360, 100, 50);
outtextxy(left + 100, top + 325, "My First C Graphics Program");
getch();
closegraph();
return 0;
}
Deseneaz grafic n C :
#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");
setcolor(YELLOW);
rectangle(0,30,639,450);
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,2);
setcolor(WHITE);
outtextxy(275,0,"Bar Chart");
setlinestyle(SOLID_LINE,0,2);
line(100,420,100,60);
line(100,420,600,420);
line(90,70,100,60);
line(110,70,100,60);
line(590,410,600,420);
line(590,430,600,420);
outtextxy(95,35,"Y");
outtextxy(610,405,"X");
outtextxy(85,415,"O");
setfillstyle(LINE_FILL,BLUE);
bar(150,100,200,419);
setfillstyle(XHATCH_FILL,RED);
bar(225,150,275,419);
setfillstyle(WIDE_DOT_FILL,GREEN);
bar(300,200,350,419);
setfillstyle(INTERLEAVE_FILL,MAGENTA);
bar(375,125,425,419);
setfillstyle(HATCH_FILL,BROWN);
bar(450,175,500,419);
getch();
return 0;
}
Deseneaz diagram circular :#include
#include
int main(){
int gd = DETECT, gm;
int midx, midy;
initgraph(&gd, &gm, "C:\\TC\\BGI");
setcolor(MAGENTA);
rectangle(0,40,639,450);
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,2);
setcolor(WHITE);
outtextxy(275,10,"Pie Chart");
midx = getmaxx()/2;
midy = getmaxy()/2;
setfillstyle(LINE_FILL,BLUE);
pieslice(midx, midy, 0, 75, 100);
outtextxy(midx+100, midy - 75, "20.83%");
setfillstyle(XHATCH_FILL,RED);
pieslice(midx, midy, 75, 225, 100);
outtextxy(midx-175, midy - 75, "41.67%");
setfillstyle(WIDE_DOT_FILL,GREEN);
pieslice(midx, midy, 225, 360, 100);
outtextxy(midx+75, midy + 75, "37.50%");
getch();
return 0;
}
Diagram 3D :
#include
#include
int main(){
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");
setcolor(YELLOW);
rectangle(0,30,639,450);
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,2);
setcolor(WHITE);
outtextxy(275,0,"Bar Chart");
setlinestyle(SOLID_LINE,0,2);
line(100,420,100,60);
line(100,420,600,420);
line(90,70,100,60);
line(110,70,100,60);
line(590,410,600,420);
line(590,430,600,420);
outtextxy(95,35,"Y");
outtextxy(610,405,"X");
outtextxy(85,415,"O");
setfillstyle(LINE_FILL,BLUE);
bar(150,100,200,419);
setfillstyle(XHATCH_FILL,RED);
bar(225,150,275,419);
setfillstyle(WIDE_DOT_FILL,GREEN);
bar(300,200,350,419);
setfillstyle(INTERLEAVE_FILL,MAGENTA);
bar(375,125,425,419);
setfillstyle(HATCH_FILL,BROWN);
bar(450,175,500,419);
getch();
return 0;
}
Animaie :
#include
#include
#include
int main(){
int gd = DETECT,gm;
int area, temp1, temp2;
int left = 25, top = 75;
char *p;
initgraph(&gd,&gm,"C:\\TC\\BGI");
setcolor(YELLOW);
circle(50,100,25);
setfillstyle(SOLID_FILL,YELLOW);
floodfill(50,100,YELLOW);
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
fillellipse(44,85,2,6);
fillellipse(56,85,2,6);
ellipse(50,100,205,335,20,9);
ellipse(50,100,205,335,20,10);
ellipse(50,100,205,335,20,11);
area = imagesize(left, top, left + 50, top + 50);
p = malloc(area);
setcolor(WHITE);
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,2);
outtextxy(155,451,"Smiling Face Animation");
setcolor(BLUE);
rectangle(0,0,639,449);
while(!kbhit()){
temp1 = 1 + random ( 588 );
temp2 = 1 + random ( 380 );
getimage(left, top, left + 50, top + 50, p);
putimage(left, top, p, XOR_PUT);
putimage(temp1 , temp2, p, XOR_PUT);
delay(100);
left = temp1;
top = temp2;
}
getch();
closegraph();
return 0;
}
Captcha program :#include
#include
#include
int main(){
int i = 0, key, num, midx;
int gd = DETECT, gm;
char a[10];
initgraph(&gd,&gm,"C:\\TC\\BGI");
midx = getmaxx()/2;
settextstyle(SCRIPT_FONT,HORIZ_DIR,5);
settextjustify(CENTER_TEXT,CENTER_TEXT);
setcolor(GREEN);
outtextxy(midx,20,"CAPTCHA");
settextstyle(SCRIPT_FONT,HORIZ_DIR,2);
outtextxy(midx,125,"Press any key to change the generated random code \"captcha\"");
outtextxy(midx,150,"Press escape key to exit...");
setcolor(WHITE);
setviewport(100,200,600,400,1);
setcolor(RED);
randomize();
while(1){
while(i