服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言基于EasyX绘制时钟

C语言基于EasyX绘制时钟

2022-12-24 15:31云淡风轻ing C/C++

这篇文章主要为大家详细介绍了C语言基于EasyX绘制时钟,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

函数说明:

?
1
2
3
4
5
6
void line(
    int x1,
    int y1,
    int x2,
    int y2
);

参数

x1
直线的起始点的 x 坐标。

y1
直线的起始点的 y 坐标。

x2
直线的终止点的 x 坐标。

y2
直线的终止点的 y 坐标。

文件素材

C语言基于EasyX绘制时钟

源代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <graphics.h>
#include <conio.h>
#include <math.h>
#define PI 3.1415926
int main()
{
    int high=500;
    int width=500;
    initgraph(width,high);        
    IMAGE img;                    
    loadimage(&img,"timg.jpg");        //加载图片
    putimage(0,0,&img);                //显示图片
    SYSTEMTIME ti;
    float angle_s = 0;                //秒针偏转角度
    float angle_m = 0;                //分针偏转角度
    float angle_h = 0;                //时针偏转角度
    BeginBatchDraw();
    outtextxy(width/2-30,10,"我的时钟");    //输出文字
    while(1)
    {
        GetLocalTime(&ti);                    //获得系统时间
        //根据系统时间获取时针、分针、秒针偏转角度
        angle_s = ti.wSecond*2*PI/60;        
        angle_m = ti.wMinute*2*PI/60;
        angle_h = ti.wHour*2*PI/12;
        //绘制秒针
        setcolor(RED);
        setlinestyle(PS_SOLID,2);
        line(width/2,high/2,width/2+120*sin(angle_s),high/2-120*cos(angle_s));
        setcolor(GREEN);
        //绘制分针
        setlinestyle(PS_SOLID,3);
        line(width/2,high/2,width/2+80*sin(angle_m),high/2-80*cos(angle_m));
        setcolor(BLACK);
        //绘制时针
        setlinestyle(PS_SOLID,4);
        line(width/2,high/2,width/2+50*sin(angle_h),high/2-50*cos(angle_h));
        FlushBatchDraw();
        //Sleep(50);
        //清除前一帧的绘图
        setcolor(WHITE);
        line(width/2,high/2,width/2+120*sin(angle_s),high/2-120*cos(angle_s));
        line(width/2,high/2,width/2+80*sin(angle_m),high/2-80*cos(angle_m));
        line(width/2,high/2,width/2+50*sin(angle_h),high/2-50*cos(angle_h));
 
    }
    EndBatchDraw();
    getch();
    closegraph();
    return 0;
}

效果:

C语言基于EasyX绘制时钟

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

原文链接:https://blog.csdn.net/qq_37076942/article/details/100929981

延伸 · 阅读

精彩推荐
  • C/C++C++超详细讲解隐藏私有属性和方法的两种实现方式

    C++超详细讲解隐藏私有属性和方法的两种实现方式

    为了避免因为将类库中的私有成员开放给类的使用方而导致的软件逻辑外泄,因此需要将对外代码中的私有成员隐藏起来,下面我们来了解一下隐藏私有属...

    一个程序员的修炼之路12022022-11-25
  • C/C++Windows进程崩溃问题的定位方法

    Windows进程崩溃问题的定位方法

    这篇文章主要介绍了Windows进程崩溃问题的定位方法,本文使用nstd工具进行进程崩溃时内存和堆栈转储的方法查明问题所在,需要的朋友可以参考下...

    C语言教程网7092021-02-24
  • C/C++基于C语言的库封装发布技术详解

    基于C语言的库封装发布技术详解

    在编程的过程中,使用已经封装好的库函数是十分方便的,也是十分高效的,这篇文章主要给大家介绍了关于C语言库的封装和使用的相关资料,需要的朋友可以...

    丁劲犇4532021-12-21
  • C/C++C语言安全编码之数组索引位的合法范围

    C语言安全编码之数组索引位的合法范围

    这篇文章主要介绍了C语言安全编码的数组索引位合法范围剖析,对于编码安全非常重要!需要的朋友可以参考下...

    C语言程序设计9272021-01-21
  • C/C++C语言 模拟实现memcpy与memmove函数详解

    C语言 模拟实现memcpy与memmove函数详解

    这篇文章主要介绍了C语言详解如何模拟内存函数,用到了mencpy与memmove两个函数,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步 这篇...

    不一样的烟火a11402022-11-04
  • C/C++C++中的运算符和运算符优先级总结

    C++中的运算符和运算符优先级总结

    这篇文章主要介绍了C++中的运算符和运算符优先级总结,主要整理了算术、关系、逻辑、位和赋值运算符的用法,需要的朋友可以参考下...

    飞龙12362021-04-01
  • C/C++C++STL之string类的使用

    C++STL之string类的使用

    这篇文章主要为大家详细介绍了C++STL中的string类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带...

    卖寂寞的小男孩10652022-10-24
  • C/C++WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数详解

    WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数详解

    这篇文章主要介绍了WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数,有助于读者更好的理解windows程序的消息机制,需要的朋友可以参考下...

    C语言程序设计9312021-01-23