C语言图形图形处理精讲Word下载.docx
- 文档编号:14868734
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:22
- 大小:24.88KB
C语言图形图形处理精讲Word下载.docx
《C语言图形图形处理精讲Word下载.docx》由会员分享,可在线阅读,更多相关《C语言图形图形处理精讲Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
无
例:
在屏幕上(6,8)处画一个红色像素点:
putpixel(6,8,RED);
getpixel()返回像素色函数
函数getpixel()返回像素点颜色值。
该函数调用方式为intgetpixel(intx,inty);
参数x,y为像素点坐标。
函数的返回值可以不反映实际彩色值,这取决于调色板的设置情况(参见setpalette()函数)。
这个函数相应的头文件为graphics.h
返回一个像素点色彩值。
把屏幕上(8,6)点的像素颜色值赋给变量color。
color=getpixel(8,6);
(二)直线和线型函数
有三个画直线的函数,即line(),lineto(),linerel()。
这些直线使用整型坐标,并相对于当前图形视口,但不一定受视口限制,如果视口裁剪标志clip为真,那么直线将受到视口边缘截断;
如果clip为假,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。
有两种线宽及几种线型可供选择,也可以自己定义线图样。
下面分别介绍直线和线型函数。
line()画线函数
函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。
该函数调用方式为voidline(intstartx,intstarty,intendx,intendy);
参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。
此函数相应的头文件为graphics.h
见函数60.linerel()中的实例。
lineto()画线函数
函数lineto()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。
此函数调用方式为voidlineto(intx,inty);
参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。
该函数对应的头文件为graphics.h
linerel()相对画线函数
函数linerel()使用当前绘图色、线型及线宽,从当前位置开始,按指定的水平和垂直偏移距离画一直线。
这个函数调用方式为voidlinerel(intdx,intdy);
参数dx,dy分别是水平偏移距离和垂直偏移距离。
函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数linerel(10,18)后,当前位置为(18,24)。
无
下面的程序为画线函数调用实例:
#include<
graphics.h>
voidmain()
{
intdriver,mode;
driver=DETECT;
mode=0;
initgraph(&
driver,&
mode,"
"
);
setcolor(15);
line(66,66,88,88);
lineto(100,100);
linerel(36,64);
getch();
restorecrtmode();
}
setlinestyle()设置线型函数
setlinestyle()为画线函数设置当前线型,包括线型、线图样和线宽。
setlinestyle()函数调用方式为voidsetlinestyle(intstly,unsignedpattern,intwidth);
参数style为线型取值,也可以用相应名称表示,如表1-10中所示。
参数pattern用于自定义线图样,它是16位(bit)字,只有当style=USERBIT_LINE(值为1)时,pattern的值才有意义,使用用户自定义线图样,与图样中“1”位对应的像素显示,因此,pattern=0xFFFF,则画实线;
pattern=0x9999,则画每隔两个像素交替显示的虚线,如果要画长虚线,那么pattern的值可为0xFF00和0xF00F,当style不为USERBIT_LINE值时,虽然pattern的值不起作用,但扔须为它提供一个值,一般取为0。
参数wigth用来设定线宽,其取值见表1-11,表中给出了两个值,即1和3,实际上,线宽取值为2也是可以接受的。
若用非法参数调用setlinestyle()函数,那么graphresult()会返回错误代码,并且当前线型继续有效。
TurboC提供的线型与线宽定义在头文件graphics.h中,表1-10和1-11分别列出了参数的取值与含义。
表1-10线型
名称
取值
含义
SOLID_LINE
实线
DOTTED_LINE
1
点线
CNTER_LINE
2
中心线
DASHED_LINE
3
虚线
USERBIT_LINE
4
用户自定义线型
表1-11线宽
名称
取值
说明
NORM_WIDTH(常宽)
一个像素宽(缺省值)
THICK_WIDTH(加宽)
三个像素宽
这个函数的头文件是graphics.h
下面的程序显示了BC中所提供的线型图样:
i;
for(i=0;
i<
4;
i++)
setlinestyle(i,0,1);
line(i*50,200,i*50+60,200);
getlinesettings()获取线型设置函数
函数getlinesettings()用当前设置的线型、线图样和线宽填写linesettingstype型结构。
函数调用方式为voidgetlinesettings(structlinesettingstype*info);
此函数调用执行后,当前的线型、线图样和线宽值被装入info指向的结构里,从而可从该结构中获得线型设置。
linesettingstype型结构定义如下:
structlinesettingstype{
intlinestyle;
unsignedupattern;
intthickness;
};
其中linestyle用于存放线型,线型值为表1-10中的各值之一。
upattern用为装入用户自定义线图样,这是16位字,每一位等于一个像素,如果哪个位被设置,那么该像素打开,否则关闭。
thickness为线宽值存放的变量,可参见表1-11。
getlinesettings()函数对应的头文件为graphics.h
返回的线型设置存放在info指向的结构中。
把当前线型的设置写入info结构:
structlinesettingstypeinfo;
getlinesettings(&
info);
setwritemode()设置画线模式函数
函数setwritemode()设置画线模式
函数调用方式为voidsetwritemode()(intmode);
参数mode只有两个取值0和1,若mode为0,则新画的线将覆盖屏幕上原有的图形,此为缺省画线输出模式。
如果mode为1,那么新画的像素点与原有图形的像素点先进行异或(XOR)运算,然后输出到屏幕上,使用这种画线输出模式,第二次画同一图形时,将擦除该图形。
调用setwritemode()设置的画线输出模式只影响函数line(),lineto(),linerel(),recangle()和drawpoly()。
setwritemode()函数对应的头文件是graphics.h
设置画线输出模式为0:
setwritemode(0);
(三)、多边形函数
对多边形,无疑可用画直线函数来画出它,但直接提供画多边形的函数会给用户很大方便。
最常见的多边形有矩形、矩形块(或称条形)、多边形和多边形块,我们还把长方形条块也放到这里一起考虑,虽然它不是多边形,但它的特例就是矩形(块)。
下面直接介绍画多边形的函数。
rectangle()画矩形函数
函数rectangle()用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。
此函数调用方式为voidrectangle(intleft,inttop,intright,intbottom);
参数left,top是左上角点坐标,right,bottom是右下角点坐标。
如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真
(1),那么调用该函数后,只有在图形视口内的矩形部分才被画出。
这个函数对应的头文件为graphics.h
下面的程序画一些矩形实例:
initgrpah(&
rectangle(80,80,220,200);
rectangle(140,99,180,300);
rectangle(6,6,88,88);
rectangle(168,72,260,360);
bar()画条函数
函数bar()用当前填充图样和填充色(注意不是给图色)画出一个指定上左上角与右下角的实心长条形(长方块或正方块),但没有四条边线)。
bar()函数调用方式为voidbar(intleft,inttop,in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图形 处理