پروژه زبان c -- ساعت
#define PI 3.14152692
void second_hand(int midx,int midy,int d);
void min_hand(int midx,int midy,int d);
void hour_hand(int midx, int midy,int d);
int xc, yc, radius=150, charsize=2,d;//radius of the circle
char buffer[80];
void digitxy(int d);
int midx, midy;
void mainpage(void);
struct time t;
int main(void)
{
int gdriver = DETECT, gmode, errorcode,color;
initgraph(&gdriver, &gmode, "c:\\bc5\\bgi");
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
xc=midx;
yc=midy;
circle(midx, midy, radius);
for(d=5;d<=60;d+=5)
digitxy(d);
do{
gettime(&t);
second_hand(midx,midy,t.ti_sec);
min_hand(midx,midy,t.ti_min);
hour_hand(midx,midy,t.ti_hour);
delay(1000);
floodfill(midx,midy,15);
}while(!kbhit());
getch();
closegraph();
}
void digitxy(int d)
{
int dx = (int) (cos((d/60.0)*2.*PI-PI/2.)*140+xc);
int dy = (int) (sin((d/60.0)*2.*PI-PI/2.)*140+yc);
sprintf(buffer,"%d",d/5);
outtextxy(dx,dy,buffer);
setcolor(WHITE);
}
void second_hand(int midx,int midy,int d)
{
int dx = (int) (cos((d/60.0)*2.*PI-PI/2.)*140+xc);
int dy = (int) (sin((d/60.0)*2.*PI-PI/2.)*140+yc);
if(dy - yc >= 0)
dy+=charsize;
else
dy-=charsize/2;
if(dx -xc >=0)
dx+=charsize/2;
else
setfillstyle(1,4);
dx-=charsize;
moveto(midx,midy);
lineto(dx,dy);
setcolor(YELLOW);
}
void min_hand(int midx,int midy,int d)
{
int dx = (int) (cos((d/60.0)*2.*PI-PI/2.)*120+xc);
int dy = (int) (sin((d/60.0)*2.*PI-PI/2.)*120+yc);
if(dy - yc >= 0)
dy+=charsize;
else
dy-=charsize/2;
if(dx -xc >=0)
dx+=charsize/2;
else
setfillstyle(1,4);
dx-=charsize;
moveto(midx,midy);
lineto(dx,dy);
setcolor(BLUE);
}
void hour_hand(int midx, int midy,int d)
{
int dx = (int) (cos((d/60.0)*2.*PI-PI/2.)*100+xc);
int dy = (int) (sin((d/60.0)*2.*PI-PI/2.)*100+yc);
if(dy - yc >= 0)
dy+=charsize;
else
dy-=charsize/2;
if(dx -xc >=0)
dx+=charsize/2;
else
setfillstyle(1,4);
dx-=charsize;
moveto(midx,midy);
lineto(dx,dy);
setcolor(GREEN);
}
منبع : http://www.parsigold.com