分享
 
 
 

C语言图形编程(三、绘图函数-01)

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

一、屏幕和视口设置与清除函数

36. setviewport() 设置图形视口函数

37. clearviewport()清除图形视口函数

38. cleardevice() 清除屏幕函数

39. getviewsettings() 获取图形视口设置函数

二、调色板和颜色函数

40. setpalette()设置调色板函数

41. setallpalette()设置整个调色板函

42. setbackcolor() 设置背景颜色函数

43. setcolor() 设置颜色函数

44. getbkcolor() 返回背景色函数

45. getcolor() 返回当前绘图颜色

46. getmaxcolor()返回最大颜色值函数

47. getpalette() 获取调色板函数

48. getpalettesize() 返回调色板大小函数

49. getdefaultpalette() 获取缺省调色板函数

三、屏幕位置函数

50. getmaxx()返回最大x坐标函数

51. getmaxy() 返回最大y坐标函数

52. getx() 返回x坐标函数

53. gety() 返回y坐标函数

54. moveto()函数

55. moverel() 相对移动函数

----------------------------------------------------

Borland C++提供了一整套综合性的图形函数,上节介绍了其中有关图形显示的函数,本节介绍其中的绘图函数,下节将介绍它的图形文本函数。

一般绘图时,首先要清除屏幕,设置图形视口,设置绘图颜色,然后在屏幕上某个位置画点或直线或曲线等。下面给出具有这些功能的函数。

一、屏幕和视口设置与清除函数

36. setviewport() 设置图形视口函数

功能: 函数setviewport() 设置当前图形视口。

用法: 函数调用方式为void setviewport(int left,int top,int right,int bottom,int clip);

说明: 参数left,top是左上角坐标,right,bottom是右下角坐标,它们都是绝对屏幕坐标。

传给setviewport()的第五个参数是clip,假如clip为1,则超出视口的输出图形自动被裁剪掉,即所有作图限制于当前图形视口之内,假如clip为0,则不做裁剪,即作图将无限制地扩展于视口周界之外,直到屏幕边界。若无效参数传入setviewport(),则graphresult()函数返回值-11,先前视口设置仍有效。

setviewport()函数的对应头文件为 graphics.h

返回值: 无

例: 建立对角为(6,6)和(88,88)的视口,并带有裁剪功能:

setviewport(6,6,88,88,1);

37. clearviewport()清除图形视口函数

功能: 函数clearviewport()清除当前图形视口,并把光标从当前位置移到原点(0,0)。

用法: 该函数调用方式为void clearviewport(void);

说明: 此函数调用执行后,当前图形视口将不复存在。

这个函数对应的头文件是graphics.h

返回值: 无

例: 清除当前图形视口,但并非整个屏幕:

clearviewport();

38. cleardevice() 清除屏幕函数

功能: 函数cleardevice() 清除整个屏幕,并且将当前位置移到屏幕原点。

用法: 此函数调用方式为void cleardevice(void);

说明: 该函数类似于文本模式下的函数clrscr(),但clrscr()函数不能在图形方式下工作;同样cleardevice()函数不能在文本模式下工作。

这个函数相应的头文件为graphics.h

返回值: 无

例: 清除当前整个屏幕:

cleardevice();

39. getviewsettings() 获取图形视口设置函数

功能: 函数getviewsettings()返回当前图形视口坐标和裁剪标志,坐标是绝对屏幕坐标,裁剪标志 1或 0。

用法: 此函数调用方式为void getviewsettings(strUCt viewporttype *info);

说明: 该函数执行后,把有关当前视口的信息装入info指向的viewporttype型结构中。

viewporttype结构定义如下:

struct viewporttype {

int left,top,right,bottom;

int clipflag;

}

这里left,top中存放视口左上角坐标,right,bottom中存放视口右下角坐标,clipflag中存放裁剪标志,若clipflag为1 ,执行裁剪以防止超出视口边界,假如clipflag为0,则不对超出边界输出作裁剪。

getviewsettings()函数对应的头文件是graphics.h

返回值: 无

例: 显示当前视口角点坐标:

struct viewporttype info;

getviewsettings(&info);

printf("left:%d top:%d\n",info.left,info.top);

printf("right:%d bottom:%d\n",info.right,info.bottom);

二、调色板和颜色函数

进行图形显示或绘图,除了要知道用什么显示卡以及相应的图形驱动程序外,还必须了解它们支持什么样的调色板颜色。

40. setpalette()设置调色板函数

功能: 函数setpalette()可对调色板上的颜色的色彩值重新设定。

用法: setpalette()函数调用方式为void setpalette(int value,int color);

说明: 参数value为色彩值,color为色彩值相应的颜色名。当需要将一颜色指定为一色彩值地,即可调用此函数来设置。

表1-7 预先定义的调色板与色彩

-----------------------------------------------------------------

调色板 色彩0 色彩1 色彩2 色彩3

-----------------------------------------------------------------

C0 黑色 淡绿 红浅 黄色

C1 黑色 淡青 粉红 白色

C2 黑色 绿色 红色 棕色

C3 黑色 青色 品粉红 淡灰色

-----------------------------------------------------------------

这个函数相对应的头文件为graphics.h

返回值: 无

41. setallpalette()设置整个调色板函数

功能: 函数setallpalette()对某个调色板上的所有颜色重新设定彩色值。

用法: 函数调用方式为void setallpalette(struct palettetype *p);

说明: 在低分辨率图形显示模式下,该函数无效。若函数调用成功,则把p指向的palettetype结构中的色彩值设置为当前调色板所有颜色的新色彩值。

palettetype结构定义如下:

struct palettetype {

unsigned char size;

signed char color[16];

};

这里必须把size设置为调色板颜色的数目,并把每个色彩值都装入color数组相应元素中,然后才可用于调用函数。

此函数对应的头文件是graphics.h

返回值: 无

例:把16色的EGA/VGA显示卡调色板改为其前16种颜色:

struct palettetype;

int i;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有