钟表

 1 #include <graphics.h>
 2 #include <conio.h>
 3 #include <math.h>
 4 #define PI 3.14159265359
 5 void Draw(int hour, int minute, int second)
 6 {
 7 double a_hour, a_min, a_sec;
 8 // 时、分、秒针的弧度值
 9 int x_hour, y_hour, x_min, y_min, x_sec, y_sec;
10 // 时、分、秒针的末端位置
11 // 计算时、分、秒针的弧度值
12 a_sec = second * 2 * PI / 60;
13 a_min = minute * 2 * PI / 60 + a_sec / 60;
14 a_hour= hour * 2 * PI / 12 + a_min / 12;
15 // 计算时、分、秒针的末端位置
16 x_sec = 320 + (int)(120 * sin(a_sec));
17 y_sec = 240 - (int)(120 * cos(a_sec));
18 x_min = 320 + (int)(100 * sin(a_min));
19 y_min = 240 - (int)(100 * cos(a_min));
20 x_hour= 320 + (int)(70 * sin(a_hour));
21 y_hour= 240 - (int)(70 * cos(a_hour));
22 // 画时针
23 setlinestyle(PS_SOLID, 10, NULL);
24 setlinecolor(WHITE);
25 line(320, 240, x_hour, y_hour);
26 // 画分针
27 setlinestyle(PS_SOLID, 6, NULL);
28 setlinecolor(LIGHTGRAY);
29 line(320, 240, x_min, y_min);
30 // 画秒针
31 setlinestyle(PS_SOLID, 2, NULL);
32 setlinecolor(RED);
33 line(320, 240, x_sec, y_sec);
34 }
35 void main()
36 {
37 initgraph(640, 480);
38 // 初始化 640 x 480 的绘图窗口
39 // 绘制一个简单的表盘
40 circle(320, 240, 2);
41 circle(320, 240, 60);
42 circle(320, 240, 160);
43 outtextxy(296, 310, _T("BestAns"));
44 // 设置 XOR 绘图模式
45 setwritemode(R2_XORPEN);
46 // 设置 XOR 绘图模式
47 // 绘制表针
48 SYSTEMTIME ti;
49 // 定义变量保存当前时间
50 while(!kbhit())
51 // 按任意键退出钟表程序
52 {
53 GetLocalTime(&ti);
54 // 获取当前时间
55 Draw(ti.wHour, ti.wMinute, ti.wSecond);
56 // 画表针
57 Sleep(1000);
58 // 延时 1
59 Draw(ti.wHour, ti.wMinute, ti.wSecond);
60 // 擦表针(擦表针和画表针的过程是一样的)
61 }
62 closegraph();
63 // 关闭绘图窗口
64 }
View Code

 

posted on 2014-04-03 21:46  一颗向上的草莓  阅读(138)  评论(0编辑  收藏  举报