| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 363 人关注过本帖
标题:这是我编的时钟程序,为什么指针有时会闪烁,我知道应该用双缓冲,但要怎么 ...
只看楼主 加入收藏
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:1 
这是我编的时钟程序,为什么指针有时会闪烁,我知道应该用双缓冲,但要怎么写啊,请各位大神说一下。。。
#include<stdio.h>
#include"graphics.h"
#include<time.h>
#include<conio.h>
#include"math.h"
#include"dos.h"
#define pi 3.1415926
void set1()//画外围圈
{
  setcolor(YELLOW);
    setlinestyle(0,0,3);
    circle(300,240,200);
    setcolor(WHITE);
    circle(300,240,220);
    setfillstyle(1,3);
    pieslice(300,30,0,360,10);
    setfillstyle(1,2);
    pieslice(300,450,0,360,10);
}

void set2()//画刻盘
{   
     int i,l,x1,x2,y1,y2;
     for(i=0;i<60;i++)
 {
    if(i%5==0)
    l=15;
    else
    l=5;
    x1=200*sin(i*6*pi/180)+300;
    y1=200*cos(i*6*pi/180)+240;
    x2=(200-l)*sin(i*6*pi/180)+300;
    y2=(200-l)*cos(i*6*pi/180)+240;
    setcolor(YELLOW);
    line(x1,y1,x2,y2);

    }

}
void set3()//填数字
{
   setcolor(GREEN);
    settextstyle(0,0,2);
    outtextxy(290,80,"12");
    outtextxy(375,100,"1");
    outtextxy(430,160,"2");
    outtextxy(460,230,"3");
    outtextxy(430,310,"4");
    outtextxy(380,370,"5");
    outtextxy(295,390,"6");
    outtextxy(220,370,"7");
    outtextxy(160,310,"8");
    outtextxy(140,230,"9");
    outtextxy(157,155,"10");
    outtextxy(215,95,"11");

}

int main()
{
     int drive,mode;
      int n1,n2,n3,h1,m1,s1,h2,m2,s2;
      struct time *p;
    drive=DETECT;
    initgraph(&drive,&mode,"");
    cleardevice();
    set1();
    set2();
    set3();
   
    while(!kbhit())
   {
     time_t t;
     t=time(NULL);
     p=localtime(&t);
     n1=p->tm_sec;
     n2=p->tm_min;
     n3=p->tm_hour;

     sound(1000);
     delay(1000);
     sound(1000);
     nosound();
     setfillstyle(1,0);
      bar(200,150,290,200);

     gotoxy(27,11);
     printf("%d-%d-%d",1900+p->tm_year,1+p->tm_mon,p->tm_mday);
     gotoxy(27,12);
     printf("%d:%d:%d",p->tm_hour,p->tm_min,p->tm_sec);
     h1=300+100*sin((n3+n2/60.0)*2*pi/12);
     m1=300+150*sin(n2*2*pi/60);
     s1=300+180*sin(n1*2*pi/60);
     h2=240-100*cos((n3+n2/60.0)*2*pi/12);
     m2=240-150*cos(n2*2*pi/60);
     s2=240-180*cos(n1*2*pi/60);
     setcolor(YELLOW);
     line(300,240,h1,h2);
     setcolor(RED);
     line(300,240,m1,m2);
     setcolor(BLUE);
     line(300,240,s1,s2);

     sleep(1);
     setcolor(BLACK);
     line(300,240,h1,h2);
     line(300,240,m1,m2);
     line(300,240,s1,s2);
     }

    getch();
    closegraph();
    return 0;

}

[ 本帖最后由 浪漫横行 于 2013-12-8 23:38 编辑 ]
搜索更多相关主题的帖子: include 
2013-12-08 23:34
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:7 
已经不错了
2013-12-09 00:48
快速回复:这是我编的时钟程序,为什么指针有时会闪烁,我知道应该用双缓冲,但要 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015173 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved