天天看点

(2)C语言常用图形函数,常用C语言图形函数

TurboC绘图程序设计 图形显示器的工作方式 IBMPC机的显示器可以在两种基本视频方式下工作 文本方式 图形方式 1 文本方式 屏幕上可以显示的最小单位是字符 字符在屏幕上以行 列排列 如25 80个字符 2 图形方式 屏幕上可以控制的最小单元称作像素 pixel 它是组成图形的基本元素 在图形方式下 屏幕上每个像素的显示位置用屏幕坐标系来描述 在该坐标系中 屏幕左上角为坐标系的原点 坐标值为 0 0 屏幕坐标系 坐标值的范围决定于所用显示器的分辨率 图形函数及其用法TurboC的图形函数均在一个头文件 graphics h 中定义 所以 凡是在程序中要调用这些图形函数 都必须在源程序的开头写上文件包含命令 include TC绘图程序 图形系统初始化绘图关闭图形模式 图形方式初始化通过从磁盘上装入一个图形驱动程序来初始化图形系统 并将系统设置为图形模式 其调用格式为 initgraph 若gdriver DETECT 则由系统自动检测图形适配器的最高分辨率模式 并装入相应的图形驱动程序 path是一个字符串 用来指明图形驱动程序所在的路径 若图形驱动程序在用户当前目录下 则path为空串 举例 intgdriver DETECT gmode initgraph 关闭图形模式closegraph LINE函数 在指定两点之间画直线 如 line x1 y1 x2 y2 MOVETO函数 移到指定点 不画线 如 moveto x y CIRCLE函数 指定圆心和半径画圆 如 circle xc yc r ARC函数 画一段圆弧 要求指定圆弧所在圆的圆心 半径 以及圆弧的起始角度和终止角度 如 arc xc yc angs ange r RECTANGLE函数 指定矩形的左上角和右下角画一个矩形 如 rectangle x1 y1 x2 y2 DRAWPOLY函数 画一条多边折线 如 drawpoly n p 其中 n为多边折线的顶点数 p为存放顶点坐标值的数组名 数组元素个数为2 n 如果首尾两点重合 则可以绘制一个多边形 例如 include graphics h main intgdriver gmode staticintp 8 10 20 150 150 200 30 10 20 gdriver DETECT initgraph 关闭图形系统 返回文本方式 图形的属性指颜色和线型 颜色又分为背景色和前景色 系统的默认值为 背景色为黑色 前景色为白色 线型为实线 setbkcolor 背景色 设置背景色如 setbkcolor BLUE 设置背景色为兰色setbkcolor 12 设置背景色为12号色setcolor 画笔色 设置画笔色如 setcolor YELLOW 设置画笔色为黄色setcolor 5 设置画笔色为5号色注意 背景色和画笔色可以是名字或数字 见下表 表 putpixel x y color 在 x y 处以color色画一点例 putpixel 10 20 RED 在 10 20 处画一红点getpixel x y 得到 x y 处的颜色值例 if getpixel 300 270 7 outtextxy x y 字符串 从 x y 处开始显示字符串例 outtextxy 10 20 ABCF 在 10 20 处显示ABCF setfillstyle p color 设置填充模式p 取值为0 12 及填充色color floodfill x y bcolor 从 x y 开始 用setfillstyle设置好的填充模式及填充色向四周填充 直到边界 边界色为bcolor 为止 例 setcolor RED circle 300 200 50 setfillstyle 2 GREEN floodfill 300 200 RED 从 300 200 开始 按setfillstyle设置的模式及颜色开始填充 一直到红色边界 圆周边界 才停止 bar x1 y1 x2 y2 由setcolor设置的颜色画一个矩形 并自动按setfillstyle设置的模式及颜色对矩形填充 矩形的左上角坐标 x1 y1 矩形的右下角坐标 x2 y2 pieslice x y a1 a2 r 由setcolor设置的颜色画一个扇形 并自动按setfillstyle设置的模式及颜色对扇形填充 起始角度a1 终止角度a2 圆心 x y 半径r 下面是与动画有关的几个函数 getimage x1 y1 x2 y2 p 将屏幕左上角 x1 y1 右下角 x2 y2 的矩形区域内的图象存到指针P所指向的内存区域中 putimage x y p op 将p所指向的内存区域的内容在屏幕上显示 左上角坐标 x y op 0 预先对屏幕不进行任何操作 1 预先对屏幕进行 异或 操作 2 预先对屏幕进行 或 操作 3 预先对屏幕进行 与 操作 4 预先对缓冲区内容进行求 反 操作 imagesize x1 y1 x2 y2 返回保存位图象所需的字节数 例 图形移动 一个矩形块水平右移 include graphics h include stdlib h main void w intdriver DETECT mode i initgraph 屏幕管理 setviewport x1 y1 x2 y2 c 设置视图区 x1 y1 为视图区的左上角坐标 x2 y2 为视图区的右下角坐标 c为裁剪状态参数 当c 1时 则超出视图区的图形部分被自动裁剪掉 当c 0时 则对超出视图区的图形不作裁剪处理 注意 视图区建立以后 所有的图形输出坐标都是相对于当前视图区的 即视图区左上角点为坐标 0 0 点 而与图形在屏幕上的位置无关 clearviewport 清除视图区 cleardevice 清除屏幕 并将当前点位置设置为原点 0 0 但是其它的图形系统设置将保持不变 如线型 填充模式 视图区的设置等

展开阅读全文