C语言图形函数大全(2)
表a 有关线的形状(linestyle)
表b 有关线宽(thickness)
对于upattern,只有linestyle选择USERBIT_LINE时才有意义,选择其他线型时upattern取0即可。 void far getlinesettings(struct linesettingstype far * lineinfo);函数将有关线的信息存放到由lineinfo指向
C语言图形函数大全
的结构体变量中,表中linesettingstype的结构如下: struct linesettingstype { int linestyle;
unsigned upattern; int thickness;} 例如下面两句程序可以读出当前线的特性: struct linesettingstype *info; getlinesettings(info); void far setwritemode(int mode);该函数规定画线的方式。如果mode=0,则表示画线时将所画位置的原来信息覆盖了。如果mode=1,则表示画线时用现在的线与所画之处原有的线进行异或(XOR)操作,实际上画出的线是原有线与现在规定的线进行异或后的结果。因此,当线的特性不变时,进行两次画线操作相当于没有画线。 有关线型设定和画线函数的例了如例2.10所示。 6、封闭图形的填充 填充就是用规定的颜色和图模填满一个封闭图形。 (1)先画轮廓现填充 TC提供了一些先画出基本图形轮廓,再按规定图模和颜色填充整个封闭图形的函数。在没有改变填充方式时,TC以默认方式填充。 void far bar(int x1,int y1,int x2,int y2);确定一个以(x1,y1)为左上角,(x2,y2)为右下角的矩形窗口,再按规定图模和颜色填充。说明:此函数不画出边框,所以填充色为边框。 void far bar3d(int x1,int y1,int x2,int y2,int depth,int topflag);当topflag为非0时,画出一个三维的长方体。当topflag为0时,三维图形不封顶,实际上很少这样使用。 void far pieslice(int x,int y,int stangle,int endangle,int radius);画一个以(x,y)为圆心,radius为半径,stangle为起始角度,endangle为终止角度的扇形,再按规定方式填充。当stangle=0,endangle=360时变成一个实心圆,并在圆内从圆点沿X轴正向画一条半径。 void far sector(int x,int y ,int stangle,int endangle,int xradius,int yradius);画一个以(x,y)为圆心,分别以xradius,yradius为X轴半径和Y轴半径,stangle为起始角,endangle为终止角的椭圆扇形,再按规定方式进行填充。
(2)设定填充方式 TC有四个与填充方式有关的函数。 void far setfillstyle(int pattern,int color);color的值是当前屏幕图形模式时颜色的有效值。Pattern的值及与其等价的符号常数如表所示。
关于填充式样pattern的规定
C语言图形函数大全
除USER_FILL(用户定义填充式样)以外,其他填充式样均可由setfillstyle( )函数设置。当选用USER_FILL时,该函数对填充图模和颜色不作任何改变。之所以定义USER_FILL主要是因为在获得有关填充信息时会用到此项。
void far setfillpattern(char *upattern,int color);设置用户定义的填充图模的颜色以供对封闭图形填充。其中upattern是一个指向8个字节的指针。这8个字节定义了8×8点阵的图形。每个字节的8位二进制数表示水平8点,8个字节表示8行,然后以此为模型向整个封闭区域填充。
void far getfillpattern(char *upattern);该函数将用户定义的填充图模式存入upattern指针指向的内存区域。
void far getfillsettings(struct fillsettingstype far *fillinfo);获得现行图模的颜色并将其存入结构指针变量fillinfo中。其中fillsettingstype结构定义如下:
struct fillsettingstype
{ int pattern; /*现行填充模式*/ int color; /*现行填充颜色*/ };
有关图形填充模式的颜色的选择,请看例题[2.11]。 7、任意封闭图形的填充 到目前为止,我们只能对一些特定形状的封闭图形进行填充,还不能对任意封闭图形进行填充。为此,TC提供了一个可对任意封闭图形进行填充的函数,其调用格式如下: void far floodfill(int x,int y,int border); 其中(x,y)为封闭图形内的任意一点。Border为边界的颜色,也就是封闭图形轮廓的颜色。调用了该函数后,将用规定的颜色和样式填满整个封闭图形。 注意: (1)如果x或y取在边界上,则不进行填充。 (2)如果不是封闭图形,则填充会从没有封闭的地方溢出去产,填满其它地方。 (3)如果x或y在图形外面,则填充发生在封闭图形外的屏幕区域。 (4)由border指定的颜色值必须与图形轮廓的颜色值相同,但填充色可选任意颜色。 详见例[2.12]。
8、有关图形窗口和图形屏幕操作函数 像文本方式下可以设定屏幕窗口一样,图形方式下也可以在屏幕上某一区域设定窗口,只是设定的为图形窗口而已,其后的有关图形操作都将以这个窗口的左上角(0,0)为坐标原点,而且可以通过设置,使窗口之外的区域为不可接触区域。这样所有的图形操作就被限定在窗口内进行。 void far setviewport(int x1,int x2,int y1,int y2,int clipflag);
该函数设定一个以(x1,y1)像素点为左上角,(x2,y2)像素点为右下角的图形窗口,其中x1,x2,y1,y2是相对于整个屏幕的坐标。若clipflag为非0,则设定的图形以外部分不可接触,若非0,则图形窗口以外可以接触。
void far clearviewport(void);清除现行图形窗口的内容。
void far getviewsettings(struct viewporttype far *viewport);获得关于现行窗口的信息,并将其存于viewporttype定义的结构变量viewport中,其中viewporttype的结构说明如下:
struct viewporttype{int left;int top;int right;int botton;int clipflag;} 说明:
(1)窗口颜色的设置与前面讲过的屏幕颜色设置相同,但屏幕背景色和窗口背景色只能是一种颜色,如果窗口背景色改变,整个屏幕的背景色也将改变,这与文本窗口不同。
(2)可以在同一个屏幕上设置多个窗口,但只能有一个现行窗口工作,要对其他窗口操作,通过将
C语言图形函数大全
定义那个窗口的setviewport( )函数再调用一次即可。
(3)前面所讲的图形屏幕操作的函数均适合于对窗口的操作。
三、图形模式下的文本输出
在图形模式下,只能用标准输出函数,如printf( )、puts( )、putchar( )函数输出文本到屏幕。除此之外,其他输出函数(如窗口输出函数)都不能使用,即使是可以输出的标准函数,也只能以前景色为白色,按80列、25行的文本方式输出。 为此TC另外提供了一些专门用于图形显示模式下的文本输出函数。 1、文本输出函数 void far outtext(char far *textstring);该函数在现行位置输出字符串指针textstring所指的文本。 void far outtextxy(int x,int y,char far *textstring);该函数在规定的(x,y)位置输出字符串指针textstring所指的文本。其中x和y为像素坐标。 说明:这两个函数都是输出字符串,但经常会遇到输出数值或其他类型的数据,此时就必须使用格式化输出函数sprintf( )。其格式为: int sprintf(char *str,char *format,variable_list); 它与printf( )函数不同之处是将按格式化规定的内容写入str指向的字符串中,返回值等于写入的字符个数。例如:sprintf(s,”your TOEFL score is %d”,mark);这里s应是字符串指针或数组,mark为整型变量。 2、有关文本字体、字型和输出方式的设置 有关图形方式下的文本输出,可以通过setcolor( )函数设置输出文本的颜色。另外,也可以改变字 …… 此处隐藏:3717字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




