#include<stdio.h>
#include<time.h>
#include<graphics.h>//一个图形绘制库
#include<conio.h>
#include<math.h>
#include<windows.h>
#define pi 3.1415926535897932384626433832795028841971693//定义了一个常量pi(圆周率)
void main()
{
time_t t1;//定义了一个time_t类型的变量,用来储存日历时间
struct tm *T1;//定义了一个struc tm 类型结构体变量
initgraph(700,700);//创建了一个绘图窗口,大小为100*700.
setbkcolor(BLACK);//设置了绘图窗口的背景颜色
setlinecolor(BLUE);//设置了线条颜色
setlinestyle(PS_SOLID|PS_ENDCAP_ROUND,5);//设置了线条的分格,实线,圆端点,线条粗度
circle(350,350,200);//画圆,圆心为(350,350)半径为200
putpixel(350,350,RED);//绘制一个圆心,前两个参数是园点位置,最后参数为圆点颜色
setorigin(350,350);//将坐标圆点移到参数位置
double sspi=pi*2/360*6;//每一弧度的大小
int i;
//用来表明时刻的小圆圈
setlinecolor(WHITE);
for (i=0;i<12;i++)
{
circle(200*cos(i*5*sspi),200*sin(i*5*sspi),1);
}
//用来表明时刻的小园点
for (i<0;i<60;i++)
{
putpixel(200*cos(i*sspi),200*sin(i*sspi),WHITE);
}
int TT=100;//时针长度
int MM=130;//分针长度
int SS=160;//秒针长度
while (1)
{
time(&t1);//time函数用来获取当前的日历时间
T1=localtime(&t1);//将time函数所获得的时间用localtime函数转换为struct tm 类型
setlinecolor(BLUE);
line(0,0,(int)(TT*cos((15-T1->tm_hour*5)*sspi)),(int)(TT*sin((T1->tm_hour*5-15)*sspi)));//绘制时针
setlinecolor(RED);
line(0,0,(int)(MM*cos((15-T1->tm_min)*sspi)),(int)(MM*sin((T1->tm_min-15)*sspi)));//绘制分针
setlinecolor(GREEN);
line(0,0,(int)(SS*cos((15-T1->tm_sec)*sspi)),(int)(SS*sin((T1->tm_sec-15)*sspi)));//绘制秒针
Sleep(100);//sleep函数将程序挂起一段时间,参数为毫秒。头文件为windows.h
setlinecolor(BLACK);//将线条颜色配置为黑色,用来隐藏时针,分针,秒针
line(0,0,(int)(TT*cos((15-T1->tm_hour*5)*sspi)),(int)(TT*sin((T1->tm_hour*5-15)*sspi)));
line(0,0,(int)(MM*cos((15-T1->tm_min)*sspi)),(int)(MM*sin((T1->tm_min-15)*sspi)));
line(0,0,(int)(SS*cos((15-T1->tm_sec)*sspi)),(int)(SS*sin((T1->tm_sec-15)*sspi)));
}
_getch();//按任意键继续,使得绘图窗口停留,该函数头文件时conio.h
}
结果图:
![](https://i-blog.csdnimg.cn/blog_migrate/4c15061d434331de5bd3d2e09599f8ac.png)