上一篇:VC与Matlab接口编程之Matcom安装配置 >>
VC++中使用图形程序设计和动画技术
| 天极软件专题专区精选 到天极软件“读编交流区”畅所欲言 | |||
| Google专区 | POPO专区 | QQ专区 QQ挂机 | 了解Web2.0 |
| Flash MX 视频教程 | Photoshop视频教程 | 网页设计视频教程 | 照片处理数字暗房 |
| PPT动画演示教程 | Excel动画教程集 | Word动画演示教程 | Windows Vista专区 |
| 特洛伊木马专区 | 黑客知识教程专区 | 防火墙应用专区 | 注册表应用专区 |
| Windows API开发专区 | 网络编程专区 | VB数据库编程专区 | 图像处理与多媒体编程 |
摘要 本文以一个例子来说明Visual c++6.0中是如何使用图形程序设计和动画技术的。
关键词 C++ 程序设计 动画 函数
下面用一个例子来说明Visual c++6.0中是如何使用图形程序设计和动画技术的,这是一个图形方式的时钟程序,程序运行后以图形方式显示时钟,秒针一秒一秒地转动,该程序用到了结构型变量的指针、图形程序设计以及动画技术等一些知识,这些我们将结合程序给予说明。
图形方式的时钟程序:
| # include < time.h > //时间处理函数原型及数据结构 # include < stdio.h > //标准输入/输出函数原型及数据结构 # include <dos.h > //dos所用数据结构和函数原型 # include <conio.h > //控制台输入/输出函数原型及数据结构 # include <math.h > //数学函数原型 #include <graphics.h > //图形处理函数原型及数据结构 #define PI 3.14159 time-t l time; //类型time-t即long struct tm * pt; //pt为指向时间结构tm的指针 void showTime (void ); //函数原型声明 void main (void ) { show Time ( ); //调用图形方式显示函数 } void show time ( void ) //以图形方式显示运转的时钟 { int Rs = 100; //秒针长度 int Rc =130; //时钟外圆圈半径 double alpha =2*PT/60.0; //秒针1秒和分针1分钟所旋转的弧度数 int x,y; //时钟圆心坐标 int xSecond , ySecond ; //秒针针尖位置坐标 int driver =DETECT , mode ; //定义驱动器和模式变量并指示自动检测 //将显示器初始化为指定的图形模式: initgraph ( & driver , & mode , "c:\\BC31\\BGI\\"); x=getmaxx ( ) /2;y=getmaxy ( ) /2; //计算时钟圆心坐标 cleardevice ( ); //图形屏幕清屏 setbkcolor (WHITE ); //设置背景颜色 setlinestyle (0,1,3 ); //设置画线风格:实线,3像素宽 setcolor (LIGHTBLUE ); //设置时钟外圆圆圈的颜色 circle (x,y,Rc); //设置时钟外圆圆圈 while (!kbhit ()) //按下任一键则退出循环 { time ( & ltime ); //读取系统时间 pt=localtime ( & ltime); //转换为结构型并返回其指针 xSecond = x+Rs*cos ( pt->tm-sec*alpha-PI/2);//计算秒针针尖的位置坐标 ySecond =y+Rs*sin ( pt->tm-sec*alpha-PI/2); setcolor ( LIGHTRED ); //设置秒针的颜色 line ( x,y,xSecond,ySecond); //画秒针 delay (50); //延时50毫秒 setcolor(BLACK); //画线颜色设置为背景颜色 line(x,y, xSecond, ySecond); // 擦除秒针 } closegraph(); //关闭图形模式 } |
该程序中用到了系统定义的存储时间数据的结构型struct tm,它在头文件time.h中定义:
| struct tm{ int tm - sec; /* Seconds*/ int tm - min; /*Minutes*/ int tm - hour ; /*Hour(0- -23)*/ int tm - mday ; /*Day of month (1- -31)*/ int tm - mon ; /*Month (0- -11)*/ int tm - year ; /*Year(calendar year minus 1900)*/ int tm - wday ; /*weekday (0- -6;Sunday=0)*/ int tm - yday ; /*Day of year (0- -365)*/ int tm - isdst ; /*0 if daylight savings time is not in effect ) */ }; |
程序用系统提供的time( )函数读取系统时间,并将其存入长整型变量ltime中,该时间是一个从1970年1月1日0时0分0秒开始计时的累计秒数:
| time(<ime); |
用系统提供的localtime()函数将长整型的时间值转换为tm结构型变量的值,并返回指向该结构型变量的指针,该指针被赋值给指针变量pt:
| pt=loclatime(<ime): |
这样便于工作可以通过pt得到时间tm结构型变量中的时、分、秒的值,即pt->tm-hour、pt->tm-min、pt->tm-sec。在计算秒针针尖的位置时用了pt->tm-sec。
time()函数和localtime()函数的原型在头文件time.h中声明,因此必须用#include指令将文件time.h包含到本程序中来。
下一篇:VC环境下三菱PLC与微机的串行通信 >>
相关文章:
- · VC中利用CRC校验码为BMP图设置水印
- · COM接口在不同线程中的传递技巧两则
- · JFC/Swing活学活用之创建自定义图像组件
- · 专家称Java在WEB开发领域处境危险
- · 微软称浏览器每年都升级 IE8将在08年上市
- · 微软迎来迟到幸福 10天进账额相当于5年总和
- · IE7上市临近 微软Google口水战不断升级
- · 欧盟拟对微软展开第二轮反垄断调查
- · 微软透露新测试版本Word将支持博客功能
- · 数据挖掘开山鼻祖阿格拉瓦加盟微软
- · 微软抛上亿美元订单 软件测试人才成香饽饽
- · 微软瞄准消费安全软件市场 将冲击现有格局
- · 微软酝酿新搜索软件抗Google 夏天推测试版
- · 微软英特尔认为个人电脑时代没有结束
- · 发改委与微软签署软件产业合作谅解备忘录
- · 微软与信产部签协议 2.5亿投资农村信息化
- · Sun发布Beta 2测试版Java SE 6
- · .NET2.0中一种简单的窗口控件状态控制法
- · ASP.NET开发购物推车之购物车类
- · ASP.NET中的三种表格化数据方法
- · ASP.NET入门随想之多态、接口与委托
- · ASP.NET入门随想之明明白白我的心
- · COM组件设计与应用之编译、注册、调用
- · COM 组件设计与应用之数据类型
- · COM组件设计与应用之.NET中用ATL写组件
- · MATCOM在VC++与MATLAB混合编程中的应用
- · COM组件设计与应用之实现多接口
- · 美军为防黑客入侵禁用商业电子邮箱
- · Oracle中使用PL/SQL操作COM对象
- · 驯服Tiger之访问环境变量和调用子进程
- · VC++初学者经典错误LNK2001详解
- · ODBC中的FX/Bulk RFX数据交换机制分析
- · Visual C++中DDB与DIB位图编程全攻略
- · 泛型与模板的有机结合 STL.NET简介
- · 用VC实现特定编辑框上对回车键响应
- · 用Visual C# 实现四则混合运算
- · C#中利用mediaplayer打造mp3播放器
- · C#开发的两个原则的深入讨论
