1、下载EasyX Library for C++ (http://www.easyx.cn/)

  直接下载:EasyX_20151015(beta)

EasyX 绘图库目前支持 Visual C++ 6.0 / 2008 / 2010 / 2012。下载的压缩包解压缩后,执行 Setup.hta 安装即可。

  

2、VS建立控制台应用程序,新建cpp文件,输入代码: 

// 头文件
#include <graphics.h>
#include <math.h>
#include <conio.h>
#include <stdio.h> // 宏定义
#define PI 3.141592654 // 函数声明
void Draw_Dial(); // 绘制静态的表盘
void Draw_Hand(int hour, int minute, int secend); // 绘制表针 //主函数
int main( void )
{
initgraph(, ); // 初始化一个图形界面 640*480
Draw_Dial();
setwritemode(R2_XORPEN); // 设置XOR绘图模式
SYSTEMTIME time; // 定义一个时间结构体用来保存当前的时间
while (!_kbhit())
{
GetLocalTime(&time); // 获取当前的时间
Draw_Hand(time.wHour,time.wMinute,time.wSecond); // 把表针绘制出来
Sleep(); // 间隔1秒(1000毫秒)
Draw_Hand(time.wHour, time.wMinute, time.wSecond); // 把表针绘制出来
}
closegraph(); // 关闭图形界面
return ;
} // 绘制静态的表盘
void Draw_Dial()
{
setcolor(GREEN); // 绘制边界
circle(, , ); // 画圆函数的参数:320 240坐标 160是圆的半径大小
circle(, , );
circle(, , ); // 图形界面的输出文本信息
outtextxy(, , _T("GOOD GOOD STUDY"));
outtextxy(, , _T("DAY DAY UP")); // 绘制图形刻度
setcolor(WHITE);
int x, y;
for (int i = ; i < ; i++)
{
x = + int( * sin(PI * * i / ));
y = + int( * cos(PI * * i / ));
if (i % == )
{
bar(x - , y - , x + , y + );
}
else if (i % == )
{
circle(x, y, );
}
else
{
putpixel(x, y, WHITE);
}
} // 绘制数字刻度
for (int i = ; i < ; i++)
{
sprintf_s(ch,"%d",i);
x = + int( * sin(PI * * i / ));
y = + int( * cos(PI * * i / ));
if (i % == )
{
switch (i)
{
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;;
default: break;
}
}
}
} // 绘制表针
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 * * PI / ;
h_minute = minute * * PI / + h_second / ;
h_hour = hour * * PI / + h_minute / ;
// 计算末端位置
x_second = int( * sin(h_second));
y_second=int( * cos(h_second));
x_minute = int( * sin(h_minute));
y_minute = int( * cos(h_minute));
x_hour = int( * sin(h_hour));
y_hour = int( * cos(h_hour));
// 绘制秒针
setlinestyle(PS_SOLID, ); // PS_SOILD 实线 2像素 线条的粗细
setcolor(RED);
line( + x_second, - y_second, - x_second / , + y_second / );
// 绘制分针
setlinestyle(PS_SOLID, ); // PS_SOILD 实线 2像素 线条的粗细
setcolor(YELLOW);
line( + x_minute, - y_minute, - x_minute / , + y_minute/);
// 绘制时针
setlinestyle(PS_SOLID, ); // PS_SOILD 实线 2像素 线条的粗细
setcolor(GREEN);
line( + x_hour, - y_hour, - x_hour / , + y_hour/);
}

3、编译运行

  

VC++ 制作一个简易的控制台时钟应用的更多相关文章

  1. 用XMLHttpRequest制作一个简易ajax

    概述 jquery退出历史舞台之后,我们怎么来发送ajax请求呢?可以用相关的库,也可以自己制作一个简易的ajax. 需要说明的是,我们使用的是XMLHttpRequest 2,它几乎兼容所有主流浏览 ...

  2. 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具

    查看本章节 查看作业目录 需求说明: 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具 实现思路: 使用history对象中的 forward() 方法和 ...

  3. iOS:制作一个简易的计算器

    初步接触视图,制作了一个简易的计算器,基本上简单的计算是没有问题的,不是很完美,可能还有一些bug,再接再厉. // // ViewController.m // 计算器 // // Created ...

  4. 使用Windows Form 制作一个简易资源管理器

    自制一个简易资源管理器----TreeView控件 第一步.新建project,进行基本设置:(Set as StartUp Project:View/Toolbox/TreeView) 第二步.开始 ...

  5. Opencv探索之路(二十):制作一个简易手动图像配准工具

    近日在做基于sift特征点的图像配准时遇到匹配失败的情况,失败的原因在于两幅图像分辨率相差有点大,而且这两幅图是不同时间段的同一场景的图片,所以基于sift点的匹配已经找不到匹配点了.然后老师叫我尝试 ...

  6. 通过JS制作一个简易数码时钟

    设计思路: 数码时钟即通过图片数字来显示当前时间,需要显示的图片的URL根据时间变化而变化. a.获取当前时间Date()并将当前时间信息转换为一个6位的字符串; b.根据时间字符串每个位置对应的数字 ...

  7. 使用jQuery制作一个简易的购物车结算流程

    因为今天下午时候在网上买了东西,在结算界面的时候突发奇想的也想自己动手做一个结算界面,当然了,只是一个最简易的结算界面,有商品数量的加减,有单价和小计,单个多个删除,全选和区县全选等等一些小功能,我在 ...

  8. 原生NodeJs制作一个简易聊天室

    准备工作 安装NodeJs环境 安装编译器Sublime 如果网速不理想,可以百度一下如何加快npm的速度~ 使用node搭建一个简单的网站后台 做完准备工作之后,新建文件夹chatroom,在cha ...

  9. 制作一个简易计算器——基于Android Studio实现

    一个计算器Android程序的源码部分分为主干和细节两部分. 一.主干 1. 主干的构成 计算器的布局 事件(即计算器上的按钮.文本框)监听 实现计算 2. 详细解释 假设我们的项目名为Calcula ...

随机推荐

  1. PHP引用(&)使用详解

    初学php关于&引用 官方文档: 1.引用是什么:http://www.php.net/manual/zh/language.references.whatare.php 2.引用做什么:ht ...

  2. ubuntu12.04 安装CS:APP Y86模拟器

    下的第一UBUNTU12.04下Y86模拟器的安装:(參考http://archive.cnblogs.com/a/1865627/ 作适当改动) 1.安装bison和flex词法分析工具 sudo ...

  3. 浅谈js命名空间管理

    在C# 和 Java里面我们如果想使用哪一个功能类就要引用相应的命名空间. 如C#里面有个System.Web.UI库,我们就要用using   System.Web.UI;,之后我们就可以用到Scr ...

  4. hashlib 和 hmac

    import hashlib hash = hashlib.md5([bytes('SALT_STRING', encoding='utf-8’)]) #SALT_STRING :加盐 hash.up ...

  5. wpf打开文夹和打开文件

    WPF调用WinForm中的 OpenFileDialog 和 FolderBrowserDialog 来实现响应的功能 OpenFileDialog openFileDialog = new Ope ...

  6. Alpha阶段第十次Scrum Meeting

    情况简述 Alpha阶段第十次Scrum Meeting 敏捷开发起始时间 2016/11/3 00:00 敏捷开发终止时间 2016/11/4 00:00 会议基本内容摘要 详细定义了API接口,汇 ...

  7. 学习Javascript

    分别归类为: javascript变量 javascript运算符 javascript数组 javascript流程语句 javascript字符串函数 javascript函数基础 javascr ...

  8. [Unity3d]调试问题之UI/Image不显示

    问题描述 在项目中添加的UI/Image资源,在PC和通过Unity Remove测试都没有问题: PC上的效果 手机上Unity Remove测试结果 可真正发布到手机上运行则如下显示,说明imag ...

  9. CentOS添加163源

    1.备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-B ...

  10. 再谈vim中多窗口的编辑

    参考:http://blog.csdn.net/shuangde800/article/details/11430659 很好 鼠标在各个窗口间循环移动: ctrl+w+(小写的 hjkl), &qu ...