在该随笔中将介绍一些GDI的绘图函数,以加深您对于程序绘图的认识。
1、文字输出 窗口画面上的文字输出比后面所要介绍的几个绘图函数还要重要,因为在程序设计时,可能有时需要在画面上显示一些数据和信息,以利于程序本身的追踪与排错。
范例ch2_2:根据鼠标的移动,将光标所在位置的坐标值显示在窗口中。
下载:
ch2_2(上传到windows live空间,可能需要MSN账号登陆)
说明:程序源代码中有相关的注释。
运行结果如下图:
2、多边形函数 下表中给出了GDI函数中关于多边形的绘图函数:
函数名称
|
说明
|
Polygon
|
绘制封闭多边形
|
PolyLine
|
绘制多边线条
|
PolylineTo
|
以当前画笔所在位置绘制多边线条
|
PolyPolygon
|
绘制多个封闭多边形
|
PolyPolyline
|
绘制多个多边线条
|
以上几个函数的使用方法大同小异,以Polygon()函数来做说明。
BOOL Polygon(HDC hdc, CONST POINT 点数组指针, int 多边形点数); //绘制多边形
第2个参数输入的是一个POINT结构的数组指针,POINT可用于描述一个坐标点,其结构如下:
typedef struct tagPOINT{
LONG x; // X坐标
LONG y; // Y坐标
} POINT;
范例ch2_3:展示多边形绘制函数的用法,并在窗口中绘制多边形。
下载:
ch2_3(上传到windows live空间,可能需要MSN账号登陆)
说明:程序源代码中有相关的注释。
运行结果如下图:
3、封闭图形函数
下边再来讨论一下封闭几何图形的绘制方法,“
画笔与画刷”随笔中介绍了画矩形的Rectangle()函数,现在再来看看画椭圆形的GDI函数。
BOOL Ellipse( HDC hdc, //绘制椭圆形
int 外围矩形左上点X坐标,
int 外围矩形左上点Y坐标,
int 外围矩形右下点X坐标,
int 外围矩形右下点Y坐标);
上面的函数说明确定一个外围矩形就可以产生椭圆形。
下面再来看看绘制圆角矩形的函数。
BOOL RoundRect( HDC hdc, //绘制圆角矩形
int 外围矩形左上点X坐标,
int 外围矩形左上点Y坐标,
int 外围矩形右下点X坐标,
int 外围矩形右下点Y坐标
int 圆角上椭圆长,
int 圆角上椭圆高);
在这个函数中,除了给定外围矩形的坐标外,还给定了圆角上椭圆的长与高,用来表示圆角的弧度。
最后来说明绘制扇形(Pie)与弓形(Chord)函数,扇形与弓形都是椭圆的一部分。
扇形与弓形都有连接的起点与终点,不同之处在于,扇形还会与椭圆的中心点相连接,而弓形则直接连接起点与终点。绘制扇形的函数为Pie(),绘制弓形的函数则为Chord(),两者输入的参数意义都相同,下面以Pie()函数为例来进行说明。
BOOL Pie ( HDC hdc, //绘制扇形
int 外围矩形左上点X坐标,
int 外围矩形左上点Y坐标,
int 外围矩形右下点X坐标,
int 外围矩形右下点Y坐标,
int 起点X坐标,
int 起点Y坐标,
int 终点X坐标,
int 终点Y坐标);
范例ch2_4:显示封闭图形绘制函数的用法,并在窗口中绘制不同图形。
下载:
ch2_4(上传到windows live空间,可能需要MSN账号登陆)
说明:程序源代码中有相关的注释。
运行结果如下图:
PS:如想获得更多关于Visual C++游戏开发的内容,可点击随笔
:《Visual C++游戏编程基础》学习笔记——索引随笔。