最新C语言绘图基础汇总.docx
- 文档编号:3121343
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:21
- 大小:28.64KB
最新C语言绘图基础汇总.docx
《最新C语言绘图基础汇总.docx》由会员分享,可在线阅读,更多相关《最新C语言绘图基础汇总.docx(21页珍藏版)》请在冰豆网上搜索。
最新C语言绘图基础汇总
C语言绘图基础
使用图形函数
1.必须包含头文件
2.保证系统能找到显示图形驱动程序*.BGI
3.将TC集成开发环境Options菜单中Linker项中的Graphics Lib选为on
只有做完这三步才能保证正确编译图形应用程序
屏幕颜色的设置
设置当前背景色:
void far setbkcolor(int color);
设置当前作图色:
void far setcolor(int color);
对于EGA或者VGA显示适配器,有关颜色的符号常数及数值如下:
BLACK 0 黑色
BLUE 1 蓝色
GREEN 2 绿色
CYAN 3 青色
RED 4 红色
MAGENTA 5 洋红
BROWN 6 棕色
LIGHTGRAY 7 淡灰
DARKGRAY 8 深灰
LIGHTBLUE 9 深蓝
LIGHTGREEN 10 淡绿
LIGHTCYAN 11 淡青
LIGHTRED 12 淡红
LIGHTMAGENTA 13 淡洋红
YELLOW 14 黄色
WHITE 15 白色
如果不设定颜色,则默认的北京颜色是0,也就是黑色背景;默认的画笔颜色是15,也就是白色
另外还有几个获取现行颜色设置情况的函数:
int far getbkcolor(void);
int far getcolor(void);
int far getmaxcolor(void);
直接对点进行处理的函数:
int far getpixel(int x, int y);/*取得点(x,y)的颜色
void far putpixel(int x, int y, int pixelcolor);/*在(x,y)处画一个指定颜色的点
坐标和画笔:
图形模式屏幕的左上角是坐标原点(0,0),水平方向向右是X轴,垂直方向向下为Y轴。
因为图形显示器和显示模式不同,X、Y坐标的最大值不同。
两个函数可以取得这两个最大值:
int far getmaxx(void);
int far getmaxy(void);
这两个函数在自动检测分辨率时非常有用。
int far getx(void);/*返回画笔在x轴的位置
int far gety(void);/*返回画笔在y轴的位置
int far moveto(int x, int y);/*移动画笔到x,y所在的位置,不在屏幕上留下痕迹。
int far moverel(int dx, int dy);/*从当前画笔位置(x,y)移动到(x+dx,y+dy)去。
属于相对当前点的移动。
void far linerel(int dx, int dy);/*画线函数
TC中的画线函数
void far line(int x0, int y0, int x1, int y1);
void far lineto(int x, int y);
void far linerel(int dx, int dy);
void far circle(int x, int y, int radius);
void far arc(int x, int y, int stangle, int endangle, int radius);
/*以(x,y)为圆心,radius为半径,从stangle到endange结束(用度表示)画一段圆弧线。
在Turbo C中规定x轴正向为0度,逆时针方向旋转一周,依次为90,180,270和360度。
void ellipse(int x, int y,int stangle, int endangle, int xradius, int yradius);/*椭圆线,stangle=0,endangle=360时为一个完整的椭圆
void far rectangle(int x1, int y1, int x2, int y2);
void far drawpoly(int numpoints, int far *polypoints)
TC中的线形设定
setlinestyle()函数用于设定线形
getlinessetings()函数用于读出当前线形
void far setlinestyle(int linestyle, unsigned upattern, int thickness);
线的形状
SOLID_LINE 0 实线
DOTTED_LINE 1 点线
CENTER_LINE 2 中心线
DASHED_LINE 3 点画线
USERBIT_LINE 4 用户定义线
线的宽度(仅两种)
NORM_WIDTH 1 一点宽
THICK_WIDTH 3 三点宽
void far getlinessetings(struct linesettingstype far *lineinfo);
struct linesettingstype
{int linestyle;
unsigned upattern;
int thickness;
}
下面两句代码可以读出当前线的特性
struct linesettingstype *info;
getlinesettings(info);
另外还有一个对画线特性的规定:
void far setwritemode(int mode);
如果mode=0,则表示画线时将所画位置的原图形覆盖(默认方式),如果mode=1,则表示画线时用现在特性的线与原有的线进行异或操作,实际上画出的线是原有线与现在规定的线进行异或后的结果。
因此,当线的特性不变时,进行两次画线操作相当于画一次线然后擦除。
如果用mode=1进行重画并不影响背景图像。
也就是说,假如做一个动画,背景是静止的,前景是运动的,那我么只要不断对前景进行异或,前景就会不断变化而不影响背景。
填充和填充模式
1先画轮廓再填充
void far bar(int x1, int y1, int x2, int y2);
void far bar3d(int x1, int y1, int x2, int y2, int depth, int topflag);
void far pieslice(int x, int y, int stangle, int endangle, int radius);
void far sector(int x, int y, int stangle, int xradius, int yradius);
2规定填充模式
向封闭区域内填充有12种模式。
void far setfillstyle(int pattern, int color);
名字 值 意义
EMPTY_FILL 0 以背景颜色填充
SOLID_FILL 1 以实线填充
LINE_FILL 2 以直线--填充
LTSLASH_FILL 3 以斜线///填充(阴影线)
SLASH_FILL 4 以粗斜线填充(粗阴影线)
BKSLASH_FILL 5 以粗反斜线填充(阴影线)
LTBKSLASH_FILL 6 以反斜线填充(阴影线)
HATCH_FILL 7 以菱形填充
XHATCH_FILL 8 以交叉断菱形填充
INTTERLEAVE_FILL 9 以中断线填充
WIDE_DOT_FILL 10 以稀疏点填充
CLOSE_DOT_FILL 11 以密集点填充
USER_FILL 12 以用户定义式样填充
void far setfillpattern(char *upattern, int color);
其中upattern是一个指向8个字节的指针。
这8个字节定义了8*8点阵的图形。
每个字节的8位二进制数表示水平8个点,8个字节共表示8行,然后依次为模型向整个封闭区域填充
void far getfillpattern(char *upattern);
该函数将用户自定义的填充花样存入upattern指针指向的内存区域
void far getfillsetings(struct fillsettingstype far *fillinfo);
struct fillsettingstype
{int pattern;
int color;
}
3淹没式填充
void far floodfill(int x, int y, int border);
注意两点:
(1),种子的位置一定要在封闭区域之内
(2),floodfill函数的第三个参数边框颜色一定要写对
图形和图像函数包含在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.drawpoly()画多边形函数
(四)、圆、弧和曲线函数
68.getaspectratio()获取纵横比函数
69.circle()画圆函数
70.arc()画圆弧函数
71.ellipse()画椭圆弧函数
72.fillellipse()画椭圆区函数
73.pieslice()画扇区函数
74.sector()画椭圆扇区函数
75.getarccoords()获取圆弧坐标函数
(五)、填充函数
76.setfillstyle()设置填充图样和颜色函数
77.setfillpattern()设置用户图样函数
78.floodfill()填充闭域函数
79.fillpoly()填充多边形函数
80.getfillsettings()获取填充设置函数
81.getfillpattern()获取用户图样设置函数
(六)、图像函数
82.imagesize()图像存储大小函数
83.getimage()保存图像函数
84.putimage()输出图像函数
四、图形和图像函数
对许多图形应用程序,直线和曲线是非常有用的。
但对有些图形只能靠操作单个像素才能画出。
当然如果没有画像素的功能,就无法操作直线和曲线的函数。
而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。
(一)像素函数
56.putpixel()画像素点函数
功能:
函数putpixel()在图形模式下屏幕上画一个像素点。
用法:
函数调用方式为voidputpixel(intx,inty,intcolor);
说明:
参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。
此函数相
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 语言 绘图 基础 汇总
![提示](https://static.bdocx.com/images/bang_tan.gif)