// Функция для управления работой графического интерфейса
void Process()
{
char *fm[]={"Open Image F3","Save Image F2","Exit Esc"};
char *gm[]={"Function f","Sistem s ","Mashtab m"}; //пункти меню
char *hm[]={"About F1"};
char *ss[]={"Decart 2D ","Decart 3D ","Polar "};
char KEY;
// рисование кнопок меню
DrawBtn(&File,"File");
DrawBtn(&Graphik,"Graphiс");
DrawBtn(&Help,"Help");
settextstyle(0,0,0);
outtextxy(Close.x+7,Close.y+7,"x");
// рисование окна для выведения графиков
setfillstyle(0,0);
bar(a,b,a1,b1);
Show();
while(1)
{
if(kbhit())
{
KEY=getch();
if(KEY==0)
{
KEY=getch();
if(KEY==0x3b) //F1
HELP1();
if(KEY==0x3c) //F2
save_BMP();
if(KEY==0x3d) //F3
open_BMP();
}
if(KEY==0x1b) //esc
break;
if(KEY==0x66) //f
goto Enter_function;
if(KEY==0x6d) //m
goto Enter_mashtab;
if(KEY==0x73) //s
goto Enter_sisc;
}
Status();
if(button==1)
{
if(MouseOn(&Close)) break;
if(MouseOn(&File))
{
PullMenuDown(fm,3,&File);
if(Selection==0)
open_BMP();
if(Selection==1)
save_BMP();
if(Selection==2)
break;
}
if(MouseOn(&Graphik))
{
PullMenuDown(gm,3,&Graphik);
if(Selection==0)
{
Enter_function:Hide();
winp(&sfunc,1);
gotoxy(27,3);
setfillstyle(0,0);
bar(sfunc.x+2,sfunc.y+2,sfunc.x1-2,sfunc.y1-2);
if(sisc==0)
printf("F(x)=");
if(sisc==1)
printf("F(x,y)=");
if(sisc==2)
printf("F(B)=");
gets(func);
topolish();
Show();
}
if(Selection==1)
{
Enter_sisc:PullMenuDown(ss,3,&siscoord);
if(Selection==0)
{
sisc=0;
ss[0][15]='¦';
ss[1][15]=' ';
ss[2][15]=' ';
bar(200,60,600,99);
setcolor(1);
outtextxy(250,60,"Decart 2D");
outtextxy(250,75,"Varibles: x");
}
if(Selection==1)
{
sisc=1;
ss[0][15]=' ';
ss[1][15]='¦';
ss[2][15]=' ';
bar(200,60,600,99);
setcolor(1);
outtextxy(250,60,"Decart 3D");
outtextxy(250,75,"Varibles: x,y");
}
if(Selection==2)
{
sisc=2;
ss[0][15]=' ';
ss[1][15]=' ';
ss[2][15]='¦';
bar(200,60,600,99);
setcolor(1);
outtextxy(200,60,"Polar");
outtextxy(200,75,"Varibles: b (b-angle,a-lenth)");
outtextxy(200,90,"To Decart: x=a*cos(B),y=a*sin(B)");
Selection=NONE;
}
}
if(Selection==2)
{
Enter_mashtab:Hide();
setcolor(3);
outtextxy(100,60,"pixels:one");
gotoxy(14,6);
winp(&mashtab,1);
setfillstyle(0,0);
bar(mashtab.x+2,mashtab.y+2,mashtab.x1-2,mashtab.y1-2);
scanf("%d",&pix); getchar();
Show();
}
// розметка
setfillstyle(0,0);
bar(a,b,a1,b1);
rozmitka();
//
// рисование графика в соответствующей системе координат
if(sisc==0)
printgraph_2d();
if(sisc==1)
printgraph_3d();
if(sisc==2)
printgraph_pol();
}
if(MouseOn(&Help))
{
PullMenuDown(hm,1,&Help);
if(Selection==0)
HELP1();
}
}
else
{
if(MouseOn(&File)) Hlight(&File);
if(MouseOn(&Graphik)) Hlight(&Graphik);
if(MouseOn(&Help)) Hlight(&Help);
if(MouseOn(&Close)) Hlight(&Close);
}
}
}