C语言—用EaxyX绘制实时钟表

2024-04-04 23:28

本文主要是介绍C语言—用EaxyX绘制实时钟表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 代码效果如图

#undef UNICODE
#undef _UNICODE
#include<graphics.h>
#include<conio.h>
#include<math.h>#define width 640
#define high 480
#define PI 3.14159int main()
{initgraph(width, high);int center_x, center_y;center_x = width / 2;center_y = high / 2;int secondlen = width / 5;int minutelen = width / 6;int hourlen = width / 7;int secondend_x, secondend_y;int minuteend_x, minuteend_y;int hourend_x, hourend_y;float secondangle;float minuteangle;float hourangle;SYSTEMTIME ti;BeginBatchDraw();while (1){setbkcolor(RGB(0,200,200));//只是设置背景色,还未填充背景cleardevice();//用背景色来清空背景setlinestyle(PS_SOLID, 2);//画表盘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)solidrectangle(x - 5, y - 5, x + 5, y + 5);else if (i % 5 == 0)circle(x, y, 3);elseputpixel(x, y, WHITE);}outtextxy(center_x - 25, center_y + width / 6, "我的时钟");GetLocalTime(&ti);//获取当前电脑时间secondangle = ti.wSecond * 2 * PI / 60;minuteangle = ti.wMinute * 2 * PI / 60 + secondangle / 60;hourangle = ti.wHour * 2 * PI / 12 + minuteangle / 12;secondend_x = center_x + secondlen * sin(secondangle);secondend_y = center_y - secondlen * cos(secondangle);minuteend_x = center_x + minutelen * sin(minuteangle);minuteend_y = center_y - minutelen * cos(minuteangle);hourend_x = center_x + hourlen * sin(hourangle);hourend_y = center_y - hourlen * cos(hourangle);setlinestyle(PS_SOLID, 2);//画时针分针和秒针setcolor(YELLOW);line(center_x, center_y, secondend_x, secondend_y);setlinestyle(PS_SOLID, 4);setcolor(BLUE);line(center_x, center_y, minuteend_x, minuteend_y);setlinestyle(PS_SOLID, 6);setcolor(RED);line(center_x, center_y, hourend_x, hourend_y);FlushBatchDraw();Sleep(10);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;
}

这篇关于C语言—用EaxyX绘制实时钟表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/877088

相关文章

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个