ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:29.62KB ,
资源ID:5965805      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5965805.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图形基本知识.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图形基本知识.docx

1、图形基本知识图形函数 Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics. h 中, 本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图 形窗口以及图形模式下的文本输出等函数。另外, 使用图形函数时要确保有显示 器图形驱动程序*BGI, 同时将集成开发环境Options/Linker中的Graphics lib选 为on, 只有这样才能保证正确使用图形函数。 1. 图形模式的初始化 不同的显示器适配器有不同的图形分辨率。即是同一显示器适配器, 在不同 模式下也有不同分辨率。因此, 在屏幕作图之前, 必须根据显示器适配器种类将 显示器设置成为某种图形

2、模式, 在未设置图形模式之前, 微机系统默认屏幕为文 本模式(80列, 25行字符模式), 此时所有图形函数均不能工作。设置屏幕为图形 模式, 可用下列图形初始化函数: void far initgraph(int far *gdriver, int far *gmode, char *path); 其中gdriver和gmode分别表示图形驱动器和模式, path是指图形驱动程序所 在的目录路径。有关图形驱动器、图形模式的符号常数及对应的分辨率见表2。 图形驱动程序由Turbo C出版商提供, 文件扩展名为.BGI。根据不同的图形 适配器有不同的图形驱动程序。例如对于EGA、 VGA 图形适

3、配器就调用驱动程序 EGAVGA.BGI。 表2. 图形驱动器、模式的符号常数及数值 图形驱动器(gdriver)图形模式(gmode) 色调分辨率 符号常数数值符号常数数值 CGA1CGAC00C0320*200 CGAC11C1320*200 CGAC22C2320*200 CGAC33C3320*200 CGAHI42色640*200 MCGA2MCGAC00C0320*200 MCGAC11C1320*200 MCGAC22C2320*200 MCGAC33C3320*200 MCGAMED42色640*200 MCGAHI52色640*480 EGA3EGALO016色640*200

4、 EGAHI116色640*350 EGA644EGA64LO016色640*200 EGA64HI14色640*350 EGAMON5EGAMONHI02色640*350 IBM85146IBM8514LO0256色640*480 IBM8514HI1256色 1024*768 HERC7HERCMONOHI02色720*348 ATT4008ATT400C00C0320*200 ATT400C11C1320*200 ATT400C22C2320*200 ATT400C33C3320*200 ATT400MED42色320*200 ATT400HI52色320*200 VGA9VGALO01

5、6色640*200 VGAMED116色640*350 VGAHI216色640*480 PC327010PC3270HI02色720*350 DETECT0用于硬件测试 例4. 使用图形初始化函数设置VGA高分辨率图形模式 #include int main() int gdriver, gmode; gdriver=VGA; gmode=VGAHI; initgraph(&gdriver, &gmode, c:tc); bar3d(100, 100, 300, 250, 50, 1);/*画一长方体*/ getch(); closegraph(); return 0; 有时编程者并不知道所

6、用的图形显示器适配器种类, 或者需要将编写的程序 用于不同图形驱动器, Turbo C提供了一个自动检测显示器硬件的函数,其调用 格式为: void far detectgraph(int *gdriver, *gmode); 其中gdriver和gmode的意义与上面相同。 例5. 自动进行硬件测试后进行图形初始化 #include int main() int gdriver, gmode; detectgraph(&gdriver, &gmode);/*自动测试硬件*/ printf(the graphics driver is %d, mode is %dn, gdriver, gmo

7、de);/*输出测试结果*/ getch(); initgraph(&gdriver, &gmode, c:tc); /* 根据测试结果初始化图形*/ bar3d(10, 10, 130, 250, 20, 1); getch(); closegraph(); return 0; 上例程序中先对图形显示器自动检测, 然后再用图形初始化函数进行初始化 设置, 但Turbo C提供了一种更简单的方法,即用gdriver= DETECT 语句后再跟 initgraph()函数就行了。采用这种方法后, 上例可改为: 例6. #include int main() int gdriver=DETECT,

8、 gmode; initgraph(&gdriver, &gmode, c:tc); bar3d(50, 50, 150, 30, 1); getch(); closegraph(); return 0; 另外, Turbo C提供了退出图形状态的函数closegraph(), 其调用格式为: void far closegraph(void); 调用该函数后可退出图形状态而进入文本方式(Turbo C 默认方式), 并释放 用于保存图形驱动程序和字体的系统内存。 2. 独立图形运行程序的建立 Turbo C对于用initgraph()函数直接进行的图形初始化程序, 在编译和链接 时并没有将相

9、应的驱动程序(*.BGI)装入到执行程序, 当程序进行到intitgraph() 语句时, 再从该函数中第三个形式参数char *path中所规定的路径中去找相应的 驱动程序。若没有驱动程序, 则在C:TC中去找, 如C:TC中仍没有或TC不存在, 将会出现错误: BGI Error: Graphics not initialized (use initgraph) 因此, 为了使用方便, 应该建立一个不需要驱动程序就能独立运行的可执行 图形程序,Turbo C中规定用下述步骤(这里以EGA、VGA显示器为例): 1. 在C:TC子目录下输入命令:BGIOBJ EGAVGA 此命令将驱动程序E

10、GAVGA.BGI转换成EGAVGA.OBJ的目标文件。 2. 在C:TC子目录下输入命令:TLIB LIBGRAPHICS.LIB+EGAVGA 此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。 3. 在程序中initgraph()函数调用之前加上一句: registerbgidriver(EGAVGA_driver): 该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。 经过上面处理,编译链接后的执行程序可在任何目录或其它兼容机上运行。 假设已作了前两个步骤,若再向例6中加 registerbgidriver()函数则变成: 例7

11、: #include #include int main() int gdriver=DETECT,gmode; registerbgidriver(EGAVGA_driver):/ *建立独立图形运行程序 */ initgraph( gdriver, gmode,c:tc); bar3d(50,50,250,150,20,1); getch(); closegraph(); return 0; 上例编译链接后产生的执行程序可独立运行。 如不初始化成EGA或CGA分辨率, 而想初始化为CGA分辨率,则只需要将上述 步骤中有EGAVGA的地方用CGA代替即可。 3.屏幕颜色的设置和清屏函数 对于

12、图形模式的屏幕颜色设置, 同样分为背景色的设置和前景色的设置。在 Turbo C中分别用下面两个函数。 设置背景色:void far setbkcolor( int color); 设置作图色:void far setcolor(int color); 其中color 为图形方式下颜色的规定数值, 对EGA, VGA显示器适配器, 有关 颜色的符号常数及数值见下表所示。 表3 有关屏幕颜色的符号常数表 符号常数数值含义符号常数数值含义 BLACK0黑色DARKGRAY8深灰 BLUE1兰色LIGHTBLUE9深兰 GREEN2绿色LIGHTGREEN10淡绿 CYAN3青色LIGHTCYAN1

13、1淡青 RED4红色LIGHTRED12淡红 MAGENTA5洋红LIGHTMAGENTA13淡洋红 BROWN6棕色YELLOW14黄色 LIGHTGRAY7淡灰WHITE15白色 对于CGA适配器, 背景色可以为表3中16种颜色的一种, 但前景色依赖于不同 的调色板。共有四种调色板, 每种调色板上有四种颜色可供选择。不同调色板所 对应的原色见表4。 表4 CGA调色板与颜色值表 调色板颜色值 符号常数数值0123 C00背景绿红黄 C11背景青洋红白 C22背景淡绿淡红黄 C33背景淡青淡洋红白 清除图形屏幕内容使用清屏函数, 其调用格式如下: voide far cleardevice(

14、void); 有关颜色设置、清屏函数的使用请看例8。 例8: #include #include int main() int gdriver, gmode, i; gdriver=DETECT; registerbgidriver(EGAVGA_DRIVER);/*建立独立图形运行程序*/ initgraph(&gdriver, &gmode, );/*图形初始化*/ setbkcolor(0);/*设置图形背景*/ cleardevice(); for(i=0; i=15; i+) setcolor(i);/*设置不同作图色*/ circle(320, 240, 20+i*10);/*画半

15、径不同的圆*/ delay(100);/*延迟100毫秒*/ for(i=0; i=15; i+) setbkcolor(i);/*设置不同背景色*/ cleardevice(); circle(320, 240, 20+i*10); delay(100); closegraph(); return 0; 另外, TURBO C也提供了几个获得现行颜色设置情况的函数。 int far getbkcolor(void);返回现行背景颜色值。 int far getcolor(void);返回现行作图颜色值。 int far getmaxcolor(void);返回最高可用的颜色值。 4. 基本图

16、形函数 基本图形函数包括画点, 线以及其它一些基本图形的函数。本节对这些函数 作一全面的介绍。 一、画点 1. 画点函数 void far putpixel(int x, int y, int color); 该函数表示有指定的象元画一个按color所确定颜色的点。对于颜色color的 值可从表3中获得而对x, y是指图形象元的坐标。 在图形模式下, 是按象元来定义坐标的。对VGA适配器,它的最高分辨率为 640x480, 其中640为整个屏幕从左到右所有象元的个数, 480 为整个屏幕从上到 下所有象元的个数。屏幕的左上角坐标为(0, 0), 右下角坐标为(639, 479), 水 平方向从

17、左到右为x轴正向, 垂直方向从上到下为y轴正向。TURBO C 的图形函数 都是相对于图形屏幕坐标, 即象元来说的。 关于点的另外一个函数是: int far getpixel(int x, int y); 它获得当前点(x, y)的颜色值。 2. 有关坐标位置的函数 int far getmaxx(void); 返回x轴的最大值。 int far getmaxy(void); 返回y轴的最大值。 int far getx(void); 返回游标在x轴的位置。 void far gety(void); 返回游标有y轴的位置。 void far moveto(int x, int y); 移动游标到(x, y)点, 不是画点, 在移动过程中亦画点。 void far moverel(int dx, int dy); 移动游标从现行位置(x, y)移动到(x+dx, y+dy)的位置, 移动过程中不画点。 二、画线 1. 画线函数 TURBO C提供了一系列画线函数, 下面分别叙

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1