图形时钟用C语言怎么编?

图形时钟用C语言怎么编?,第1张

#include <graphics.h>

#include <conio.h>

#include <math.h>

void Draw(int hour, int minute, int second)

{

     double a_hour, a_min, a_sec       // 时、分、秒针弧度

     int x_hour, y_hour, x_min, y_min, x_sec, y_sec // 时、分、秒针的末端位置

     int x_hour1,y_hour1,x_min1,y_min1,x_sec1,y_sec1

     // 计算时、分、秒针的弧度值

     a_sec = second * 2 * PI / 60

     a_min = minute * 2 * PI / 60 

     a_hour= hour * 2 * PI / 12 + a_min / 12

     // 计算时、分、秒针的首末端位置

     x_sec = 320 + (int)(120 * sin(a_sec))

     y_sec = 240 - (int)(120 * cos(a_sec))

     x_min = 320 + (int)(100 * sin(a_min))

     y_min = 240 - (int)(100 * cos(a_min))

     x_hour= 320 + (int)(70 * sin(a_hour))

     扮告肆y_hour= 240 - (int)(70 * cos(a_hour))

     x_sec1= 320 - (int)(15   * sin(a_sec))

     y_sec1= 240 + (int)(15   * cos(a_sec))

     x_min1= 320 - (int)(10   * sin(a_min))

     y_min1= 240 + (int)(10   * cos(a_min))

     x_hour1= 320 - (int)(5 * sin(a_hour))

     y_hour1= 240 + (int)(5 * cos(a_hour))

     // 画时针

     setlinestyle(PS_SOLID, NULL, 7)

     setcolor(WHITE)

     line(x_hour1, y_hour1, x_hour, y_hour)

     // 画分针

     setlinestyle(PS_SOLID, NULL, 4)

     setcolor(LIGHTGRAY)

    友桥 line(x_min1, y_min1, x_min, y_min)

     // 画秒针

     setlinestyle(PS_SOLID, NULL, 2)

     setcolor(RED)

     line(x_sec1, y_sec1, x_sec, y_sec)

}

void main()

{

     initgraph(640, 480)    // 初始化 640 x 480 的绘图窗口

     // 绘制一个简单的表盘

     circle(320, 240, 2)

     circle(320, 240, 60)

     circle(320, 240, 160)

     outtextxy(296, 330, "   竹斌")

     int x,y

     for(int i=0i<12i++)

     {

         x=320+(int)(140*sin(30*i*2*PI/360))

         y=240-(int)(140*cos(30*i*2*PI/360))

switch(i)

         {

         case 0:outtextxy(x-5,y-5,"12")break

         case 1:outtextxy(x-5,y-5,"1")break

         case 2:outtextxy(x-5,y-5,"2")break

         case 3:outtextxy(x-5,y-5,"3")break

         case 4:outtextxy(x-5,y-5,"4")break

         case 5:outtextxy(x-5,y-5,"5")break

         case 6:outtextxy(x-5,y-5,"6")break

         case 7:outtextxy(x-5,y-5,"7")break

         case 8:outtextxy(x-5,y-5,"8")break

         case 9:outtextxy(x-5,y-5,"9")break

         case 10:outtextxy(x-5,y-5,"10")break

         case 11:outtextxy(x-5,y-5,"11")break

         }

     }

     // 设厅轿置 XOR 绘图模式

     setwritemode(R2_XORPEN) // 设置 XOR 绘图模式

     //画刻度

     int a,b,a1,b1,n=0

     for(n=0n<60n++)

     {

     a=320+(int)(160 * sin(n*2*PI/60))

     b=240-(int)(160 * cos(n*2*PI/60))

     a1=320+(int)(150 * sin(n*2*PI/60))

     b1=240-(int)(150 * cos(n*2*PI/60))

     if(n%5==0)

         setlinestyle(PS_SOLID,NULL,5)

     else

         setlinestyle(PS_SOLID,NULL,1)

     line(a1,b1,a,b)

     }

     // 绘制表针

     SYSTEMTIME ti      // 定义变量保存当前时间

     while(!kbhit())      // 按任意键退出钟表程序

     {

          GetLocalTime(&ti)         // 获取当前时间

          Draw(ti.wHour, ti.wMinute, ti.wSecond)    // 画表针

          Sleep(1000)          // 延时 1 秒

          Draw(ti.wHour, ti.wMinute, ti.wSecond)    // 擦表针(擦表针和画表针的过程是一样的)

     }

     closegraph()      // 关闭绘图窗口

}

这个铅帆纳程序已经些的很好了,有空行,有注释!

你哪里看不懂呢?

补充:

DrawPoly(Mrk_1,ang,WHITE)是调用DrawPoly函轿咐数绘制多边槐没形啊

Mrk_1是多边形4个定点的数据,ang是角度,WHITE是白色

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

//#include <dos.h>

#include <conio.h>

int main()

{

struct tm *curtime

time_t t

clock_t start

double th_hour,th_min,th_sec

do

{

printf("*********************************************

")

printf("旅罩罩** This is a simple clock program.**

")

printf("** **

")

printf("*********************************************

")

printf("The current time is:

")

t=time(0)

curtime=gmtime(&t) /*得到当前系统时间*/

if((double)curtime->tm_hour<=12) /*午前的处理*/

{

printf("AM ")

if((double)curtime->tm_hour<10) printf("0") /*十点之前在小时数前加零*/

printf("闷戚%.0f:",(double)curtime->tm_hour)

}

else /*午后的处理*/

{

printf("PM ")

if((double)curtime->tm_hour-12<10) printf("0")

printf("%.0f:",(double)curtime->tm_hour-12)

}

if((double)curtime->tm_min<10) printf("0")

printf("%.0f:",(double)curtime->tm_min)

if((double)curtime->tm_sec<10) printf("拆闹0")

printf("%.0f",(double)curtime->tm_sec)

printf("

")

start=clock()

while(clock()-start<1000)

//delay(1000) /*延时一秒后刷新*/

system("cls")

}while(!kbhit())/* 按任一键退出 */

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12561609.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存