#include <graphics.h>
#include <math.h>
#include <conio.h>
#define PI 3.141592654
void Draw_Dial();
void Draw_Hand(int hour, int minute, int secend);
int main()
{
initgraph(640, 480);
Draw_Dial();
setwritemode(R2_XORPEN);
SYSTEMTIME time;
while (!_kbhit())
{
GetLocalTime(&time);
Draw_Hand(time.wHour, time.wMinute, time.wSecond);
Sleep(1000);
Draw_Hand(time.wHour, time.wMinute, time.wSecond);
}
closegraph();
return 0;
} void Draw_Dial()
{
setcolor(GREEN);
circle(320, 240, 160);
circle(320, 240, 60);
circle(320, 240, 2);
setcolor(WHITE);
int x, y;
for (int i = 0; i < 60; i++)
{
x = 320 + int(145 * sin(PI * 2 * i / 60));
y = 240 + int(145 * 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);
}
} void Draw_Hand(int hour, int minute, int second)
{
double h_hour, h_minute, h_second;
int x_hour, y_hour, x_minute, y_minute, x_second, y_second;
h_second = second * 2 * PI / 60;
h_minute = minute * 2 * PI / 60 + h_second / 60;
h_hour = hour * 2 * PI / 12 + h_minute / 12;
x_second = int(120 * sin(h_second)); y_second = int(120 * cos(h_second));
x_minute = int(100 * sin(h_minute)); y_minute = int(100 * cos(h_minute));
x_hour = int(70 * sin(h_hour)); y_hour = int(70 * cos(h_hour));
setlinestyle(PS_SOLID, 2);
setcolor(RED);
line(320 + x_second, 240 - y_second, 320 - x_second / 3, 240 + y_second / 3);
setlinestyle(PS_SOLID, 6);
setcolor(YELLOW);
line(320 + x_minute, 240 - y_minute, 320 - x_minute / 5, 240 + y_minute / 5);
setlinestyle(PS_SOLID, 7);
setcolor(GREEN);
line(320 + x_hour, 240 - y_hour, 320 - x_hour / 5, 240 + y_hour / 5);
}

运行的时候需要时cpp文件运行,且需要easyx插件。

基于easyx的小时钟的更多相关文章

  1. 【javascript】基于javascript的小时钟

    计时事件:通过JavaScript,我们可以设置在一段时间间隔后执行一段代码,而不仅仅是在函数调用后立即执行. 在JavaScript中,使用计时事件是很容易的,主要有两个事件供我们使用 setTim ...

  2. 基于Android的小巫新闻客户端开发系列教程

    <ignore_js_op> 141224c6n6x7wmu1aacap7.jpg (27.51 KB, 下载次数: 0) 下载附件  保存到相册 23 秒前 上传   <ignor ...

  3. 【python】实现一个python编程的小时钟!

    [本实验内容] 1.GUI.PyQT5介绍2.实现此次实验效果 [一 GUI.PyQt5介绍] 1.Python简介 2.GUI介绍 几个常用的Python GUI库: (1)wxPython (2) ...

  4. WPF制作的小时钟

    原文:WPF制作的小时钟 周末无事, 看到WEB QQ上的小时钟挺可爱的, 于是寻思着用WPF模仿着做一个. 先看下WEB QQ的图: 打开VS, 开始动工. 建立好项目后, 面对一个空荡荡的页面, ...

  5. js写个小时钟

    原生js写个小时钟 一.代码 今天美化博客园自学的哈,分享一下 <!--标题变成时钟--> <div id="Header1_HeaderTitle">&l ...

  6. 基于Proxy的小程序状态管理

    摘要: 小程序状态管理. 作者:wwayne 原文:基于Proxy的小程序状态管理 Fundebug经授权转载,版权归原作者所有. 微信小程序的市场在进一步的扩大,而背后的技术社区仍在摸索着最好的实践 ...

  7. jq动画插件,自制基于vue的圆形时钟

    首先附上jq插件库,里面的东西太炫了,建议学前端的可以看看学习下:http://www.jq22.com/ 里面有个“超个性动画版本的个人简历”,通过屏幕上不断打印内容,改变相应样式来实现动画简历,我 ...

  8. Python自制小时钟,并转换为exe可执行程序详解

    一,简介Python写完程序,要靠命令来执行太LOW,太低调了,还不华丽了. 再说别人的电脑,都没有Python库,怎么执行,还能不能愉快的一起玩耍了. 所以哪怕只会写一个HelloWorld,也要弄 ...

  9. css3-手把手 transform 小时钟

    学习css3ing,正在学习transfomr,突发奇想用此做个小时钟,开始吧: 准备前期工作,把时钟的表盘,时分秒针,实时时间标签 的大概样子做好,效果如图: html代码如下: <div c ...

随机推荐

  1. 一致性 Hash 在负载均衡中的应用

    介 一致性Hash是一种特殊的Hash算法,由于其均衡性.持久性的映射特点,被广泛的应用于负载均衡领域,如nginx和memcached都采用了一致性Hash来作为集群负载均衡的方案.本文将介绍一致性 ...

  2. Oracle在存储过程中建表、建索引权限不足

    修改存储过程,在存储过程名称后面添加 Authid Current_User 后执行通过. CREATE OR REPLACE PROCEDURE p_test Authid Current_User ...

  3. 讲讲 kafka 维护消费状态跟踪的方法?

    大部分消息系统在 broker 端的维护消息被消费的记录:一个消息被分发到 consumer 后 broker 就马上进行标记或者等待 customer 的通知后进行标记.这 样也可以在消息在消费后立 ...

  4. 为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?

    一个很明显的原因是 JAVA 提供的锁是对象级的而不是线程级的,每个对象都有 锁,通过线程获得.由于 wait,notify 和 notifyAll 都是锁级别的操作,所以把他 们定义在 Object ...

  5. docker-compose安装和使用

    安装:https://my.oschina.net/thinwonton/blog/2985886 docker-compose和Dockerfile结合使用,创建django项目和postgres数 ...

  6. MariaDB数据库设置用户密码

    SET PASSWORD [FOR user] = { PASSWORD('some password') | OLD_PASSWORD('some password') | 'encrypted p ...

  7. 两个链表有一个交点,如何在时间复杂度 O(n) 和 空间复杂度 O(1) 的条件下实现?_字节跳动面试题

    输入两个链表,找出它们的第一个公共结点 我们可以首先遍历两个链表得到它们的长度,就能知道哪个链表比较长, 我们可以首先遍历两个链表得到它们的长度,就能知道哪个链表比较长,以及长的链表比短的链表多几个结 ...

  8. 学习zabbix(二)

    超大规模门户网站集群架构: 运维30%的时间都在监控,监控要多维度: 监控(单机监控(系统监控).网络监控.应用监控.分布式监控): 业务监控(业务指标-->流量分析-->舆论监控): 流 ...

  9. Netty学习摘记 —— ByteBuf详解

    本文参考 本篇文章是对<Netty In Action>一书第五章"ByteBuf"的学习摘记,主要内容为JDK 的ByteBuffer替代品ByteBuf的优越性 你 ...

  10. #define的3种用法详解

    1.#define 的作用 在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为"宏".被定义为"宏"的标识符称为"宏名".在编译 ...