#define _CRT_SECURE_NO_WARNINGS #pragma warning(disable : 4996) #include//图形哭头文件 #include #include #include void line(int x1, int y1, int x2, int y2); #define PI 3.1415926 struct time { int hour; int min; int sec; }; int main() { int i, j, hour, min, sec, ch, n = 0; float H = 190; // 色相 float S = 1; // 饱和度 float L = 0.7f; // 亮度 time_t t; struct tm* nowtime; initgraph(640, 880);// 初始化绘图窗口 640 480 setbkcolor(BLACK); // 设置背景色为蓝色 cleardevice();// 用背景色清空屏幕 setcolor(WHITE);// 设置绘图色为红色 circle(320, 240, 200); // 画圆 circle(320, 240, 1);//点 for (i = 0; i <= 59; i++)//表盘上的刻度 { if (i % 5 == 0)//每个小时的点线长 line(320 + 170 * sin(i * PI / 30), 240 - 170 * cos(i * PI / 30), 320 + 200 * sin(i * PI / 30), 240 - 200 * cos(i * PI / 30));//画时钟线 else line(320 + 185 * sin(i * PI / 30), 240 - 185 * cos(i * PI / 30), 320 + 200 * sin(i * PI / 30), 240 - 200 * cos(i * PI / 30));//画分秒线 } time(&t); nowtime = localtime(&t);//获取当地时间 hour = nowtime->tm_hour; min = nowtime->tm_min; sec = nowtime->tm_sec; while (1) { time(&t); nowtime = localtime(&t);//获取当地时间 sec = nowtime->tm_sec; if (hour == 14) if (H > 800) { H = 0; } H += 100; setlinecolor(HSLtoRGB(H, S, L)); circle(320, 240, 200); setlinecolor(WHITE); line(320, 240, 320 + 60 * sin(PI * hour / 6), 240 - 60 * cos(PI * hour / 6));//时针位置 line(320, 240, 320 + 100 * sin(PI * min / 30), 240 - 100 * cos(PI * min / 30));//分针位置 line(320, 240, 320 + 160 * sin(PI * sec / 30), 240 - 160 * cos(PI * sec / 30));//秒针位置 if (kbhit()) { if (ch = getch()) { ch = getch(); } if (75 == ch) //Left逆时针 { hour--; } if (77 == ch) //顺 { hour++; } if (72 == ch) //上逆时针 { min--; } if (80 == ch) //下顺 { min++; if (min == 60) { hour = hour + 1; min = 0; } } } ch = 0; clearcircle(320, 240, 165); if (min == 59 && n == 0) { hour = hour + 1; min = 0; n++; } if (sec == 59 && n == 0) { min = min + 1; sec = 0; n++; } if (sec == 1) n == 0; } _getch();// 按任意键退出 closegraph(); closegraph(); }



