C语言绘制钟表

教育   2024-09-02 22:02   宁夏  

前言

使用C语言绘制一个简单的秒表,是实现简单的动态刷新功能,没有使用复杂的算法,只有一些常用的绘图函数。简单易懂,适合新手小白学习。该程序还存在一些缺陷,可以进一步完善和美化。

源码

///////////////////////////////////////////////////// 程序名称:C语言绘制秒表// 编译环境:Mictosoft Visual Studio 2022, EasyX_20211109// 作    者:luoyh <2864292458@qq.com>// 公 众 号:C语言研究// 最后修改:2022-9-2//#include<graphics.h>#include<conio.h>#include<stdio.h>
int main(){ initgraph(640, 480); setbkcolor(RGB(232, 216, 242)); cleardevice();
// 按键 setfillcolor(RGB(181, 49, 28)); setlinecolor(BLACK); setlinestyle(PS_SOLID, 3); POINT pts[] = { {391,121}, {431,156}, {408,186},{367,149} }; fillpolygon(pts, 4);
// 齿轮 用填充矩形表示 setfillcolor(RGB(234, 237, 232)); fillrectangle(305, 100, 335, 147); fillroundrect(293, 89, 347, 113, 8, 8); for (int i = 1; i < 5; i++) { line(293 + 11 * i, 89, 293 + 11 * i, 97); line(293 + 11 * i, 106, 293 + 11 * i, 113); }
// 表盘 setfillcolor(RGB(101, 101, 101)); solidcircle(321, 250, 124); circle(321, 250, 125); setlinecolor(RGB(27, 124, 221)); setlinestyle(PS_SOLID, 8); circle(321, 250, 119); setlinestyle(PS_SOLID, 3); setlinecolor(BLACK); circle(321, 250, 116); // 绘制显示器
int times = 0; // 毫秒 int S = 0; // 秒 int M = 0; // 分
BeginBatchDraw(); while (true) { setfillcolor(RGB(15, 18, 9)); fillroundrect(249, 217, 388, 281, 8, 8); // 显示时间 settextcolor(WHITE); setbkmode(TRANSPARENT); settextstyle(30, 0, _T("宋体")); RECT r = { 249,217,388,281 }; TCHAR str[25]; // 这里需要判断一下要以那种格式输出 if (M < 10 && S < 10) { _stprintf_s(str, _T("0%d:0%d.%d"), M, S, times); }
if (M < 10 && S>10) { _stprintf_s(str, _T("0%d:%d.%d"), M, S, times); }
drawtext(str, &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); if (times > 100) { S++; times = 0; } if (S > 60) { M++; S = 0; } times++; FlushBatchDraw(); Sleep(1); } EndBatchDraw(); _getch(); return 0;}

运行效果

编写过程

C语言研究
写给自己的笔记,时常写写,时常看看,仅此而已。