广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现实时钟表
  • 426
分享到

C语言实现实时钟表

2024-04-02 19:04:59 426人浏览 薄情痞子
摘要

本文实例为大家分享了C语言实现实时钟表的具体代码,供大家参考,具体内容如下 一、最终效果展示 效果图如下: 二、绘制静态秒针 代码如下: #include<graphics

本文实例为大家分享了C语言实现实时钟表的具体代码,供大家参考,具体内容如下

一、最终效果展示

效果图如下:

二、绘制静态秒针

代码如下:

#include<graphics.h>
#include<coNIO.h>
#include<math.h>

#define High 480 //游戏画面尺寸
#define Width 640

int main(void)
{
    initgraph(Width,High);//初始化绘图窗口
    int center_x,center_y;//中心点的坐标,也是钟表的坐标
    center_x=Width/2;
    center_y=High/2;
    int secondLength;//秒针的长度
    secondLength=Width/5;
    int secondEnd_x,secondEnd_y;//秒针的终点
    secondEnd_x=center_x+secondLength;
    secondEnd_y=center_y;

    //画秒针
    setlinestyle(PS_SOLID,2);//画实线,宽度为两个像素
    setcolor(WHITE);
    line(center_x,center_y,secondEnd_x,secondEnd_y);
    getch();
    closegraph();//关闭绘图窗口
    return 0;
}

效果图如下:

三、绘制动态秒针

代码如下:

#include<graphics.h>
#include<conio.h>
#include<math.h>

#define High 480 //游戏画面尺寸
#define Width 640
#define PI 3.14159

int main(void)
{
    initgraph(Width,High);//初始化绘图窗口
    int center_x,center_y;//中心点的坐标,也是钟表的坐标
    center_x=Width/2;
    center_y=High/2;
    int secondLength;//秒针的长度
    secondLength=Width/5;
    int secondEnd_x,secondEnd_y;//秒针的终点
    float secondAngle=0;//秒针对应的角度

    while(1)
    {
        //由角度决定的秒针终点坐标
        secondEnd_x=center_x+secondLength*sin(secondAngle);
        secondEnd_y=center_y-secondLength*cos(secondAngle);
        //画秒针
        setlinestyle(PS_SOLID,2);//画实线,宽度为两个像素
        setcolor(WHITE);
        line(center_x,center_y,secondEnd_x,secondEnd_y);
        Sleep(1000);//1秒

        setcolor(BLACK);
        line(center_x,center_y,secondEnd_x,secondEnd_y);//隐藏前一帧的秒针

        //秒针角度的变化
        secondAngle=secondAngle+2*PI/60;
        //一圈一共2*PI,一圈60秒,一秒钟秒针走过的角度为2*PI/60
    }
    getch();
    closegraph();//关闭绘图窗口
    return 0;
}

效果图如下:

四、根据实际时间转动秒针

代码如下:

#include<graphics.h>
#include<conio.h>
#include<math.h>

#define High 480 //游戏画面尺寸
#define Width 640
#define PI 3.14159

int main(void)
{
    initgraph(Width,High);//初始化绘图窗口
    int center_x,center_y;//中心点的坐标,也是钟表的坐标
    center_x=Width/2;
    center_y=High/2;
    int secondLength;//秒针的长度
    secondLength=Width/5;
    int secondEnd_x,secondEnd_y;//秒针的终点
    float secondAngle=0;//秒针对应的角度
    SYSTEMTIME ti;//定义保存当前时间的变量

    while(1)
    {
        GetLocalTime(&ti);//获取当前时间
        //秒针角度的变化
        secondAngle=ti.wSecond*2*PI/60;
        //一圈一共2*PI,一圈60秒,一秒钟秒针走过的角度为2*PI/60
        //由角度决定的秒针终点坐标

        secondEnd_x=center_x+secondLength*sin(secondAngle);
        secondEnd_y=center_y-secondLength*cos(secondAngle);
        //画秒针
        setlinestyle(PS_SOLID,2);//画实线,宽度为两个像素
        setcolor(WHITE);
        line(center_x,center_y,secondEnd_x,secondEnd_y);
        Sleep(1000);//1秒

        setcolor(BLACK);
        line(center_x,center_y,secondEnd_x,secondEnd_y);//隐藏前一帧的秒针

    }
    getch();
    closegraph();//关闭绘图窗口
    return 0;
}

五、添加时针分针

代码如下:

#include<graphics.h>
#include<conio.h>
#include<math.h>

#define High 480 //游戏画面尺寸
#define Width 640
#define PI 3.14159

int main(void)
{
    initgraph(Width,High);//初始化绘图窗口
    int center_x,center_y;//中心点的坐标,也是钟表的坐标
    center_x=Width/2;
    center_y=High/2;
    int secondLength=Width/7;//秒针的长度
    int minuteLength=Width/6;//分针的长度
    int hourLength=Width/5;//时针的长度

    int secondEnd_x,secondEnd_y;//秒针的终点
    int minuteEnd_x,minuteEnd_y;//分针的终点
    int hourEnd_x,hourEnd_y;//时针的终点
    float secondAngle=0;//秒针对应的角度
    float minuteAngle=0;//分针对应的角度
    float hourAngle=0;//时针对应的角度

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

    while(1)
    {
        GetLocalTime(&ti);//获取当前时间
        
        //秒针角度的变化
        secondAngle=ti.wSecond*2*PI/60;
        //一圈一共2*PI,一圈60秒,一秒钟秒针走过的角度为2*PI/60
        //由角度决定的秒针终点坐标

        //分针角度的变化
        minuteAngle=ti.wMinute*2*PI/60;
        //一圈一共2*PI,一圈60分,一分钟秒针走过的角度为2*PI/60
        
        //时针角度的变化
        hourAngle=ti.wHour*2*PI/12;
        //一圈一共2*PI,一圈12时,一小时时针走过的角度为2*PI/12

        //由角度决定的秒针终点坐标
        secondEnd_x=center_x+secondLength*sin(secondAngle);
        secondEnd_y=center_y-secondLength*cos(secondAngle);
        //由角度决定的分针终点坐标
        minuteEnd_x=center_x+minuteLength*sin(minuteAngle);
        minuteEnd_y=center_y-minuteLength*cos(minuteAngle);
        //由角度决定的时针终点坐标
        hourEnd_x=center_x+hourLength*sin(hourAngle);
        hourEnd_y=center_y-hourLength*cos(hourAngle);

        //画秒针
        setlinestyle(PS_SOLID,2);//画实线,宽度为两个像素
        setcolor(WHITE);
        line(center_x,center_y,secondEnd_x,secondEnd_y);
        //画分针
        setlinestyle(PS_SOLID,4);//画实线,宽度为4个像素
        setcolor(BLUE);
        line(center_x,center_y,minuteEnd_x,minuteEnd_y);
        //画时针
        setlinestyle(PS_SOLID,6);//画实线,宽度为6个像素
        setcolor(RED);
        line(center_x,center_y,hourEnd_x,hourEnd_y);
        Sleep(1000);//1秒

        setcolor(BLACK);
        setlinestyle(PS_SOLID,2);
        line(center_x,center_y,secondEnd_x,secondEnd_y);//隐藏前一帧的秒针
        setlinestyle(PS_SOLID,4);
        line(center_x,center_y,minuteEnd_x,minuteEnd_y);//隐藏前一帧的分针
        setlinestyle(PS_SOLID,6);
        line(center_x,center_y,hourEnd_x,hourEnd_y);//隐藏前一帧的时针
    }
    getch();
    closegraph();//关闭绘图窗口
    return 0;
}

效果图如下:

六、添加表盘 刻度

代码如下:

#include<graphics.h>
#include<conio.h>
#include<math.h>
#define High 480 //游戏画面尺寸
#define Width 640
#define PI 3.14159

int main(void)
{
    initgraph(Width,High);//初始化绘图窗口
    int center_x,center_y;//中心点的坐标,也是钟表的坐标
    center_x=Width/2;
    center_y=High/2;
    int secondLength=Width/7;//秒针的长度
    int minuteLength=Width/6;//分针的长度
    int hourLength=Width/5;//时针的长度

    int secondEnd_x,secondEnd_y;//秒针的终点
    int minuteEnd_x,minuteEnd_y;//分针的终点
    int hourEnd_x,hourEnd_y;//时针的终点
    float secondAngle=0;//秒针对应的角度
    float minuteAngle=0;//分针对应的角度
    float hourAngle=0;//时针对应的角度

    SYSTEMTIME ti;//定义保存当前时间的变量
    BeginBatchDraw();
    while(1)
    {
        //绘制一个简单的表盘
        setlinestyle(PS_SOLID,1);//设置表盘边的粗细
        setcolor(WHITE);//设置表盘边的颜色
        circle(center_x,center_y,Width/4);//画表盘

        //画刻度
        int x,y,i;
        for(i=0;i<60;i++)
        {
            x=center_x+int(Width/4.3*sin(PI*2*i/60));
            y=center_y+int(Width/4.3*cos(PI*2*i/60));
            if(i%15==0)
                bar(x-5,y-5,x+5,y+5);
            else if(i%5==0)
                circle(x,y,3);
            else
                putpixel(x,y,WHITE);
        }
        outtextxy(center_x-25,center_y+Width/6,"我的时钟");
        outtextxy(center_x-120,High-60,"[时针: 红色]  [分针: 蓝色]  [秒针: 白色]");
        GetLocalTime(&ti);//获取当前时间
        
        //秒针角度的变化
        secondAngle=ti.wSecond*2*PI/60;
        //一圈一共2*PI,一圈60秒,一秒钟秒针走过的角度为2*PI/60
        //由角度决定的秒针终点坐标

        //分针角度的变化
        minuteAngle=ti.wMinute*2*PI/60;
        //一圈一共2*PI,一圈60分,一分钟秒针走过的角度为2*PI/60
        
        //时针角度的变化
        hourAngle=ti.wHour*2*PI/12;
        //一圈一共2*PI,一圈12时,一小时时针走过的角度为2*PI/12

        //由角度决定的秒针终点坐标
        secondEnd_x=center_x+secondLength*sin(secondAngle);
        secondEnd_y=center_y-secondLength*cos(secondAngle);
        //由角度决定的分针终点坐标
        minuteEnd_x=center_x+minuteLength*sin(minuteAngle);
        minuteEnd_y=center_y-minuteLength*cos(minuteAngle);
        //由角度决定的时针终点坐标
        hourEnd_x=center_x+hourLength*sin(hourAngle);
        hourEnd_y=center_y-hourLength*cos(hourAngle);

        //画秒针
        setlinestyle(PS_SOLID,2);//画实线,宽度为两个像素
        setcolor(WHITE);
        line(center_x,center_y,secondEnd_x,secondEnd_y);
        //画分针
        setlinestyle(PS_SOLID,4);//画实线,宽度为4个像素
        setcolor(BLUE);
        line(center_x,center_y,minuteEnd_x,minuteEnd_y);
        //画时针
        setlinestyle(PS_SOLID,6);//画实线,宽度为6个像素
        setcolor(RED);
        line(center_x,center_y,hourEnd_x,hourEnd_y);

        FlushBatchDraw();
        Sleep(1000);//1秒

        setcolor(BLACK);
        setlinestyle(PS_SOLID,2);
        line(center_x,center_y,secondEnd_x,secondEnd_y);//隐藏前一帧的秒针
        setlinestyle(PS_SOLID,4);
        line(center_x,center_y,minuteEnd_x,minuteEnd_y);//隐藏前一帧的分针
        setlinestyle(PS_SOLID,6);
        line(center_x,center_y,hourEnd_x,hourEnd_y);//隐藏前一帧的时针
    }
    EndBatchDraw();
    getch();
    closegraph();//关闭绘图窗口
    return 0;
}

效果图如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C语言实现实时钟表

本文链接: https://www.lsjlt.com/news/148664.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现实时钟表
    本文实例为大家分享了C语言实现实时钟表的具体代码,供大家参考,具体内容如下 一、最终效果展示 效果图如下: 二、绘制静态秒针 代码如下: #include<graphics...
    99+
    2022-11-13
  • C#GDI+实现时钟表盘
    本文实例为大家分享了C# GDI+实现时钟表盘的具体代码,供大家参考,具体内容如下 一、设计如下图界面 按键“打开时钟”按下后会出现表盘,按键“退...
    99+
    2022-11-13
  • C#如何实现时钟表盘
    本篇内容介绍了“C#如何实现时钟表盘”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、设计如下图界面按键“打开时钟”按下后会出现表盘,按键“...
    99+
    2023-07-02
  • C语言实现绘制可爱的橘子钟表
    目录简介程序截图源码简介 这个橘子钟表程序主要分成三个部分:画表盘、画表针、显示当前时间。画表盘部分运用到了三次贝塞尔曲线、HSL 颜色模型以及字符串格式化命令,其中三次贝塞尔曲线确...
    99+
    2022-12-28
    C语言绘制橘子钟表 C语言 橘子钟表 C语言 钟表
  • C语言实现基于控制台的电子时钟
    使用c语言制作一个控制台的电子时钟,供大家参考,具体内容如下 学习了c语言基本语法后,在学习了time.h的库文件,让我产生了想制作一款电子时钟的念头,那好就开始动手操作吧。 使用到...
    99+
    2022-11-13
  • C语言基于EasyX库实现有图形界面时钟
    本文实例为大家分享了C语言基于EasyX库实现有图形界面时钟的具体代码,供大家参考,具体内容如下 1.目标要求: 1.实现一个显示图像的时钟2.时间与本地时间一致 2.C语言代码: ...
    99+
    2022-11-13
  • C语言基于EasyX库实现有图形界面钟表
    本文实例为大家分享了C语言基于EasyX库实现有图形界面钟表的具体代码,供大家参考,具体内容如下 1.目标要求: 实现一个显示图像的时钟 2.C语言代码: #include<g...
    99+
    2022-11-13
  • JavaScript实现简单钟表时钟
    本文实例为大家分享了JavaScript实现简单钟表时钟的具体代码,供大家参考,具体内容如下 效果图: 主要思想: 1.先画一个圆表盘。 2.再用js循环画刻度(每一个刻度都是li...
    99+
    2022-11-12
  • C语言怎么实现基于控制台的电子时钟
    这篇文章主要介绍“C语言怎么实现基于控制台的电子时钟”,在日常操作中,相信很多人在C语言怎么实现基于控制台的电子时钟问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言怎么实现基于控制台的电子时钟”的疑惑有所...
    99+
    2023-06-30
  • C语言基于EasyX绘制时钟
    本文实例为大家分享了C语言基于EasyX绘制时钟的具体代码,供大家参考,具体内容如下 函数说明: void line(     int x1,     int y1,     int...
    99+
    2022-11-13
  • C语言ffmpeg与sdl实现播放视频同时同步时钟详解
    目录前言一、直接延时1、根据帧率延时2、根据duration延时二、同步到时钟1、同步到绝对时钟2、同步到视频时钟三、同步到音频1、音频时钟的计算2、同步到音频时钟总结前言 视频的时...
    99+
    2022-11-13
  • java实现时钟表盘
    本文实例为大家分享了java实现时钟表盘的具体代码,供大家参考,具体内容如下 设计并实现一个模拟时钟功能的应用程序。程序中应显示时针、分针和秒针,并同时以数字形式显示当前时间。 实现...
    99+
    2022-11-13
  • C语言基于EasyX库怎么实现有图形界面时钟
    今天小编给大家分享一下C语言基于EasyX库怎么实现有图形界面时钟的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.目标要求...
    99+
    2023-06-29
  • C语言基于EasyX库怎么实现有图形界面钟表
    这篇文章主要介绍“C语言基于EasyX库怎么实现有图形界面钟表”,在日常操作中,相信很多人在C语言基于EasyX库怎么实现有图形界面钟表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言基于EasyX库怎么...
    99+
    2023-06-29
  • 原生JS实现实时钟表
    分享一个用原生JS实现的实时钟表特效,效果如下(PS:实际指针是按360度走的,截图时只截了一部分)   上面的效果一共需要4张图片,分别是表盘、时针、分针、秒针,根据需要...
    99+
    2022-11-12
  • c语言链表如何实现
    这篇“c语言链表如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“c语言链表如何实现”文章吧。在计算机领域离不开算法和数...
    99+
    2023-06-19
  • C语言实现电子秒表
    秒表是我们生活中常见的计时工具,特别是在运动会等比赛中,今天我就来写一个简单的电子秒表。 实现思路 这里简单介绍一下我的实现思路: 1、简单版:简单版本只实现了单次计时功能,即每次开...
    99+
    2022-11-13
  • C++实现电子时钟效果
    本文实例为大家分享了C++实现电子时钟的具体代码,供大家参考,具体内容如下 此精确到秒,因为有精度误差加上从计算机获取初始时间时处理比较简单,因此运行一段时间会出现较大的误差。 代码...
    99+
    2022-11-13
  • C语言绘制简单时钟小程序
    本文实例为大家分享了C语言绘制时钟小程序的具体代码,供大家参考,具体内容如下 先贴效果图给大家先看看 基本机制是通过获取系统的时钟去绘制图线进行展示 贴出代码 ,大家可以直接使用的...
    99+
    2022-11-13
  • C#实现钟表程序设计
    本文实例为大家分享了C#实现钟表程序设计的具体代码,供大家参考,具体内容如下 工作空间: 代码如下: using System; using System.Collectio...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作