内容正文:
项目十一 图形模式及图形函数──电子时钟
学习目标
了解图形模式的概念。
了解一些常用图形函数的使用方法。
了解系统时间的获取。
本项目开发一个能够显示当前时间,用图形化的方式显示会走动的钟表的程序。
项目十一
图形模式及图形函数──电子时钟
项目十一
图形模式及图形函数──电子时钟
任务一 获取系统时间,并以文本形式显示2
任务二 绘制表盘
任务三 绘制表盘上的数字
任务四 绘制时针、分针和秒针,让时钟走起来
任务一 获取系统时间,并以文本形式显示
C语言的头函数“dos.h”中定义了结构体类型“time”表示时间;
定义了函数gettime获取当前系统时间。
获取系统时间,并以文本形式显示
#include<dos.h> /* 加载头函数dos.h */
#include<stdio.h>
void main()
{
struct time t; /* 定义结构体变量t,类型为time */
gettime(&t); /* 利用gettime()函数获取系统时间,结构体t指向时间 */
printf("The current time is: %2d:%02d:%02d.%02d
",t.ti_hour, t.ti_min,t.ti_sec, t.ti_hund);
}
/* 成员变量t.ti_hour为当前时间中的小时 ,成员变量t.ti_min为当前时间中的小时 ,成员变量t.ti_sec为当前时间中的小时 ,成员变量t.ti_hund为当前时间中的小时 */
任务二 绘制表盘
要能使用TC2.0绘制图形,首先必须了解TC的图形模式和TC的图形库函数。
TC 2.0与图形接口
一般的IBM PC型显示器可以在两种基本视频模式下工作,一种是图形方式,另一种是文本方式。
文本方式即常见的命令行方式,屏幕上可以显示的最小单位是“字符”。常用的VGA显示适配器,可以显示80列50行的文本。
图形方式下,屏幕上每一个可以控制的单元叫做“像素”(pixel),它是组成图形的基本元素,一般称为“点”。
任务二 绘制表盘
通常把屏幕上所包含的像素的个数叫做分辨率。分辨率越高,显示的图形越细致,质量越好。VGA显示器的分辨率为“640×480”,即VGA在水平方向上有640个像素,垂直方向上有480个像素。
在图形方式下,屏幕上每个像素的显示位置用点坐标系来描述。在这种坐标系中,屏幕左上角为坐标的原点(0,0),水平方向为x轴,自左向右递增。垂直方向为y轴,自上向下递增,如图11-2所示。
在TC中,坐标数据可以用两种形式给出,一种是绝对坐标,另一种是相对坐标。绝对坐标的参考点是坐标系的原点(0,0),x值和y值只能取规定范围内的正整数,其坐标值在整个屏幕范围内确定。相对坐标是相对于当前点的坐标,所以其坐标的参考点是当前点。在相对坐标中,x和y的取值是相对于当前点在x方向和y方向上的增量,这个增量可以是正的,也可以是负的。
任务二 绘制表盘
TC 图形库函数
TC 2.0具有70多个图形库函数,因此其图形功能极为丰富。所有这些库函数均在头文件“graphics.h”中定义,所以,凡是在程序中要调用这些图形函数,都必须在程序文件的开头写上文件包含命令“#include<graphics.h>”。
TC 2.0的图形库函数主要有6大类:图形系统管理、屏幕管理、绘图函数、图形属性控制、填充和图形方式下的文本操作。
任务二 绘制表盘
图形系统管理
① 图形方式初始化:
图形方式初始化通过函数initgraph来完成。
其调用格式为:
initgraph(*gdriver,*gmode,*path)
函数initgraph是通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将系统设置为图形方式。
“gdriver”是一个整数值,用来指定要装入的图形驱动程序。
“gmode”是一个整数值,用来设置图形显示模式。
“path”是一个字符串,用来指明图形驱动程序所在的路径。
② 关闭图形方式:
关闭图形方式要调用closegraph函数。其调用格式为:
closegraph();
绘图函数
常用的绘图函数有以下几种。
①“line()”函数:line函数用于在指定两点之间画一条线段:
line(int x1,int y1,int x2,int y2)
②“circle()”函数:circle函数用于以指定的圆心和半径画圆:
circle(int x,int y,int r)
③“rectangle()”函数:rectangle函数用于在指定位置画一个矩形:
rect