




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
附录C 图形函数函数名:initgraph功 能:gdriver和gmode分别表示图形驱动器和图形模式,path是指图形驱动程序所在的目录路径。用 法:void far initgraph(int far *gdriver, int far *gmode, char *path);在这里必须在path目录下找到一个对应于gdriver的文件扩展名为.BGI的图形驱动程序(c语言编译器提供了对应各类适配器的不同图形驱动程序),然后对其设置模式gmode。图形驱动器通常在TC根目录下或者根目录下面的BGI目录,以下给出一些图形驱动文件列表:ATT.BGICGA.BGI(CGA模式)EGAVGA.BGI(EGAVGA模式)HERC.BGIIBM8514.BGIPC3270.BGI 事实上现在我们最常用的是EGAVGA.BGI图形驱动文件,相对于其它几个图形驱动文件它出现的时间比较晚,因此所能达到的图形模式分辨率和色彩相对就更加高。以下给出图形驱动器、模式的符号常数及数值:图形驱动器(gdriver)图形模式(gmode)色彩分辨率符号常数数值符号常数数值CGA1CGAC00C0320*200CGAC11C1320*200CGAC22C2320*200CGAC33C3320*200CGAHI42色640*200MCGA2MCGAC00C0320*200MCGAC11C1320*200MCGAC22C2320*200MCGAC33C3320*200MCGAMED42色640*200MCGAHI52色640*480EGA3EGALO016色640*200EGAHI116色640*350EGA644EGA64LO016色640*200EGA64HI14色640*350EGAMON5EGAMONHI02色640*350IBM85146IBM8514LO0256色640*480IBM8514HI1256色1024*768HERC7HERCMONOHI02色720*348ATT4008ATT400C00C0320*200ATT400C11C1320*200ATT400C22C2320*200ATT400C33C3320*200ATT400MED42色320*200ATT400HI52色320*200VGA9VGALO016色640*200VGAMED116色640*350VGAHI216色640*480PC327010PC3270HI02色720*350DETECT0硬件测试函数名:closegraph功能:关闭图形模式用法:void far closegraph(viod)调用该函数后即退出图形状态而进入文本方式,并释放用于保存图形驱动程序和字体的系统内存。还需要补充一点的是我们可以采用另一个函数同样达到让硬件自动检测图形驱动器和模式的效果,其调用格式为:函数名: detectgraph功能: 通过检测硬件确定图形驱动程序和模式用法: void far detectgraph( int far *graphdriver, int far *gmode) 画点函数函数名: putpixel功 能: 在指定位置画一像素用 法: void far putpixel (int x, int y, int pixelcolor);函数名: getpixel功 能: 取得指定像素的颜色用 法: int far getpixel(int x, int y);坐标位置的函数 函数名: getmaxx功 能: 返回屏幕的最大x坐标用 法: int far getmaxx(void);函数名: getmaxy功 能: 返回屏幕的最大y坐标用 法: int far getmaxy(void);函数明: getx功 能: 返回当前图形位置的x坐标用 法: int far getx(void);函数名: gety功 能: 返回当前图形位置的y坐标用 法: int far gety(void);函数名: moveto功 能: 将CP移到(x, y)用 法: void far moveto(int x, int y);函数名: moverel功 能: 将当前位置(CP)移动一相对距离用 法: void far moverel(int dx, int dy);画线函数函数名: line功 能: 在指定两点间画一直线用 法: void far line(int x0, int y0, int x1, int y1);函数名:lineto功能:画一作从现行光标到点(x, y)的直线 用法:void far lineto(int x, int y);函数名: linerel功 能: 从当前位置点(CP)到与CP有一给定相对距离的点画一直线用 法: void far linerel(int dx, int dy);函数名: circle功 能: 在给定半径以(x, y)为圆心画圆用 法: void far circle(int x, int y, int radius);函数名: arc功 能: 画一弧线用 法: void far arc( int x,int y,int stangle,int endangle, int radius );函数名: ellipse功 能: 画一椭圆用 法: void far ellipse( int x, int y, int stangle, int endangle, int xradius, int yradius);函数名: rectangle功 能: 画一个矩形用 法: void far rectangle( int left, int top, int right, int bottom );函数名: drawpoly功 能: 画多边形用 法: void far drawpoly( int numpoints, int far *polypoints );线型函数函数名: setlinestyle功 能: 设置当前画线宽度和类型用 法: void far setlinestyle( int linestype, unsigned upattern, int thickness);有关线的形状(linestyle) :符号常数数值含义SOLID_LINE0实线DOTTED_LINE1点线CENTER_LINE2中心线DASHED_LINE3点画线USERBIT_LINE4用户定义线有关线宽(thickness): 符号常数数值含义NORM_WIDTH1一点宽THIC_WIDTH3三点宽函数名: getlinesettings功 能: 取当前线型、模式和宽度用 法: void far getlinesettings( struct linesettingstype far *lininfo );该函数将有关线的信息存放到由lineinfo 指向的结构中,表中linesettingstype的结构如下: struct linesettingstype int linestyle; unsigned upattern; int thickness; 例如下面两句程序可以读出当前线的特性 struct linesettingstype *info; getlinesettings(info); 函数名: setwritemode功 能: 设置图形方式下画线的输出模式用 法: void far setwritemode(int mode); 如果mode=0,则表示画线时将所画位置的原来信息覆盖了(复制模式)。如果mode=1,则表示画线时用现在特性的线与所画之处原有的线进行异或(XOR)操作,实际上画出的线是原有线与现在规定的线进行异或后的结果。因此,异或模式下当线的颜色不变的时候,进行两次画线操作相当于没有画线。这一功能将在下一章“简单动画”中得到充分使用。图形填充函数函数名: bar功 能: 画一个二维条形图用 法: void far bar(int left,int top,int right,int bottom);函数名: bar3d功 能: 画一个三维条形图用 法: void far bar3d( int left, int top, int right, int bottom, int depth, int topflag);函数名: pieslice功 能: 绘制并填充一个扇形用 法: void far pieslice( int x, int stanle, int endangle, int radius );函数名: sector功 能: 画并填充椭圆扇区用 法: void far sector( int x, int y, int stangle, int endangle );填充方式函数名: setfillstyle功 能: 设置填充模式和颜色用 法: void far setfillstyle(int pattern, int color);color的值是当前屏幕图形模式时颜色的有效值。pattern的值及与其等价的符号常数。 关于填充式样pattern的规定:符号常数数值含义EMPTY_FILL0以背景颜色填充SOLID_FILL1以实填充LINE_FILL2以直线填充LTSLASH_FILL3以斜线填充(阴影线)SLASH_FILL4以粗斜线填充(粗阴影线)BKSLASH_FILL5以粗反斜线填充(粗阴影线)LTBKSLASH_FILL6以反斜线填充(阴影线)HATCH_FILL7以直方网格填充XHATCH_FILL8以斜网格填充INTTERLEAVE_FILL9以间隔点填充WIDE_DOT_FILL10以稀疏点填充CLOSE_DOS_FILL11以密集点填充USER_FILL12以用户定义式样填充 除USER_FILL(用户定义填充式样)以外,其它填充式样均可由setfillstyle()函数设置。当选用USER_FILL时, 该函数对填充图模和颜色不作任何改变。之所以定义USER_FILL主要因为在获得有关填充信息时用到此项。 函数名: setfillpattern功 能: 选择用户定义的填充模式用 法: void far setfillpattern( char far *upattern, int color ); 其中upattern是一个指向8个字节的指针。这8个字节定义了8x8点阵的图形。每个字节的8位二进制数表示水平8点,8个字节表示8行,然后以此为模型向个封闭区域填充。函数名: getfillpattern功 能: 将用户定义的填充模式拷贝到内存中用 法: void far getfillpattern(char far *upattern);函数名:getfillsetings功 能:获得现行图模的颜色并将存入结构指针变量fillinfo中用 法:viod far getfillsetings(struct linesettingstype far *lineinfo); 其中fillsettingstype结构定义如下: struct fillsettingstype int pattern; / 现行填充模式 int color; / 现行填充模式 ;函数名: floodfill功 能: 填充一个有界区域用 法: void far floodfill(int x, int y, int border);x,y为封闭图形内的任意一点。border为边界的颜色,也就是封闭图形轮廓的颜色。调用了该函数后, 将用规定的颜色和图模填满整个封闭图形。 使用这个函数有几点需要注意:1.不能对边界点进行填充; 2.不封闭的图形将溢出到其外的封闭图区域,若其外没有封闭区域,以屏幕为封闭区域,填充整个屏幕; 3.点在图形外面,则填充封闭图形外的屏幕区域; 4.border的颜色值必须与图形边框颜色值相同。文本输出函数函数名: outtext功 能: 在视区显示一个字符串用 法: void far outtext(char far *textstring);函数名: outtextxy功 能: 在指定位置显示一字符串用 法: void far outtextxy(int x, int y, char *textstring); 由于没有中文平台的支持,所以*textstring通常只能是英文字符串。函数名: settextjustify功 能: 为图形函数设置文本的对齐方式用 法: void far settextjustify(int horiz, int vert);outtextxy()函数指定了字符串输出的初始位置(x,y),可是,比如对于字符串Game来说,初始位置(x,y)到底是对应G的左上角、左下角还是中间这需要由settextjustify()函数来规定。settextjustify()函数,将字符串按垂直方向可分为顶部, 中部和底部三个位置, 水平方向可分为左, 中, 右三个位置, 两者结合就有9个位置。请注意,这里的位置是针对字符串(如:Game)而不是第一个字母(如:G)而言的。settextjustify()函数的第一个参数horiz是指水平方向,第二个参数vert是指垂直方向,两个参数都有3个值可供选择,其实也就是各自选择三个位置中的一个,二者以结合就确定了其中一个位置对应于初始位置(x,y)。函数中各个参数的规定见下列各表所示:参数horiz和vert的取值 (修改):符号常数数值用于LEFT_TEXT0水平RIGHT_TEXT2水平BOTTOM_TEXT0垂直TOP_TEXT2垂直CENTER_TEXT1水平或垂直配图函数名: settextstyle功 能: 为图形输出设置当前的文本属性用 法: void far settextstyle ( int font, int dire
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路工程安全生产管理方案
- 住宅施工现场物资管理方案
- 养老院安全防护与应急响应方案
- 2025辽宁恒力石化招聘备考练习题库及答案解析
- 2025湖北交投集团部分子公司管理岗位遴选88人考试参考试题及答案解析
- 城市更新停车位与出行引导方案
- 2025年葫芦岛市连山区公开选调教师22人考试参考试题及答案解析
- 物业会计题库及答案
- 装修劳动力资源配置方案
- 2025中考政治试卷及答案
- 2025年度房屋拆迁补偿安置房买卖协议
- 2025西电考试题及答案
- 南昌市小学二年级 2025-2026 学年数学秋季开学摸底测试卷(人教版)含解读答案
- 2025年先兆流产的护理查房
- 电子竞技赛事策划与组织运营管理方案设计
- 人教版(2024)八年级上册数学全册教案
- 2025年智慧城市信息化运维服务合作合同模板
- 职工职业健康体检实施方案与标准
- 2025年多省公务员联考公安基础知识考试真题(附答案)
- 2025年税务副科领导干部面试题及答案
- 基孔肯雅热培训测试题含答案
评论
0/150
提交评论