论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

漂亮的彩色时钟

文章类别:C语言程序设计 | 发表日期:2008-9-24 14:42:58

  小弟之做,希望大家指教。QQ:51738793
#include<math.h>
#include<dos.h>
#include<graphics.h>
#define CENTERX 320
#define CENTERY 175
#define CLICK 100
#define CLICKDELAY 30
#define HEBEEP 10000
#define LOWBEEP 500
#define BEEPDELAY 200

int Mrk_1[8]={-5,-160,5,-160,5,-130,-5,-130, };
int Mrk_2[8]={-5,-160,5,-160,2,-130,-2-130, };

int HourHand[8]={-3,-100,3,-120,4, 10,-4,10};

int MiHand[8]={-3,-120,3,-120,4, 10,-4,10};

int SecHand[8]={-2,-150,2,-150,3, 10,-3,10};

void Click()
{
   sound(CLICK);
   delay(CLICKDELAY);
   nosound();
}

void  HighBeep()
{
   sound(HEBEEP);
   delay(BEEPDELAY);
   nosound;
}

void LowBeep()
{
   sound(LOWBEEP);
}

void DrawPoly(int *data,int angle,int color)
{
   int usedata[8];
   float sinang,cosang;
   int i;
   sinang=sin((float)angle/180*3.14);
   cosang=cos((float)angle/180*3.14);
   for(i=0;i<8;i+=2)
 {
     usedata[i]  =CENTERX+ cosang*data[i]-sinang*data[i+1]+.5;
     usedata[i+1]=CENTERY+sinang*data[i]+cosang*data[i+1]+.5;
 }
   setfillstyle(SOLID_FILL,color);
   fillpoly(4,usedata);
}

void DrawClock(struct time *cutime)
{
   int ang;
   float hourrate,minrate,secrate;

   setbkcolor(BLUE);
   cleardevice();
   setcolor(WHITE);

  for(ang=0;ang<360;ang+=90)
 {
    DrawPoly(Mrk_1,ang,WHITE);
    DrawPoly(Mrk_2,ang+30,WHITE);
    DrawPoly(Mrk_2,ang+60,WHITE);
 }
  secrate=(float)cutime->ti_sec/60;
  minrate=((float)cutime->ti_min+secrate)/60;
  hourrate=(((float)cutime->ti_hour/12)+minrate)/12;
  ang=hourrate*360;
  DrawPoly(HourHand,ang,YELLOW);/*画时针*/
  ang=minrate*360;
  DrawPoly(MiHand,ang, GREEN);/*画分针*/
  ang=secrate*360;
  DrawPoly(SecHand,ang, RED);/*画秒针*/
}

 main()
{
  int gdriver=EGA,
  gmode=EGAHI;
  int curpage;
  struct time curtime ,newtime ;
  initgraph(&gdriver,&gmode,"c:\\tc");
  setbkcolor(BLUE);
  cleardevice();
  gettime(&curtime);
  curpage=0;
  DrawClock(&curtime);
  while(1)
  {
   if(kbhit())
     break;
     gettime(&newtime);
   if(newtime.ti_sec!=curtime.ti_sec)
      {
   if(curpage==0)
       curpage=1;
   else
       curpage=0;
       curtime=newtime;

   setactivepage(curpage);

   DrawClock(&curtime);

   setvisualpage(curpage);

    if(newtime.ti_min==0&&newtime.ti_sec==0)
       HighBeep();

    else if(newtime.ti_min==59&&
   newtime.ti_sec<=59)
   LowBeep();
  else
 Click();
      }
   }
  closegraph();
}


视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058