vc6画图剖析

上传人:今*** 文档编号:105924111 上传时间:2019-10-14 格式:DOC 页数:30 大小:317.50KB
返回 下载 相关 举报
vc6画图剖析_第1页
第1页 / 共30页
vc6画图剖析_第2页
第2页 / 共30页
vc6画图剖析_第3页
第3页 / 共30页
vc6画图剖析_第4页
第4页 / 共30页
vc6画图剖析_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《vc6画图剖析》由会员分享,可在线阅读,更多相关《vc6画图剖析(30页珍藏版)》请在金锄头文库上搜索。

1、第一章 VC6.0简单绘图说明许多学编程的都是从 C 语言开始入门的,而目前的现状是:有些学校以 Turbo C 为环境讲 C 语言,只是 Turbo C 的环境实在太老了,复制粘贴都很不方便。有些学校直接拿 VC 来讲 C 语言,因为 VC 的编辑和调试环境都很优秀,并且 VC 有适合教学的免费版本。可惜在 VC 下只能做一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。初学编程想要绘图就得用 TC,很是无奈。 还有计算机图形学,这门课程的重点是绘图算法,而不是 Windows 编程。所以,许多老师不得不用 TC 教学,因为 Windows 绘

2、图太复杂了,会偏离教学的重点。新的图形学的书有不少是用的 OpenGL,可是门槛依然很高。要给初学者一个简单的学习平台,就要VC的开发平台和TC的简单的绘图功能,于是就有了这个 EasyX 库,我们需要在VC下下载安装EasyX库,下载地址:http:/ 系统支持操作系统版本:Windows 2000 及以上系统。编译环境版本:Visual C+ 6.0 / 2008(x86 & x64) / 2010(x86 & x64)。2. 安装请先将下载的压缩包解压缩,然后执行 Setup.hta,并跟随提示安装。安装程序会检测已经安装的 VC 版本,并根据选择将对应的 .h 和 .lib 文件安装至

3、 VC 的 include 和 lib 文件夹内。安装程序不会修改注册表或者本机的任何文件。如果需要手动安装,请根据下面的文件列表说明将安装包里的相关文件分别复制到 VC 对应的 include 和 lib 文件夹内,或者将 include 和 lib 文件夹放到任意位置,然后修改 VC 中的 Lib 和 Include 的引用路径。3. 卸载由于安装程序并不改写注册表,因此在“添加删除程序”中不会看到 EasyX 的卸载项。如需卸载,请执行相应版本的 Setup.hta,并根据提示卸载4. 文件列表说明下载的压缩包里文件列表及对应说明如下:压缩包 include graphics.h/* 程

4、序需要引用的头文件*/ lib amd64 graphicsw.lib /* VC2008 / VC2010 MBCS 库文件(x64) */ graphicswu.lib/* VC2008 / VC2010 Unicode 库文件(x64) */ graphics.lib/* VC6 MBCS 库文件*/ graphicsu.lib /* VC6 Unicode 库文件*/ graphicsw.lib /* VC2008 / VC2010 MBCS 库文件(x86) */ graphicswu.lib/* VC2008 / VC2010 Unicode 库文件(x86) */ EasyX_H

5、elp.chm/* 帮助文件*/ Setup.hta /* 安装程序项目依赖*/使用上,基本和 Turbo C 没太大区别。启动 Visual C+,创建一个控制台项目(Win32 Console Application),然后添加一个新的代码文件(.cpp),并引用 graphics.h 头文件就可以了。来看一个简单例子:【例2-1】画一个圆。#include /* 就是需要引用这个图形库*/#include void main() initgraph(640, 480); /* 这里和 TC 略有区别*/ circle(200, 200, 100); /* 画圆,圆心(200, 200),

6、半径 100*/ getch(); /* 按任意键继续*/ closegraph(); /* 关闭图形界面*/TC绘图有不少区别的,比如颜色上,TC 只有 16 色,而这个库支持了真彩色。还有,这个库增加了鼠标、批量绘图、读取图片(点阵或矢量)等功能。2.1几个基本概念1. 颜色EasyX 使用 24bit 真彩色,不再支持调色板模式。表示颜色有以下几种办法:1) 用预定义颜色常量,如下表所示:常量值颜色常量值颜色BLACK0黑DARKGRAY0x545454深灰BLUE0xA80000蓝LIGHTBLUE0xFC5454亮蓝GREEN0x00A800绿LIGHTGREEN0x54FC54亮绿

7、CYAN0xA8A800青LIGHTCYAN0xFCFC54亮青RED0x0000A8红LIGHTRED0x5454FC亮红MAGENTA0xA800A8紫LIGHTMAGENTA0xFC54FC亮紫BROWN0x0054A8棕YELLOW0x54FCFC黄LIGHTGRAY0xA8A8A8浅灰WHITE0xFCFCFC白表 21预定义颜色常量2) 用 16 进制的颜色表示,形式为:0xbbggrr (bb=蓝,gg=绿,rr=红)3) 用 RGB 宏合成颜色。详见 RGB。4) 用 HSLtoRGB、HSVtoRGB 转换其它色彩模型到 RGB 颜色。详见 HSLtoRGB、HSVtoRGB

8、。以下是部分设置前景色的方法:setcolor(0xff0000);setcolor(BLUE);setcolor(RGB(0, 0, 255);setcolor(HSLtoRGB(240, 1, 0.5);2. 坐标在 EasyX 中,坐标分两种:逻辑坐标和物理坐标。1) 逻辑坐标逻辑坐标是在程序中用于绘图的坐标体系。坐标默认的原点在屏幕的左上角,X 轴向右为正,Y 轴向下为正,度量单位是像素。坐标原点可以通过 setorigin() 函数修改;坐标轴方向可以通过 setaspectratio() 函数修改;缩放比例可以通过 setaspectratio() 函数修改。在本书中,凡是没有注明

9、的坐标,均指逻辑坐标。2) 物理坐标物理坐标是描述设备的坐标体系。坐标原点在屏幕的左上角,X 轴向右为正,Y 轴向下为正,度量单位是像素。坐标原点,坐标轴方向,缩放比例都不能改变。3. 设备所谓“设备”,简单来说,就是绘图表面。在 EasyX 中,设备分两种,一种是默认的绘图窗口,另一种是 IMAGE 对象。通过 SetWorkingImage() 函数可以设置当前用于绘图的设备。设置当前用于绘图的设备后,所有的绘图函数都会绘制在该设备上。2.2函数说明EasyX 函数共分以下几大类:1. 绘图环境相关函数;2. 颜色表示及相关函数;3. 绘制图形相关函数;4. 文字输出相关函数;5. 图像处

10、理相关函数;6. 鼠标相关函数;7. 其它函数。函数的详细说明详见附录A。2.3简单绘图【例2-2】实现一个简单绘图。#include /* 绘图库头文件,绘图语句需要*/#include /* 控制台输入输出头文件,getch()语句需要*/void main()initgraph(640, 480);/* 初始化640x480的绘图屏幕*/line(200, 240, 440, 240);/* 画线(200,240) - (440,240) */line(320, 120, 320, 360);/* 画线(320,120) - (320,360) */getch();/* 按任意键*/cl

11、osegraph();/* 关闭绘图屏幕*/说明:1. 创建的绘图屏幕640x480,表示横向有640个点,纵向有480个点。注意:左上角是原点(0,0),也就是说,y轴和数学的y轴是相反的。2. getch实现按任意键功能,按任意键后,程序继续执行。否则,程序会立刻执行closegraph以至于看不到绘制的内容。【练习题】1) 用线条画出更多的图形,要求不少于10条直线,并熟悉调试过程。2.4常用的绘图语句1. 常用的绘图语句line(x1, y1, x2, y2); /* 画直线 (x1,y1)-(x2,y2),都是整型*/circle(x, y, r); /* 画圆,圆心为(x,y),半

12、径为r*/putpixel(x, y, c); /* 画点(x,y),颜色c*/还有很多,如画椭圆、圆弧、矩形、多边形,等等,请参考2.2节函数说明。2. 设置颜色setcolor(c); /* 设置绘图颜色,如setcolor(RED)设置为红色等*/常用的颜色常量可以用:BLACK 黑 DARKGRAY 深灰 BLUE 蓝 LIGHTBLUE 亮蓝 GREEN 绿 LIGHTGREEN 亮绿 CYAN 青 LIGHTCYAN 亮青 RED 红 LIGHTRED 亮红 MAGENTA 紫 LIGHTMAGENTA 亮紫 BROWN 棕 YELLOW 黄 LIGHTGRAY 浅灰 WHITE

13、白3. 配出更多的颜色颜色除了前面写的16种以外,还可以自由配色。格式:RGB(r, g, b)r / g / b 分别表示红色、绿色、蓝色,范围都是0255。例如,RGB(255,0,0) 表示纯红色。红色和绿色配成黄色,因此 RGB(255,255,0) 表示黄色。嫌调色麻烦可以用画笔里面的调色试试,调好了以后直接将数值抄过来就行。例如,画两条红色浓度为200的直线,可以写:setcolor(RGB(200,0,0);line(100,100, 200,100);line(100,120, 200,120);4. 用数字表示颜色除了用RGB(r,g,b)方式外,还可以用16进制表示颜色,格

14、式:0xrrggbb例如,setcolor(0xff0000) 和 setcolor(RGB(255,0,0) 是等效的。5. 延时语句这个很简单 Sleep(n) 就可以表示 n 毫秒的延时。例如延时3秒,可以用 Sleep(3000);【练习题】1) 绘制更丰富的图形内容,不低于20行。2) 将延时语句适当的插入上一小节的练习题的代码中,看看执行效果。2.5结合流程控制语句来绘图1. 熟练使用循环语句来控制程序流程。【例2-3】使用for循环语句画10条直线。#include #include void main() initgraph(640, 480); for(int y=100; y200; y+=10) line(100, y, 300, y); getch(); closegraph

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号