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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c图形图象函数.doc

1、c图形图象函数C语言图形、图像函数库 graphics.h(一) 像素函数 56. putpiel() 画像素点函数 57. getpixel()返回像素色函数 (二) 直线和线型函数 58. line() 画线函数 59. lineto() 画线函数 60. linerel() 相对画线函数 61. setlinestyle() 设置线型函数 62. getlinesettings() 获取线型设置函数 63. setwritemode() 设置画线模式函数 (三)、多边形函数 64. rectangle() 画矩形函数 65. bar() 画条函数 66. bar3d() 画条块函数 67

2、. drawpoly() 画多边形函数 (四)、 圆、弧和曲线函数 68. getaspectratio()获取纵横比函数 69. circle()画圆函数 70. arc() 画圆弧函数 71. ellipse()画椭圆弧函数 72. fillellipse() 画椭圆区函数 73. pieslice() 画扇区函数 74. sector() 画椭圆扇区函数 75. getarccoords()获取圆弧坐标函数 (五)、 填充函数 76. setfillstyle() 设置填充图样和颜色函数 77. setfillpattern() 设置用户图样函数 78. floodfill() 填充闭域

3、函数 79. fillpoly() 填充多边形函数 80. getfillsettings() 获取填充设置函数 81. getfillpattern() 获取用户图样设置函数 (六)、图像函数 82. imagesize() 图像存储大小函数 83. getimage() 保存图像函数 84. putimage() 输出图像函数 四、图形和图像函数 对许多图形应用程序,直线和曲线是非常有用的。但对有些图形只能靠操作单个像素才能画出。当然如果没有画像素的功能,就无法操作直线和曲线的函数。而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。 (一) 像素函数 5

4、6. putpixel() 画像素点函数 功能: 函数 putpixel() 在图形模式下屏幕上画一个像素点。用法: 函数调用方式为 void putpixel(int x,int y,int color); 说明: 参数 x,y为像素点的坐标,color 是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。 此函数相应的头文件是 graphics.h 返回值: 无 例: 在屏幕上(6,8)处画一个红色像素点: putpixel(6,8,RED); 57. getpixel()返回像素色函数 功能: 函数 getpixel()返回像素点颜色值。 用法: 该函数调用方式为 int getp

5、ixel(int x,int y); 说明: 参数 x,y为像素点坐标。 函数的返回值可以不反映实际彩色值,这取决于调色板的设置情况(参见 setpalette()函数)。 这个函数相应的头文件为 graphics.h 返回值: 返回一个像素点色彩值。 例: 把屏幕上(8,6)点的像素颜色值赋给变量 color。 color=getpixel(8,6); (二) 直线和线型函数 有三个画直线的函数,即 line(),lineto(),linerel()。这些直线使用整型坐标,并相对于当前图形视口,但不一定受视口限制,如果视口裁剪标志 clip为真,那么直线将受到视口边缘截断;如果 clip为假

6、,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。 有两种线宽及几种线型可供选择,也可以自己定义线图样。下面分别介绍直线和线型函数。 58. line() 画线函数 功能: 函数 line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。 用法: 该函数调用方式为 void line(int startx,int starty,int endx,int endy); 说明: 参数 startx,starty为起点坐标,endx,endy 为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。 此函数相应的头文件为 graphics.h 返回值:

7、 无 例: 见函数 60.linerel()中的实例。 59. lineto() 画线函数 功能: 函数 lineto()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。 用法: 此函数调用方式为 void lineto(int x,int y); 说明: 参数 x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。 该函数对应的头文件为 graphics.h 返回值: 无 例: 见函数 60.linerel()中的实例。 60.linerel() 相对画线函数 功能: 函数 linerel() 使用当前绘图色、线型及线宽,从当前位置开始,按指定的水平和垂直偏移距离画一直

8、线。 用法: 这个函数调用方式为 void linerel(int dx,int dy); 说明: 参数 dx,dy分别是水平偏移距离和垂直偏移距离。 函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数 linerel(10,18)后,当前位置为(18,24)。 返回值:无 例: 下面的程序为画线函数调用实例: i nclude void main() int driver,mode; driver=DETECT; mode=0; initgraph( setcolor(15); line(66,66,88,88); lineto(100,100); line

9、rel(36,64); getch(); restorecrtmode(); 61. setlinestyle() 设置线型函数 功能: setlinestyle() 为画线函数设置当前线型,包括线型、线图样和线宽。 用法: setlinestyle() 函数调用方式为 void setlinestyle(int stly,unsigned pattern,int width); 说明: 参数 style为线型取值,也可以用相应名称表示,如表 1-10中所示。 参数 pattern用于自定义线图样,它是 16位(bit)字,只有当 style=USERBIT_LINE(值为 1)时,patte

10、rn 的值才有意义,使用用户自定义线图样,与图样中“1”位对应的像素显示,因此,pattern=0xFFFF,则画实线;pattern=0x9999,则画每隔两个像素交替显示的虚线,如果要画长虚线,那么 pattern的值可为 0xFF00和 0xF00F,当 style不为 USERBIT_LINE值时,虽然 pattern的值不起作用,但扔须为它提供一个值,一般取为 0。 参数 wigth用来设定线宽,其取值见表 1-11,表中给出了两个值,即 1和 3,实际上,线宽取值为 2也是可以接受的。 若用非法参数调用 setlinestyle()函数,那么 graphresult()会返回错误代

11、码,并且当前线型继续有效。 Turbo C提供的线型与线宽定义在头文件 graphics.h中,表1-10和 1-11分别列出了参数的取值与含义。 表 1-10 线型 - 名 称 取 值 含 义 - SOLID_LINE 0 实线 DOTTED_LINE 1 点线 CNTER_LINE 2 中心线 DASHED_LINE 3 虚线 USERBIT_LINE 4 用户自定义线型 - 表 1-11 线宽 - 名 称 取 值 说 明 - NORM_WIDTH(常宽) 1 一个像素宽(缺省值) THICK_WIDTH(加宽) 3 三个像素宽 - 这个函数的头文件是 graphics.h 返回值: 无

12、例: 下面的程序显示了 BC中所提供的线型图样: i nclude void main() int driver,mode; driver=DETECT; mode=0; initgraph( for(i=0;i void main() int driver,mode; driver=DETECT; mode=0; initgrpah( rectangle(80,80,220,200); rectangle(140,99,180,300); rectangle(6,6,88,88); rectangle(168,72,260,360); getch(); restorecrtmode(); 6

13、5. bar() 画条函数 功能: 函数 bar()用当前填充图样和填充色(注意不是给图色)画出一个指定上左上角与右下角的实心长条形(长方块或正方块),但没有四条边线)。 用法: bar()函数调用方式为 void bar(int left,int top,int right,int bottom); 说明: 参数 left,topright,bottom分别为左上角坐标与右下角坐标,它们和调用函数 rectangle()的情形相同,调用此函数前,可用setfillstyle()或 setfillpattern()设置当前填充图样和填充色。 注意此函数只画没有边线的条形,如果要画有边线的的条形

14、,可调用下面的函数 bar3d()来画,并将深度参数设为 0,同时topflag参数要设置为真,否则该条形无顶边线。 这 应的头文件为 graphics.h 返回值: 无 例: 见函数 bar3d()中的实例。 66.bar3d() 画条块函数 功能: 函数 bar3d() 使用当前绘图色、线型及线宽画出三维长方形条块,并用当前填充图样和填 充色填充该三维条块的表面。用法: 此函数调用方式为 void bar3d(int left,int top,int right,int bottom,int depth,int topflag); 说明: 参数 left,top,right,bottom分

15、另为左上角与右下角坐标,这与 bar()函数中的一样。参数 depth为条块的深度,以像素为单位,通常按宽度的四分之一计算。深度方向通过屏显纵横比调节为约 45度(即这时 x/y比设置为 1:1)。 参数 topflag相当于一个布尔参数,如果设置为 1(真)那么条块上放一顶面;若设置为 0(假),则三维条形就没有顶面,这样可使多个三维条形叠加在一起。 要使图形更加美观,可利用函数 floodfill()或setfillpattern()来选择填充图样和填充色(参见本小节(五)填充函数 )。 bar3d()函数对应的头文件为 graphics.h 返回值: 无 例: 下面的程序画一个条形和条块

16、: i nclude void main() int driver,mode; driver=DETECT; mode=0; initgraph( setfillstyle(SOLID-FILL,GREEN); bar(60,80,220,160); setfillstyle(SOLID-FILL,RED); bar3d(260,180,360,240,20,1); getch(); restorecrtmode(); 67. drawpoly() 画多边形函数 功能: 函数 drawpoly() 用当前绘图色、线型及线宽,画一个给定若干点所定义的多边形。 用法: 此函数调用方式为 void

17、drawpoly(int pnumber,int *points); 说明: 参数 pnumber为多边形的顶点数;参数 points指向整型数组,该数组中是多边形所有顶点(x,y)坐标值,即一系列整数对,x 坐标值在前。显然整型数组的维数至少为顶点数的 2倍,在定义了多边形所有顶点的数组 polypoints时,顶点数目可通过计算sizeof(polypoints)除以 2倍的 sizeof(int)得到,这里除以 2倍的原因是每个顶点有两个整数坐标值。另外有一点要注意,画一个n个顶点的闭合图形,顶点数必须等于 n+1,并且最后一点(第 n+1)点坐标必须等于第一点的坐标。 drawpoly

18、()函数对应的头文件为 grpahics.h 返回值: 无 例: 下面的程序画一个封闭星形图与一个不封闭星形图: i nclude void main() int driver,mode; static int polypoints118=100,100,110,120,100,130,120,125,140,140,130,120, 140,110,120,115,100,100; static int polypoints218=180,100,210,120,200,130,220,125,240,140,230,120, 240,110,220,115,220,110; driver=

19、DETECT; mode=0; initgraph( drawpoly(9,polypoints1); drawpoly(9,polypoints2); getch(); restorecrtmode(); (四)、 圆、弧和曲线函数 在一个屏幕上画得很圆的图形到另一个屏幕上可能被压扁或拉长,这是因为每一种显示卡与之相应的显示模式都有一个纵横比。纵横比是指像素的水平方向大小与垂直方向大小的比值。如 VGA显示卡由于偈素基本上是正方形,所以纵横比为 1.000。 为了保证几何图形基本按预计情况显示在屏幕上,用屏显的纵横比来计算和纠正不同硬件及显示卡产生的畸变。计算纵横比所需要的水平方向和垂直方向

20、的比例系数可调用函数getaspectratio()获得。 68. getaspectratio()获取纵横比函数 功能: 函数 getaspectratio()返回 x方向和 y方向的比例系数,用这两个整型值可计算某一特定屏显的纵横比。 用法: 此函数调用方式为 void getaspectratio(int xasp,int yasp); 说明: 参数 xasp指向的变量存放返回的 x方向比例系数;参数 yasp指向的变量存放返回的 y方向比例系数。通常 y方向比例系数为 10 000, x方向比例系数不大于 10 000(这是因为大多数屏幕像素高比宽长)。 注意纵横比自动用作下面函数 a

21、rc(),circle()和 pieslice()中的标尺因子,使屏幕上圆或弧正常显示。但用 ellipse()函数画椭圆必须调用本函数获取纵横比作为标尺因子,否则不予调整。纵横比可用于其它几何图形,目的是校正和显示图形。 getaspectratio()函数对应的头文件为 graphics.h 返回值: 返回 x与 y方向比例系数分别存放在 xasp和 yasp所指向的变量中。 例: 下面的程序显示纵横比: int xasp,yasp; float aspectratio; getaspectratio( aspectratio=xasp/yasp; printf(“aspect ratio

22、: %f“,aspectratio); 69. circle()画圆函数 功能: 函数 circle()使用当前绘图色并以实线画一个完整的圆。 用法:该函数调用方式为 void circle(int x,int y,int radius); 说明: 参数 x,y为圆心坐标,radius 为圆半径,用像素个素表示。注意,调用 circle()函数画圆时不用当前线型。 不同于 ellipse()函数,只用单个半径 radius参数调用circle()函数,故屏显纵横比可以自动调节,以产生正确的显示图。此函数对应的头文件为 graphics.h 返回值: 无 例: 画六个同心圆,圆心在(100,10

23、0) 。 i nclude void main() int driver,mode; driver=DETECT; mode=0; initgraph( circle(100,100,10); circle(100,100,20); circle(100,100,30); circle(100,100,40); circle(100,100,50); circle(100,100,60); getch(); restorecrtmode(); 70. arc() 画圆弧函数 功能: 函数 arc()使用当前绘图色并以实线画一圆弧。 用法: 函数调用方式为 void arc(int x,int

24、y,int startangle,int endangle,int radius); 说明: 参数 x,y为圆心坐标,startangle 与 endangle分别为起始角与终止角,radius 为半径。圆心坐标和半径以像素个数给出,起始角和终止角以度为单位,0 度位于右边,90 度位于顶部,180 度位于左边,底部是 270度。同往常一样,360 度与 0度重合。角度按逆时针方向增加,但并不要求终止角一定比起始角大。例如指定300度和 90度分别为起始角和终止角,与指定 300度和 450度分别为起始角和终止角可画出相同的弧。大于 360度可作为参数,它将被化到 0度360 度范围里。函数 arc()能画封闭圆,只要取起始角为 0度,终止角为 360度即可。此函数中,屏显纵横比可自动调节。arc()函数对应的头文件为 graphics.h 返回值: 无 例: 以(200,200)为圆心,100 为半径,从 0度到 120度画圆弧: i ncludegraphics.h void main() int driver,mode; driver=DETECT; mode=0; initgraph( setcolor(WHITE); arc(200,200,0,120,100); getch(); restorecrtmode();

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报