c语言图形化函数 c图形化编程( 四 )


640x480, 其中640为整个屏幕从左到右所有象元的个数, 480 为整个屏幕从上到
下所有象元的个数 。屏幕的左上角坐标为(0, 0), 右下角坐标为(639, 479), 水
平方向从左到右为x轴正向, 垂直方向从上到下为y轴正向 。TURBO C 的图形函数
都是相对于图形屏幕坐标, 即象元来说的 。
关于点的另外一个函数是:
int far getpixel(int x, int y);
它获得当前点(x, y)的颜色值 。
2. 有关坐标位置的函数
int far getmaxx(void);
返回x轴的最大值 。
int far getmaxy(void);
返回y轴的最大值 。
int far getx(void);
返回游标在x轴的位置 。
void far gety(void);
返回游标有y轴的位置 。
void far moveto(int x, int y);
移动游标到(x, y)点, 不是画点, 在移动过程中亦画点 。
void far moverel(int dx, int dy);
移动游标从现行位置(x, y)移动到(x+dx, y+dy)的位置, 移动过程中不画点 。
二、画线
1. 画线函数
TURBO C提供了一系列画线函数, 下面分别叙述:
void far line(int x0, int y0, int x1, int y1);
画一条从点(x0, y0)到(x1, y1)的直线 。
void far lineto(int x, int y);
画一作从现行游标到点(x, y)的直线 。
void far linerel(int dx, int dy);
画一条从现行游标(x, y)到按相对增量确定的点(x+dx, y+dy)的直线 。
void far circle(int x, int y, int radius);
以(x, y)为圆心, radius为半径, 画一个圆 。
void far arc(int x, int y, int stangle, int endangle, int radius);
以(x, y)为圆心, radius为半径, 从stangle开始到endangle结束(用度表示)
画一段圆弧线 。在TURBO C中规定x轴正向为0度, 逆时针方向旋转一周,依次为
90, 180, 270和360度(其它有关函数也按此规定, 不再重述) 。
void ellipse(int x, int y, int stangle, int endangle, int xradius,
int yradius);
以(x, y)为中心, xradius, yradius为x轴和y轴半径, 从角stangle 开始到
endangle结束画一段椭圆线, 当stangle=0, endangle=360时,画出一个完整的
椭圆 。
void far rectangle(int x1, int y1, int x2, inty2);
以(x1, y1)为左上角, (x2, y2)为右下角画一个矩形框 。
void far drawpoly(int numpoints, int far *polypoints);
画一个顶点数为numpoints,各顶点坐标由polypoints 给出的多边形 。
polypoints整型数组必须至少有2倍顶点数个无素 。每一个顶点的坐标都定义为x,
y, 并且x在前 。值得注意的是当画一个封闭的多边形时, numpoints 的值取实际
多边形的顶点数加一, 并且数组polypoints中第一个和最后一个点的坐标相同 。
下面举一个用drawpoly()函数画箭头的例子 。
例9:
#includestdlib.h
#includegraphics.h
int main()
{
int gdriver, gmode, i;
int arw[16]={200, 102, 300, 102, 300, 107, 330,
100, 300, 93, 300, 98, 200, 98, 200, 102};
gdriver=DETECT;
registerbgidriver(EGAVGA_driver);
initgraph(gdriver, gmode, "");
setbkcolor(BLUE);
cleardevice();
setcolor(12);/*设置作图颜色*/
drawpoly(8, arw);/*画一箭头*/
getch();
closegraph();
return 0;
}
2. 设定线型函数
在没有对线的特性进行设定之前, TURBO C用其默认值, 即一点宽的实线,
但TURBO C也提供了可以改变线型的函数 。线型包括:宽度和形状 。其中宽度只有
两种选择: 一点宽和三点宽 。而线的形状则有五种 。下面介绍有关线型的设置函
数 。
void far setlinestyle(intlinestyle,unsignedupattern,int
thickness);
该函数用来设置线的有关信息, 其中linestyle是线形状的规定, 见表5 。
表5. 有关线的形状(linestyle)
━━━━━━━━━━━━━━━━━━━━━━━━━

推荐阅读