Применение языков программирования высокого уровня для реализации численных методов и прикладных программРефераты >> Программирование и компьютеры >> Применение языков программирования высокого уровня для реализации численных методов и прикладных программ
do
{
i++;
setcolor(random( MaxColors - random(15) ) + random(15));
setfillstyle(random(12), getmaxcolor());
// setcolor(random( MaxColors - random(15) ) + random(15));
pieslice(random(getmaxx()),random(getmaxy()),
random(360),random(360),random(150));
if(i>1000) {clearviewport();i=0;}
}
while( !kbhit() ); // повторение пока не нажата клавиша
getch();
clearviewport();
}
//
//круговая диаграмма
//
void diagram(void)
{
int sektors[] = {20,10,35,15,20};
char *percent[]={"20%","10%","35%","15%","20%"};
int secsize,k=0,i,r=150;
MainWindow( "Pie Chart Demonstration" );
StatusLine( "Press any key to continue ." );
settextjustify(CENTER_TEXT,CENTER_TEXT);
settextstyle(5,0,2);//установка атрибутов текста
outtextxy( getmaxx()/2,25,"This is the pie chart diagramm");
//процесс рисования диаграммы по данным из массива
for( i=0;i<5;i++)
{
secsize = (360 * sektors[i])/100;
setfillstyle(i,i);
pieslice((getmaxx()/2),(getmaxy()/2),k,k+secsize,r);
k = k+secsize;
}
//подписи процентов
outtextxy( getmaxx()/2+r+30,getmaxy()/2-70,percent[0]);
outtextxy( getmaxx()/2,getmaxy()/2-r-30,percent[1]);
outtextxy( getmaxx()/2-r-30,getmaxy()/2,percent[2]);
outtextxy( getmaxx()/2,getmaxy()/2+r+30,percent[3]);
outtextxy( getmaxx()/2+r+20,getmaxy()/2+50,percent[4]);
getch();
settextstyle(0,0,0);
clearviewport();
}
//
//функция демонстрации текста в графическом окне
//
void demotext(void)
{
int midx,midy,i;
MainWindow( "Demonstration text in the graphics screen" );
StatusLine( "Press any key to continue ." );
settextjustify(CENTER_TEXT,CENTER_TEXT);
midx=getmaxx()/2;
midy=getmaxy()/2;
outtextxy( midx,midy-40,"This programm will demonstrate to you all graphics");
outtextxy( midx,midy+40,"functions of the C++ language");getch();clearviewport();
for (i=0;i<11;i++)
{
settextstyle(i,0,0);
outtextxy(midx,midy-40,"This text is write by ");
outtextxy(midx,midy+40,Fonts[i]);
getch();clearviewport();
}
settextstyle(0,1,1); //вывод вертикального текста
outtextxy(midx,midy,"This programm created by Grinjoff Mark");
settextstyle(0,0,0);/*возвращениеи исходного начертания текста */
getch();
clearviewport();
}
//
//функция демонстрации рисования дуг и многоугольников
//
void demoarcs(void)
{
int poly[10];
MainWindow( "Arcs and polygons demonstration" );
StatusLine( "Press any key to continue ." );
xmax=getmaxx();
ymax=getmaxy();
i=0;
//рисование дуг с произвольным расположением и цветом
do
{
i++;
setcolor(random( MaxColors - random(15) ) + random(15));
arc(random(xmax),random(ymax),random(358),random(358),random(100));
if(i>10000) {clearviewport();i=0;}
}
while( !kbhit() ); // повторение пока не нажата клавиша
getch();
clearviewport();
i=0;
//рисование многоугольников с произвольным цветом
do
{
i++;
poly[0] = random(i+random(20));//1-вершина
poly[1] = random(random(ymax)/i+2);
poly[2] = xmax-(i+20); /* 2-я */
poly[3] = i+20;
poly[4] = xmax-(i+50); /* 3-я */
poly[5] = ymax-(i+20);
poly[6] = i+xmax/2; /* 4-я */
poly[7] = i+ymax/2;
/*
drawpoly автоматически не закрывает многоугольник
поэтому необходимо это сделать самому
*/
poly[8] = poly[0];
poly[9] = poly[1];
//рисует многоугольники, изменяя координаты вершин
setcolor(random( MaxColors - random(15) ) + random(15));
drawpoly(5, poly);
if(i>1000) {clearviewport();i=0;}
}
while( !kbhit() ); // повторение пока не нажата клавиша
getch();
clearviewport();
}
//
//функция демонстрации закрашеных многоугольников и //цветов
//
void demobars(void)
{
MainWindow( "Bars and colors demonstration" );
StatusLine( "Press any key to continue ." );
int kxb=15,kyb=15;
double stx,sty,x,y;
stx=floor(getmaxx()/kxb);
sty=floor(getmaxy()/kyb);
do
{
for(x=3;x<getmaxx();x+=stx){
for(y=3;y<getmaxy();y+=sty){
setcolor(random( MaxColors - random(15) ) + random(15));
setfillstyle(SOLID_FILL,random(getmaxcolor()));
bar(x+3,y+3,x+stx-3,y+sty-3);}}
}
while( !kbhit() ); // повторение пока не нажата клавиша
getch();
clearviewport();
}
//
//функция демонстрации трехмерных прямоугольников
//
void demo3dbars(void)
{
int i;
MainWindow( "3D Bars demonstration" );
StatusLine( "Press any key to continue ." );
do
{
i++;
setcolor(random( MaxColors - random(15) ) + random(15));
setfillstyle(random(5),random(getmaxcolor()));
bar3d( random( getmaxx() ), random( getmaxy() ),
random( getmaxx() ), random( getmaxy() ),10,1);
for(float j=0;j<50000;j++);//эмулятор задержки
if(i>100) {clearviewport();i=0;}
}
while( !kbhit() ); // повторение пока не нажата клавиша
getch();
clearviewport();
}
//
//функция создания завершающей страницы
//
void endpage(void)
{
MainWindow( "The cycle" );
StatusLine( "Press any key to continue ." );
int i,j,rad=50;
do
{
for (i=0;i<359;i++)
{
setcolor(random( MaxColors - random(15) ) + random(15));
pieslice(60,60,i,i+1,rad);
pieslice(580,60,i,i+1,rad);
pieslice(60,390,i,i+1,rad);
pieslice(580,390,i,i+1,rad);
}
for (i=0;i<getmaxx();i++)
{
setcolor(random( MaxColors - random(15) ) + random(15));
line(getmaxx()/2,10,i,getmaxy()/2);
line(getmaxx()/2,440,i,getmaxy()/2);
}
setcolor(0);
for (i=0;i<getmaxx();i++)
{
line(getmaxx()/2,10,i,getmaxy()/2);
line(getmaxx()/2,440,i,getmaxy()/2);
}
}
while( !kbhit() ); // повторение пока не нажата клавиша
getch();
clearviewport();
}
//
//функция калейдоскопа
//
void endpage1(void)
{
MainWindow( "The simple kaleidoscope" );
StatusLine( "Press any key for exit to DOS" );
int koord1[4],koord2[4],koord3[4];
//получение координат исходной линии
koord1[0]=random((getmaxx()/2)+10);
koord1[1]=random((getmaxy()/2)+10);
koord1[2]=random((getmaxx()/2)+10);
koord1[3]=random((getmaxy()/2)+10);
//получение координат конечной линии
koord2[0]=random((getmaxx()/2)+10);
koord2[1]=random((getmaxy()/2)+10);
koord2[2]=random((getmaxx()/2)+10);
koord2[3]=random((getmaxy()/2)+10);
//прорисовка
do
{
for (float t=0;t<1;t=t+0.01) //количество линий
{
for (int l=0;l<4;l++) //нахождение координат движения //линии