Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
//‹ Ў ђ®¬л Њ®абЁ , ᤥ« лҐ ¤«п † л
//ЉагЈ ЇҐаҐ¬Ґй Ґвбпп Ї® бЇЁа «Ё
#include <graphics.h>
#include <math.h>
#include <dos.h>
#include <conio.h>
float pi=3.14;
int round(double x) {
float n=ceil(x)-x;
if (n<=0.5) return ceil(x); else return floor(x);
};
void main() {
int gdriver = DETECT, gmode, num_but;
gmode=VGAHI;
initgraph(&gdriver, &gmode,"E:\\C3.1\\bgi");
setwritemode(COPY_PUT);
float r=10;
int x=getmaxx()/2,y=getmaxy()/2,color=WHITE;
float cr=0,fi=0,dfi=pi/50,dr=0.5;
int sgn=1;
int maxx=getmaxx(), maxy=getmaxy(),bkcolor=getbkcolor();
setfillstyle(bkcolor,SOLID_FILL);
while (!kbhit()) {
setcolor(color);
circle(x,y,r);
delay(10);
setcolor(bkcolor);
circle(x,y,r);
putpixel(round((r+2)*sin(fi-pi/2))+x,round((r+2)*cos(fi-pi/2))+y,color);
if (sgn==-1) {
setcolor(bkcolor);
fillellipse(x,y,r+1,r+1);
};
x=round(cr*sin(fi))+maxx/2;
y=round(cr*cos(fi))+maxy/2;
cr+=sgn*dr;
fi+=sgn*dfi;
if ((cr+maxx/2)>=maxx-1-r/2 || (maxx/2-cr)<r/2 ) sgn=-1;
if (cr<=0) sgn=1;
color++;
};
closegraph();
};