欢迎来到天天文库
浏览记录
ID:45057050
大小:630.00 KB
页数:43页
时间:2019-11-08
《C作图与图形处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2021/7/211第十二章C作图与图形处理图形系统的初始化及基本框架图形系统中的像素与坐标常用图形函数图形方式下的文本输出函数屏幕操作函数及动画基本知识VRAM的读写2021/7/212第一节图形系统的初始化及基本框架显示器的工作方式:文本方式(默认方式)以字符为单位显示文本,一般一屏25行80列字符图形方式以像素为单位显示图形以上两种显示方式可以互相转换2021/7/213一、图形方式的初始化要作图,必须对显卡初始化,使之工作在图形方式:初始化函数:voidinitgraph(int*gdriver,int*gmode,char*driv
2、er_path)该函数在“graphics.h”中定义第一个参数对应显示适配器的类型,目前绝大多数显卡都是VGA显卡第二个参数对应显示方式(表12-1所示)第三个参数用来指明显卡驱动程序的位置,若在当前目录中,可写为“”初始化方法一:intmain(){intdriver=VGA;//VGA其实是枚举常量intmode=VGAHI;//高分辨率,见p141表initgraph(&driver,&mode,“D:\TC”);……return0;}若驱动程序在当前目录中,则可以写成:initgraph(&driver,&mode,“”);202
3、1/7/214特别说明:作图程序编译、连接后,形成可执行文件(.exe文件),此文件若拷贝到其他机器上运行,必须保证显示驱动程序在该机存在,且在指定目录中。若用:initgraph(&driver,&mode,“D:\TC”);则驱动程序应在D:TC中若用:initgraph(&driver,&mode,“”);则驱动程序应与.exe文件在同一目录通常,都是把驱动程序和可执行文件一起拷贝。2021/7/215特别说明:若不想向另外机器上拷贝驱动程序,想生成一个可独立运行的exe文件,则需按下面三步进行:1.D:tc>BGIOBJEGAV
4、GA磁盘上将生成EGAVGA.OBJ文件2.D:tc>TLIBlibgraphics.lib+egavga.obj磁盘上graphics.lib将包含驱动程序(增加4K)3.程序中,initgraph()调用前加上一行:registerbgidriver(EGAVGA_driver);2021/7/216特别说明:同样的道理,若需要不依赖于字体(英)驱动的可执行文件,也需将字体驱动连接到graphics.lib中,如:1.D:tc>BGIOBJtripD:tc>BGIOBJlitt5、>磁盘上将生成trip.obj、litt.obj文件2.D:tc>TLIBlibgraphics.lib+trip.objD:tc>TLIBlibgraphics.lib+litt.objgraphics.lib将包含字符驱动程序3.程序中,initgraph()调用前加上:registerbgifont(triplex_font);registerbgifont(small_font);2021/7/217若不知道显示器的类型,可将graphdriver置为DETECT,系统将自动检测其类型,将相应的驱动6、程序装入,并将显示模式置成最高模式初始化方法二:intmain(){intdriver=DETECT;intmode;initgraph(&driver,&mode,“”);……return0;}2021/7/2182021/7/219二、图形方式的关闭关闭图形方式,返回文本方式的函数:voidclosegraph()说明:还有一个restorecrtmode()也可以返回文本方式,两者的区别:后者在内存中保留驱动程序和字符集,暂时返回文本方式,可随时用函数setgraphmode(VGAHI)切换回图形方式,而closegraph()则是完7、全释放驱动程序和字符集。作图程序开始时,先要用initgraph()初始化,而在作图结束时,总要用closegraph()关闭图形方式,使屏幕转回文本方式,程序中的initgraph()和closegraph()总是成对出现的。初始化后的清屏:初始化后一般应清屏,使屏幕如同一张白纸,清屏函数的原型是:voidcleardevice();2021/7/21102021/7/2111三、作图程序的基本框架及实例#include//包含绘图头文件intmain(){intgdriver=DETECT;intgmode;ini8、tgraph(&gdriver,&gmode,””);cleardevice();/********************************//*此处加入绘
5、>磁盘上将生成trip.obj、litt.obj文件2.D:tc>TLIBlibgraphics.lib+trip.objD:tc>TLIBlibgraphics.lib+litt.objgraphics.lib将包含字符驱动程序3.程序中,initgraph()调用前加上:registerbgifont(triplex_font);registerbgifont(small_font);2021/7/217若不知道显示器的类型,可将graphdriver置为DETECT,系统将自动检测其类型,将相应的驱动
6、程序装入,并将显示模式置成最高模式初始化方法二:intmain(){intdriver=DETECT;intmode;initgraph(&driver,&mode,“”);……return0;}2021/7/2182021/7/219二、图形方式的关闭关闭图形方式,返回文本方式的函数:voidclosegraph()说明:还有一个restorecrtmode()也可以返回文本方式,两者的区别:后者在内存中保留驱动程序和字符集,暂时返回文本方式,可随时用函数setgraphmode(VGAHI)切换回图形方式,而closegraph()则是完
7、全释放驱动程序和字符集。作图程序开始时,先要用initgraph()初始化,而在作图结束时,总要用closegraph()关闭图形方式,使屏幕转回文本方式,程序中的initgraph()和closegraph()总是成对出现的。初始化后的清屏:初始化后一般应清屏,使屏幕如同一张白纸,清屏函数的原型是:voidcleardevice();2021/7/21102021/7/2111三、作图程序的基本框架及实例#include//包含绘图头文件intmain(){intgdriver=DETECT;intgmode;ini
8、tgraph(&gdriver,&gmode,””);cleardevice();/********************************//*此处加入绘
此文档下载收益归作者所有