c语言高级编程.ppt

上传人(卖家):hwpkd79526 文档编号:5657103 上传时间:2023-04-29 格式:PPT 页数:94 大小:225.50KB
下载 相关 举报
c语言高级编程.ppt_第1页
第1页 / 共94页
c语言高级编程.ppt_第2页
第2页 / 共94页
c语言高级编程.ppt_第3页
第3页 / 共94页
c语言高级编程.ppt_第4页
第4页 / 共94页
c语言高级编程.ppt_第5页
第5页 / 共94页
点击查看更多>>
资源描述

1、l屏幕文本输出屏幕文本输出l图形程序设计图形程序设计l硬件驱动硬件驱动l键盘鼠标输入方法编程键盘鼠标输入方法编程l其它高级编程技术其它高级编程技术l1.11.1文本方式的控制文本方式的控制l1.21.2窗口设置和文本输出函数窗口设置和文本输出函数l1.31.3清屏和光标操作函数清屏和光标操作函数l1.41.4屏幕文本移动与存取函数屏幕文本移动与存取函数l1.51.5状态查询函数状态查询函数l文本方式就是显示文本的模式,它的显文本方式就是显示文本的模式,它的显示单位是字符而不是图形方式下的象素,示单位是字符而不是图形方式下的象素,在屏幕上显示字符的位置坐标用行和列在屏幕上显示字符的位置坐标用行和

2、列表示。表示。l缺省方式下,每屏为缺省方式下,每屏为8080列列2525行,行,Turbo CTurbo C规定屏的左上角为规定屏的左上角为l l行行l l列,屏的右下角列,屏的右下角为为2525行行8080列。列。lTurbo CTurbo C支持的文本显示方式有支持的文本显示方式有5 5种,它种,它们可以用文本显示方式设置函数来进行们可以用文本显示方式设置函数来进行设置。设置。其中newmode的值可分别为:l04025黑白显示l14025彩色显示l28025黑白显示l38025彩色显示l78025单色显示l-1上一次的显示方式l文本颜色设置函数文本颜色设置函数void void text

3、colortextcolor(intint color)color)控制文本显示的前景色,即字符显控制文本显示的前景色,即字符显示的颜色,其参数示的颜色,其参数colorcolor仅能选择仅能选择1717种颜色,种颜色,即值为即值为016016。l文 本 背 景 颜 色 设 置 函 数文 本 背 景 颜 色 设 置 函 数 v o i d v o i d textbackgroundtextbackground(intint color)color)设置文本显设置文本显示的背景颜色,其参数示的背景颜色,其参数colorcolor仅能选择仅能选择8 8种颜色,种颜色,即值为即值为0707。l文本

4、属性设置函数文本属性设置函数void void textattrtextattr(int int attrattr)设置字符显示的颜色,背景色,字设置字符显示的颜色,背景色,字符显示是否闪烁,显示属性参数符显示是否闪烁,显示属性参数attrattr可用一个可用一个字节即字节即8 8位来描述。位来描述。lvoid highvideo(void)用高亮度显示字符。lvoid lowvideo(void)用低亮度显示字符。lvoid normvideo(void)将设置通常亮度显示字符。l在文本方式下,没进行窗口设置时,即在文本方式下,没进行窗口设置时,即窗口设置缺省时,认为整个屏幕为显示窗口设置缺

5、省时,认为整个屏幕为显示窗口,窗口,lTurbo CTurbo C提供了窗口设置函数提供了窗口设置函数window()window(),可由用户根据自己的需要来重新设定显可由用户根据自己的需要来重新设定显示窗口。当设定后,以后的控制台示窗口。当设定后,以后的控制台I/OI/O操操作作(即文本输入输出即文本输入输出),就可均在此窗口,就可均在此窗口中进行。中进行。lvoid window(void window(intint x1 x1,intint y1 y1,intint x2 x2,intint y2)y2);l其中其中(x1x1,y1)y1)为窗口的左上角坐标,为窗口的左上角坐标,(x2

6、x2,yzyz)为窗口的右下角坐标,这些坐标是以为窗口的右下角坐标,这些坐标是以整个屏幕为参考坐标系。整个屏幕为参考坐标系。l利用窗口函数可以在屏幕上定义多个不利用窗口函数可以在屏幕上定义多个不同窗口,以显示不同的信息。同窗口,以显示不同的信息。lprintfprintf()(),putcputc()(),puts()puts(),putcharputchar()()和输和输出函数以整个屏幕为窗口的,它们不受由出函数以整个屏幕为窗口的,它们不受由windowwindow设置的窗口限制,也无法用函数控制它设置的窗口限制,也无法用函数控制它们输出的位置。们输出的位置。lTurbo CTurbo C

7、提供了三个文本输出函数,提供了三个文本输出函数,int int cprintfcprintf(char(char*formatformat,);int int cputscputs(char(char*strstr);int putchint putch(int chint ch);它它们受窗口的控制,窗口内显示光标的位置,就们受窗口的控制,窗口内显示光标的位置,就是它开始输出的位置。是它开始输出的位置。lvoid void clrscrclrscr(void)(void);清除窗口中的文本,清除窗口中的文本,并将光标移到当前窗口的左上角,即并将光标移到当前窗口的左上角,即(1,(1,1)1)

8、处。处。l void void clreolclreol(void)(void);除当前窗口中从除当前窗口中从光标位置开始到本行结尾的所有字符,光标位置开始到本行结尾的所有字符,但不改变光标原来的位置。但不改变光标原来的位置。l void void dellinedelline(void)(void);删除一行字符,删除一行字符,该行是光标所在行。该行是光标所在行。lvoid void gotoxygotoxy(intint x x,intint y)y);把光标移把光标移到窗口内的到窗口内的(x x,y)y)处,处,x x,y y坐标是相对坐标是相对窗口而言。它多和窗口而言。它多和cprin

9、tfcprintf函数配合,以函数配合,以指定输出开始位置。指定输出开始位置。lvoid void movetextmovetext(intint x1 x1,intint y1 y1,intint x2x2,intint y2 y2,intint x3 x3,intint y3)y3);l该函数将把屏幕上左上角为该函数将把屏幕上左上角为(xlxl,y1)y1),右下角右下角为为(x2x2,y2)y2)的矩形内文本拷贝到左上角为的矩形内文本拷贝到左上角为(x3x3,y3)y3)的一个新矩形区内。这里的一个新矩形区内。这里x x,y y坐标是以整坐标是以整个屏幕为窗口坐标系,即屏幕左上角为个屏幕

10、为窗口坐标系,即屏幕左上角为(1(1,1)1)。l该函数与开设的窗口无关,且原矩形区文本不该函数与开设的窗口无关,且原矩形区文本不变。变。1、存文本函数存文本函数void void gettextgettext(int xlint xl,intint y1y1,intint x2 x2,intint y2 y2,void void*buffer)buffer);把左把左上角为上角为(xlxl,y1)y1),右下角为右下角为(x2x2,y2)y2)的矩形区的矩形区内的文本存到由指针内的文本存到由指针bufferbuffer指向的一个内存缓指向的一个内存缓冲区内。冲区内。2 2、取文本函数、取文本

11、函数void void puttextputtext(intint x1 x1,intint y1y1,intint x2 x2,intint y2 y2,void void*buffer)buffer);把由把由bufferbuffer指针指向的缓冲区内所存文本复制到屏指针指向的缓冲区内所存文本复制到屏幕上一矩形区内,该矩形区左上角为幕上一矩形区内,该矩形区左上角为(x1x1,y1)y1),右下角为右下角为(x2x2,y2)y2)。lvoid gettextinfo(struct text_info*f);l这里的text_info是在conio.h头文件中定义的一个结构;l显示当前屏幕的显

12、示方式,当前窗口的坐标、当前光标的位置,文本的显示属性等。lTurbo CTurbo C为用户提供了一个功能很强的画图软为用户提供了一个功能很强的画图软件库,它又称为件库,它又称为BorlandBorland图形接口图形接口(BGI)BGI),它包它包括图形库文件括图形库文件(graphics.lib)graphics.lib),图形头文件图形头文件(graphics.h)graphics.h)和许多图形显示器和许多图形显示器(图形终端图形终端)的的驱动程序驱动程序(如如CGA.BGICGA.BGI、EGAVGA.BGIEGAVGA.BGI等等)。及一。及一些字符集的字体驱动程序些字符集的字体

13、驱动程序(如如gothgoth.chrchr黑体字黑体字符集等符集等)。l编写图形程序时用到的一些图形库函数均在编写图形程序时用到的一些图形库函数均在graphics.libgraphics.lib中,执行这些函数时,所需的有中,执行这些函数时,所需的有关信息关信息(如宏定义等如宏定义等)则包含在则包含在graphics.hgraphics.h头文头文件中。件中。l显示器的屏幕如同一张坐标纸,显示器的屏幕如同一张坐标纸,在其上显示图形时,图形上任一在其上显示图形时,图形上任一点的位置均有确定的坐标,即可点的位置均有确定的坐标,即可用用x x,y y坐标值来表示。坐标值来表示。l显示器显示的图形

14、均由一些圆点组成显示器显示的图形均由一些圆点组成(其其亮度、颜色不同亮度、颜色不同),这些点称为象素,这些点称为象素(或或称象点称象点),它们是组成图形的最小单位。,它们是组成图形的最小单位。l象素的大小可以通过设置不同的显示方象素的大小可以通过设置不同的显示方式来改变。象素在屏幕上的位置则可由式来改变。象素在屏幕上的位置则可由其所在的其所在的x x,y y坐标来决定。坐标来决定。l计算机中要显示的字符和图形均以数字形式存储在存计算机中要显示的字符和图形均以数字形式存储在存储器中,而显示器接收的应是模拟信号。储器中,而显示器接收的应是模拟信号。l常用的显示器有三条模拟红绿兰颜色的模拟信号输入常

15、用的显示器有三条模拟红绿兰颜色的模拟信号输入线,每条输入线的电压决定了颜色的亮度,只要能产线,每条输入线的电压决定了颜色的亮度,只要能产生出可区分的电压来,它们不同的组合,便可使显示生出可区分的电压来,它们不同的组合,便可使显示器显示出不同的颜色来。器显示出不同的颜色来。l插在插在PCPC微机插槽中的图形卡微机插槽中的图形卡(即适配器即适配器),其作用就是,其作用就是将要显示的字符和图形以数字形式存储在卡上的视频将要显示的字符和图形以数字形式存储在卡上的视频存储器存储器VRAMVRAM中,再将其变成视频模拟信号送往相应适中,再将其变成视频模拟信号送往相应适配的显示器进行显示,也即适配器在计算机

16、主机和显配的显示器进行显示,也即适配器在计算机主机和显示器之间起到了信息转换和视频发送作用。示器之间起到了信息转换和视频发送作用。l由于计算机配有的显示器种类不同,因而适配器种类由于计算机配有的显示器种类不同,因而适配器种类不同不同l1 1单色显示适配器单色显示适配器(MDA)MDA);仅显示一种颜色,仅支持仅显示一种颜色,仅支持80802525行的字符显示。行的字符显示。l2 2彩色图形适配器彩色图形适配器(CGA)CGA);这是这是PC/XTPC/XT等微机配用的显等微机配用的显示器图形卡,它可以产生单色或彩色字符和图形。示器图形卡,它可以产生单色或彩色字符和图形。l3 3增强型图形适配器

17、增强型图形适配器EGA)EGA);除支持除支持CGACGA的四种显示的四种显示模式外,还增加了分辨率为模式外,还增加了分辨率为640640200200的的1616色显示方式,色显示方式,(EGAHI)EGAHI),也可显示也可显示1616色。色。l4 4视频图形阵列适配器视频图形阵列适配器(VGA)VGA);它是目前流行的它是目前流行的PCPC微微机显示标准,它支持机显示标准,它支持CGACGA,EGAEGA的所有显示方式,但自的所有显示方式,但自己还有己还有640640480480的高分辨显示方式的高分辨显示方式(VGAHI)VGAHI)、640640350350的中分辨显示方式的中分辨显示

18、方式(VGAMED)VGAMED)和和640640200200的低分辨显示的低分辨显示方式方式(VGALO)VGALO),它们均可有它们均可有1616种显示颜色可供选择。种显示颜色可供选择。l5 5TVGATVGA;它是目前市面上最流行的它是目前市面上最流行的PC 486PC 486,586586微机配的显示器标准,在图形方式下,它微机配的显示器标准,在图形方式下,它可有可有640640400400,640640480480,800800600600,10241024768768及及76876810241024等分辨率,可选颜色达等分辨率,可选颜色达256256种,在文本方式下,可支持种,在文

19、本方式下,可支持2525、3030、4343、6060行,行,132132列的字符显示。它也兼容列的字符显示。它也兼容CGACGA、EGAEGA、VGAVGA的显示方式,由于的显示方式,由于Turbo CTurbo C早于该产品出现,早于该产品出现,因而上述增强了的显示方式均不支持,但对于因而上述增强了的显示方式均不支持,但对于高级编程者,可通过对高级编程者,可通过对TVGATVGA各专用寄存器直接各专用寄存器直接编程来实现这些功能。编程来实现这些功能。l6 6PVGAPVGA;它是它是paradise VGAparadise VGA的缩写,它由的缩写,它由Western DigitalWes

20、tern Digital公司生产,有的叫公司生产,有的叫SVGA(SVGA(香港香港SurperkingSurperking公司生产的公司生产的386386微机上使用微机上使用)。还有。还有称为称为EVGA(Extended VGA)EVGA(Extended VGA),它们和它们和PVGAPVGA在软硬在软硬件上均是兼容的。件上均是兼容的。PVGAPVGA完全兼容完全兼容CGACGA、EGAEGA、VGAVGA的所有工作方式,它还有自己一些特有的的所有工作方式,它还有自己一些特有的工作模式,与工作模式,与TVGATVGA类似。类似。l7 7XGAXGA;XGAXGA是是IBMIBM公司新推出

21、的一种增强性图公司新推出的一种增强性图形适配器,它是形适配器,它是VGAVGA的换代产品,具有更高的的换代产品,具有更高的分辨率和性能,它有和分辨率和性能,它有和CGACGA,EGAEGA,VGAVGA全兼容全兼容的工作方式,但显示速度却比的工作方式,但显示速度却比VGAVGA快一倍。快一倍。l8 8CVGACVGA;这是国内研制的带有显示汉字这是国内研制的带有显示汉字功能的功能的VGAVGA图形适配器,它带有汉字字库,图形适配器,它带有汉字字库,该适配器提供了和该适配器提供了和CGACGA、EGAEGA、VGAVGA全兼容全兼容的工作方式,还提供了在文本工作方式的工作方式,还提供了在文本工作

22、方式下的高分辨图形显示功能。在它的下的高分辨图形显示功能。在它的ROM ROM BIOSBIOS中提供了中提供了INT10HINT10H的功能号为的功能号为3030H H38H38H的功能调用,因而提供了方便的汉字的功能调用,因而提供了方便的汉字处理功能。处理功能。l文本方式或称字符显示方式文本方式或称字符显示方式l图形显示方式图形显示方式l它们的主要差别是显示存储器它们的主要差别是显示存储器(VRAM)VRAM)中存的信中存的信息不同。字符方式时,息不同。字符方式时,VRAMVRAM存放要显示字符的存放要显示字符的ASCIIASCII码,用它作为地址,取出字符发生器码,用它作为地址,取出字符

23、发生器ROM(ROM(固定存储器固定存储器)中存放的相应字符的图象中存放的相应字符的图象(又又称字模称字模),变成视频信号在显示器屏上进行显,变成视频信号在显示器屏上进行显示。图形方式时,则要显示的图形的图象直接示。图形方式时,则要显示的图形的图象直接存在存在VRAMVRAM中,中,VRAMVRAM中某地址单元存放的数就表中某地址单元存放的数就表示了相应屏幕上某行和列上的象素及颜色。示了相应屏幕上某行和列上的象素及颜色。l1 1MCGA(MCGA(多色图形阵列多色图形阵列);它和;它和VGAVGA是是PS/2PS/2系列微机的系列微机的主要适配器,主要适配器,MCGAMCGA功能上同功能上同C

24、GACGA相似,它和相似,它和CGACGA是部分是部分兼容的,但有些功能又和兼容的,但有些功能又和VGAVGA类似,可有类似,可有640640480480的二的二色模式。色模式。l2 2IBM8514IBM8514;该适配器可插入该适配器可插入PS/2PS/2微机中,它有较强微机中,它有较强的图形功能,最高分辨率可达的图形功能,最高分辨率可达10241024768768,可有,可有256256种种颜色。颜色。l3 3HERCHERC;大力神公司生产的一种单色适配器,是大力神公司生产的一种单色适配器,是PCPC系系列微机早期的第三种显示标准列微机早期的第三种显示标准(其它两种其它两种MDAMDA

25、和和CGA)CGA),它采用它采用720720348348高分辨单色显示模式。高分辨单色显示模式。l4 4EGAMONOEGAMONO;EGAEGA单色适配器,它只有一种单色适配器,它只有一种640640350350单单色显示模式。色显示模式。l即要用什么类型的图形显示适配器的驱即要用什么类型的图形显示适配器的驱动程序,动程序,l采用什么模式的图形方式采用什么模式的图形方式(也就是相应程也就是相应程序的入口地址序的入口地址),l适配器驱动程序的寻找路径名。适配器驱动程序的寻找路径名。l注意:所用系统的显示适配器一定要支注意:所用系统的显示适配器一定要支持所选用的显示模式,否则将出错。持所选用的

26、显示模式,否则将出错。lvoid far void far initgraphinitgraph(intint far far*driverdriver,intint far far*modemode,char far char far*path_for_driver)path_for_driver);lvoid far void far detectgraphdetectgraph(intint far far*graphdrivergraphdriver,intint far far*graphmodegraphmode);l它完成对适配器的检查并得到显示器类它完成对适配器的检查并得到显示

27、器类型号和相应的最高分辨率模式,若所设型号和相应的最高分辨率模式,若所设适配器不是规定的那些类型,则返回适配器不是规定的那些类型,则返回-2-2,表示适配器不存在。表示适配器不存在。lvoid far void far cleardevicecleardevice(void)(void);该函数该函数作用范围为整个屏幕。作用范围为整个屏幕。lvoid far void far clearviewportclearviewport(void);(void);如果用如果用函数函数setviewportsetviewport定义一个图视窗口,则定义一个图视窗口,则可用清除图视口函数,它仅清除图视口可

28、用清除图视口函数,它仅清除图视口区域内的内容。区域内的内容。l当画图程序结束,回到文本方式时,要关闭图当画图程序结束,回到文本方式时,要关闭图形 系 统,回 到 文 本 方 式,用形 系 统,回 到 文 本 方 式,用 v o i d f a r v o i d f a r closegraphclosegraph(void)(void);l为了不关闭图形系统,使相应适配器的驱动程为了不关闭图形系统,使相应适配器的驱动程序和字符集序和字符集(字库字库)仍驻留在内存,但又回到原仍驻留在内存,但又回到原来所设置的模式,则可用恢复工作模式函数来所设置的模式,则可用恢复工作模式函数void far v

29、oid far restorecrtmoderestorecrtmode(void)(void);它也同时它也同时进行清屏操作。该函数常和另一设置图形工作进行清屏操作。该函数常和另一设置图形工作模式函数模式函数setgraphmodesetgraphmode交互使用,使得显示器交互使用,使得显示器工作方式在图形和文本方式之间来回切换。工作方式在图形和文本方式之间来回切换。l图形由点、线、面组成,图形由点、线、面组成,Turbo Turbo C C提供了一些函数,以完成这些提供了一些函数,以完成这些操作。操作。lvoid far void far putpixelputpixel(intint

30、x x,intint y y,intint color);color);它表示在指定的它表示在指定的x x,y y位置画一点,位置画一点,点的显示颜色由设置的点的显示颜色由设置的colorcolor值决定,关值决定,关于颜色的设置,将在设置颜色函数中介于颜色的设置,将在设置颜色函数中介绍。绍。l该函数的相对应函数是取象素值函数该函数的相对应函数是取象素值函数intint far far getpixelgetpixel(intint x x,intint y)y);得到在得到在(x x,y)y)点位置上的象素的颜色值。点位置上的象素的颜色值。移动画笔到指定的移动画笔到指定的(x x,y)y)位

31、置,移动过程不画:位置,移动过程不画:void far void far movetomoveto(intint x x,intint y)y);画笔从现行位置画笔从现行位置(x x,y)y)处移到一位置增量处处移到一位置增量处(x+x+dxdx,y+y+dxdx),移动过程不画:移动过程不画:void far void far moverelmoverel(int dxint dx,int dyint dy);得到当前画笔所在位置得到当前画笔所在位置intint far far getxgetx(void)(void);得到当前画笔的得到当前画笔的x x位置位置intint far far

32、getygety(void)(void);得到当前画笔的得到当前画笔的y y位置位置两点之间画线函数。两点之间画线函数。void far line(void far line(intint x0 x0,intint y0 y0,intint x1 x1,intint y1)y1);从从(x0 x0,y0)y0)点到点到(x1x1,y1)y1)点画一直线。点画一直线。从现行画笔位置到某点画线函数。从现行画笔位置到某点画线函数。void far void far linetolineto(intint x x,intint y)y);将从现行画笔位置到将从现行画笔位置到(x x,y)y)点画一直线

33、。点画一直线。从现行画笔位置到一增量位置画线函数从现行画笔位置到一增量位置画线函数void far void far linerellinerel(int dxint dx,int dyint dy);将从现行画笔位置将从现行画笔位置(x x,y)y)到位置增量处到位置增量处(x+x+dxdx,y+y+dydy)画一直线。画一直线。#include include main()main()int graphdriverint graphdriver=VGA;=VGA;int graphmodeint graphmode=VGAHI;=VGAHI;initgraphinitgraph(&(&gr

34、aphdrivergraphdriver,&,&graphmodegraphmode,);,);cleardevicecleardevice();();movetomoveto(100,20);(100,20);linetolineto(100,80);(100,80);movetomoveto(200,20);(200,20);linetolineto(100,80);(100,80);line(100,90,200,90);line(100,90,200,90);linerellinerel(0,20);(0,20);moverelmoverel(-100,0);(-100,0);line

35、rellinerel(30,20);(30,20);getchgetch();();closegraphclosegraph();();l画矩形函数画矩形函数lvoid far rectangle(void far rectangle(int xlint xl,intint y1 y1,intint x2x2,intint y2)y2);l该函数将以该函数将以(x1x1,y1)y1)为左上角,为左上角,(x2x2,y2)y2)为右为右下角画一矩形框。下角画一矩形框。l画条形图函数画条形图函数lvoid bar(void bar(intint x1 x1,intint y1 y1,intint

36、x2 x2,intint y2)y2);l该函数将以该函数将以(xlxl,y1)y1)为左上角,为左上角,(x2x2,y2)y2)为右为右下角画一实形条状图,没有边框,图的颜色和下角画一实形条状图,没有边框,图的颜色和填充模式可以设定填充模式可以设定。l编写程序,由编写程序,由rectanglerectangle函数以函数以(100(100,20)20)为左上角,为左上角,(200(200,50)50)为右下角画一矩形,为右下角画一矩形,接着由接着由barbar函数以函数以(100(100,80)80)为左上角,为左上角,(150(150,180)180)为右下角画一实形条状图,为右下角画一实

37、形条状图,用缺省颜色用缺省颜色(白色白色)填充。填充。#include include main()main()int graphdriverint graphdriver=DETECT=DETECT;int graphmodeint graphmode,x,x;initgraphinitgraph(&(&graphdrivergraphdriver,&,&graphmodegraphmode,”),”);cleardevicecleardevice()();rectangle(100rectangle(100,2020,200200,50)50);bar(100bar(100,8080,15

38、0150,180)5180)5getchgetch()();closegraphclosegraph()();画椭圆函数画椭圆函数void ellipse(void ellipse(intint x x,intint y y,int stangleint stangle,int endangelint endangel,int xradiusint xradius,int yradiusint yradius);该函数将以该函数将以(x x,y)y)为中心,以为中心,以xradiusxradius和和yradiusyradius为为x x轴和轴和y y轴半径,从起始角轴半径,从起始角stang

39、lestangle开始到开始到endangleendangle角结束,画一椭圆线。当角结束,画一椭圆线。当stanglestangle=0=0,endangleendangle=360=360时,则画出的是一个完整的椭圆,时,则画出的是一个完整的椭圆,否则画出的将是椭圆弧。否则画出的将是椭圆弧。l画圆函数画圆函数lvoid far circle(void far circle(intint x x,intint y y,intint radius)radius);l该函数将以该函数将以(x x,y)y)为圆心,为圆心,radiusradius为半径画个为半径画个圆。圆。l画圆弧函数画圆弧函数l

40、void far arc(void far arc(intint x x,intint y y,int stangleint stangle,int endangleint endangle,intint radius)radius);l该函数将以该函数将以(x x,y)y)为圆心,为圆心,radiusradius为半径,从为半径,从stanglestangle为起始角开始,到为起始角开始,到endangleendangle为结束角为结束角画一圆弧。画一圆弧。l画扇形图函数画扇形图函数lvoid far void far pieslicepieslice(intint x x,intint y

41、 y,int int stanglestangle,int endangleint endangle,intint radius)radius);l该函数将以该函数将以(x x,y)y)为圆心,为圆心,radiusradius为半为半径,从径,从stanglestangle为起始角,为起始角,endangleendangle为结为结束角,画一扇形图,扇形图的填充模式束角,画一扇形图,扇形图的填充模式和填充颜色可以事先设定,否则以缺省和填充颜色可以事先设定,否则以缺省模式进行。模式进行。lvoid far bar3d(void far bar3d(intint x1 x1,intint y1 y

42、1,intint x2x2,intint y2 y2,intint depth depth,int topflagint topflag);l该函数参数名定义如图该函数参数名定义如图2.142.14所示。当所示。当topflagtopflag非非0 0时,画出三维顶,否则将不时,画出三维顶,否则将不画出三维顶,画出三维顶,depthdepth决定了三维直方图的决定了三维直方图的长度。长度。画三维立体直方图函数画三维立体直方图函数void far bar3d(void far bar3d(intint x1 x1,intint y1 y1,intint x2 x2,intint y2y2,int

43、int depth depth,int topflagint topflag);画椭圆扇形函数画椭圆扇形函数 viodviod far sector(far sector(intint x x,intint y y,int int stanglestangle,intint endang1e endang1e,int xradiusint xradius,int int yradiusyradius);该函数将以该函数将以(x x,y)y)为圆心,以为圆心,以xradiusxradius和和yradiusyradius为为x x轴和轴和y y轴半径,从起始角轴半径,从起始角stang1esta

44、ng1e开始到开始到endang1eendang1e角结束,画一椭圆扇形图,并按设置角结束,画一椭圆扇形图,并按设置的填充模式和颜色填充。当的填充模式和颜色填充。当stang1estang1e为为0 0,endangleendangle为为360360时,则画出一完整的椭圆图。时,则画出一完整的椭圆图。l 画椭圆图函数画椭圆图函数l void far void far fillellipsefillellipse(intint x x,intint y y,int int xradiusxradius,int yradiusint yradius);”l 该函数将以该函数将以(x x,y)y)

45、为圆心,以为圆心,以xradiusxradius和和yradiusyradius为为x x轴和轴和y y轴半径,画一椭圆图,并以设定或缺省模式轴半径,画一椭圆图,并以设定或缺省模式和颜色填充。和颜色填充。l 画多边形图函数画多边形图函数l void far void far fillpolyfillpoly(int numpointsint numpoints,intint far far*polypointspolypoints)l 该函数将画出一个顶点数为该函数将画出一个顶点数为numpointsnumpoints,各顶点坐各顶点坐标 由标 由 p o l y p o i n t sp o

46、 l y p o i n t s 给 出 的 多 边 形,也 即 边 数 为给 出 的 多 边 形,也 即 边 数 为polypointspolypoints-1-1,当为一封闭图形时,当为一封闭图形时,numpohtsnumpohts应为多应为多边形的顶点数加边形的顶点数加1 1,并且第一个顶点坐标应和最后一个,并且第一个顶点坐标应和最后一个顶点的坐标相同。顶点的坐标相同。l象素的显示颜色,或者说画线、填充面的颜色象素的显示颜色,或者说画线、填充面的颜色都可以用一些函数来设置,否则将采用缺省的都可以用一些函数来设置,否则将采用缺省的值。值。l显示点、线、面的颜色,称为前景色,而衬托显示点、线

47、、面的颜色,称为前景色,而衬托它们的背景,称为背景色。它们的背景,称为背景色。l按照按照CGACGA、EGAEGA、VGAVGA图形适配器的硬件结构,图形适配器的硬件结构,颜色可以通过对其内部相应的寄存器进行编程颜色可以通过对其内部相应的寄存器进行编程来改变,但不编程时,则取缺省值。来改变,但不编程时,则取缺省值。l颜色的设置,一般用所谓调色板来进行描述,颜色的设置,一般用所谓调色板来进行描述,它实际上对应一些硬件的寄存器。它实际上对应一些硬件的寄存器。l从C语言的角度看,调色板实际上就是一张颜色索引表,对CGA显示器,在中分辨显示方式下,有4种显示模式,每一种模式对应有一个调色板,可用调色板

48、号区别。l模式调色板号颜色值l 0 1 2 3lCGAC00背景色绿红黄lCGAC11背景色青洋红 白lCGAC22背景色淡绿 淡红 棕lCGAC33背景色淡青 淡洋红淡灰l前景颜色设置函数:前景颜色设置函数:l void far void far setcolorsetcolor(intint color)color);l 该函数将使得前景以所选该函数将使得前景以所选colorcolor颜色进行颜色进行显示,对显示,对CGACGA,当为中分辨模式时只能选当为中分辨模式时只能选0 0,1 1,2 2,3 3。l选择背景颜色的函数:选择背景颜色的函数:l void far void far se

49、tbkcolorsetbkcolor(intint color)color)l该函数将使得背景色按所选该函数将使得背景色按所选1616种中的一种种中的一种colorcolor颜色进行显示。颜色进行显示。lTurbo CTurbo C也提供了改变线的宽度、类型的函数,也提供了改变线的宽度、类型的函数,其线的宽度当不设定时,取缺省值,即一个象其线的宽度当不设定时,取缺省值,即一个象素宽,当设定为素宽,当设定为3 3时,可取三个象素宽。当线时,可取三个象素宽。当线的形状不设定时,取缺省值,即实线。设定时,的形状不设定时,取缺省值,即实线。设定时,可有可有5 5种选择,它们可用设定线型函数来进行种选择

50、,它们可用设定线型函数来进行设置:设置:lvoid far void far setlinestylesetlinestyle(int linestyleint linestyle,unsigned unsigned upatternupattern,intint thickness)thickness);l其中其中 1 1inestyleinestyle为线型参数;为线型参数;thicknessthickness为线为线的宽度参数。的宽度参数。lvoid far setfilestyle(int pattern,int color);l该函数将用设定的color颜色和pattern图模式对后

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(c语言高级编程.ppt)为本站会员(hwpkd79526)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|