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. onmousewheel跟onscroll的区别

    研习DOM中的事件方法,发现一些细微差别,百度一下没有类似的解答,随手记下来. onmousewheel事件  以下摘自http://help.dottoro.com/ljmracjb.php Bro ...

  2. 魔术常量__DIR__

    在PHP5.3中,增加了一个新的常量__DIR__,指向当前执行的PHP脚本所在的目录. 例如当前执行的PHP文件为 /www/website/index.php 则__FILE__等于'/www/w ...

  3. NOIP2016呵呵记

    经过了一年的想象和臆测,经历了学长们的几次考试,通过老师的言语莫名感受过了所谓oi式压力之后,自己的考试也终于到来了. 考前的生活也没有想象中的那么充实,无非跟着神犇刷刷题,讨论算法,学点新技巧,然后 ...

  4. PHP实现linux命令tail -f

    PHP实现linux命令tail -f 今天突然想到之前有人问过我的一个问题,如何通过PHP实现linux中的命令tail -f,这里就来分析实现下. 这个想一想也挺简单,通过一个循环检测文件,看文件 ...

  5. 设计模式 “续”

    观察者模式 再次申明,本文学习自 程杰 兄的 "大话设计模式" 根据书中的内容和自己的体会而来. 观察者模式也叫 发布.订阅模式,在这个模式里,一个目标物件管理所有依赖它的观察者物 ...

  6. Effective java读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己 计在16年要看12本书,主要涉及java基础.Spring研究.java并发.J ...

  7. Emgu.CV/opencv 绘图 线面文字包括中文

    绘图很简单 Emgu.CV.Image<Bgr, Byte> image;   使用image.Draw可以画各种图形和文字包括英文及数字,不支持中文   CircleF circle = ...

  8. 解决ArcGIS安装之后出现的Windows installer configures问题

    ----Please wait while Windows installer configures ArcGIS Desktop Error Message错误信息 When launching A ...

  9. 面试题目——《CC150》数组与字符串

    面试题1.1:实现一个算法,确定一个字符串的所有字符是否全都不同.假使不允许使用额外的数据结构,又该如何处理? 注意:ASCII字符共有255个,其中0-127的字符有字符表 第一种解法:是<C ...

  10. shell的一些应用场景

    列出每个IP的连接数 netstat -n | awk '/^tcp/{print $5}' | awk -F: '!/^::/{print $1}' | sort | uniq -c | sort ...