Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14517730
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:00:40

下载本文示例代码
  下面用一个例子来说明Visual c 6.0中是如何使用图形程序设计和动画技术的,这是一个图形方式的时钟程序,程序运行后以图形方式显示时钟,秒针一秒一秒地转动,该程序用到了结构型变量的指针、图形程序设计以及动画技术等一些知识,这些我们将结合程序给予说明。  图形方式的时钟程序: # include < time.h > //时间处理函数原型及数据结构# include < stdio.h > //标准输入/输出函数原型及数据结构# include //dos所用数据结构和函数原型# include //控制台输入/输出函数原型及数据结构# include //数学函数原型#include //图形处理函数原型及数据结构#define PI 3.14159time-t l time;           //类型time-t即longstruct 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包含到本程序中来。   下面用一个例子来说明Visual c 6.0中是如何使用图形程序设计和动画技术的,这是一个图形方式的时钟程序,程序运行后以图形方式显示时钟,秒针一秒一秒地转动,该程序用到了结构型变量的指针、图形程序设计以及动画技术等一些知识,这些我们将结合程序给予说明。  图形方式的时钟程序: # include < time.h > //时间处理函数原型及数据结构# include < stdio.h > //标准输入/输出函数原型及数据结构# include //dos所用数据结构和函数原型# include //控制台输入/输出函数原型及数据结构# include //数学函数原型#include //图形处理函数原型及数据结构#define PI 3.14159time-t l time;           //类型time-t即longstruct 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 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术VC 中使用图形程序设计和动画技术
阅读(58) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~