一、画点 1. 画点函数 void far putpixel(int x, int y, int color); 该函数表示有指定的象元画一个按color所确定颜色的点。对于颜色color的 值可从表3中获得而对x, y是指图形象元的坐标。 在图形模式下, 是按象元来定义坐标的。对VGA适配器, 它的最高分辨率为
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: #include #include 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};
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时, 三维图形不 封顶, 实际上很少这样使用。 说明: bar3d()函数中, 长方体第三维的方向不随任何参数而变, 即始终为 45度的方向。
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 stanle, intendangle, int xradius, int yradius); 画一个以(x, y)为圆心分别以xradius, yradius为x轴和y轴半径, stangle 为起始角, endangle为终止角的椭圆扇形, 再按规定方式填充。
void far settextstyle(int font, int direction, int charsize); 该函数用来设置输出字符的字形(由font确定)、输出方向(由direction确定) 和字符大小(由charsize确定)等特性。Turbo C2.0对函数中各个参数的规定见下 列各表所示: