C语言 时钟程序求教
我这里有一个时钟的程序,是别人给我的,求高人翻译一下其中重要代码的意思,代码不是很长,多谢指导,小弟在此万分感谢#include<graphics.h>
#include<math.h>
#include<dos.h>
#define pi 3.1415926
#define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300;
#define Y(a,b,c) y=a*sin(b*c*pi/180-pi/2)+240;
#define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y)
void init()
{int i,l,x1,x2,y1,y2;
setbkcolor(0);
circle(300,240,200);
circle(300,240,205);
circle(300,240,5);
for(i=0;i<60;i++)
{if(i%5==0) l=15;
else l=5;
x1=200*cos(i*6*pi/180)+300;
y1=200*sin(i*6*pi/180)+240;
x2=(200-l)*cos(i*6*pi/180)+300;
y2=(200-l)*sin(i*6*pi/180)+240;
line(x1,y1,x2,y2); /*在指定的两点间画一条线*/
}
}
main()
{
int x,y;
int gd=VGA,gm=2;
unsigned char h,m,s;
struct time t;
initgraph(&gd,&gm,"d:\\tc"); /*初始化图形系统*/
init();
setwritemode(1);
gettime(&t); /*读取系统时间*/
h=t.ti_hour;
m=t.ti_min;
s=t.ti_sec;
setcolor(7); /*设置当前线的颜色*/
d(150,h,30);
setcolor(14);
d(170,m,6);
setcolor(4);
d(190,s,6);
while(!kbhit()) /*kbhit检查当前按下的健*/
{while(t.ti_sec==s)
gettime(&t);
sound(400);
delay(70);
sound(200);
delay(30);
nosound();
setcolor(4);
d(190,s,6);
s=t.ti_sec;
d(190,s,6);
if (t.ti_min!=m)
{
setcolor(14);
d(170,m,6);
m=t.ti_min;
d(170,m,6);
}
if (t.ti_hour!=h)
{ setcolor(7);
d(150,h,30);
h=t.ti_hour;
d(150,h,30);
sound(1000);
delay(240);
nosound();
delay(140);
sound(2000);
delay(240);
nosound();
}
}
getch();
closegraph(); /*关闭图形系统*/
}