C语言编写图形程序// http://lcrystal.spaces.live.com/blog/cns!13dfc6235bbfb72c!128.entry

TC中使用图形函数的基本知识

                   
    我很想成一个知识很丰富的程序员,可所有的知识都要一点一点的学。   平时只写过作业式的程序的中国教育模式下的大学生来说,根本就没有任何用图形的经历,我甚至连要使用图形学要什么头文件都不知道。在网上查了些文章,最后找到了王大刚老师的<C语言编程宝典>这篇文章介绍了许多很有用的基本知识。

    首先就是如果要在TC中使用图形化界面,需要"#include<graphics.h>",并且在main函数的开头写上:
void main()
{
        int gdriver,gmode;
        detectgraph(& gdriver,& gmode)
        initgraph(& gdriver, & gmode,"c:\\turboc2");
}
在结尾处写上: closegraph(); 而且如果希望程序运行完毕并不立即结束,最好是在程序的最后写上:getch();
    另外可以使用如下的函数来改变图形线条的颜色和背景颜色。
setcolor(int);setbkcolor(int);中数值含义为:
  BLACK          0       黑色           DARKGRAY             8       深灰
  BLUE            1       兰色           LIGHTBLUE            9       深兰
  GREEN          2       绿色           LIGHTGREEN        10      淡绿
  CYAN            3       青色           LIGHTCYAN         11      淡青
  RED              4       红色           LIGHTRED            12      淡红
  MAGENTA      5       洋红           LIGHTMAGENTA   13      淡洋红
  BROWN         6       棕色           YELLOW              14      黄色
  LIGHTGRAY    7       淡灰           WHITE                15      白色

cleardevice();可以清楚屏幕内容。
    现在介绍一些画图形的函数。
putpixel(int x, int y, int color); 画点。其中x,y是该点的横纵坐标。在TC中屏幕是按640*480的分辨率来计算坐标的。

line(int x0,int y0,int x1,int y1); 画一条从点(x0, y0)到(x1, y1)的直线。

circle(int x, int y, int radius); 以(x, y)为圆心, radius为半径, 画一个圆。

arc(int x, int y, int stangle, int endangle, int radius); 以(x, y)为圆心, radius为半径, 从stangle开始到endangle结束(用度表示) 画一段圆弧线。

rectangle(int x1, int y1, int x2, inty2); 以(x1, y1)为左上角, (x2, y2)为右下角画一个矩形框。

drawpoly(int numpoints, int far *polypoints); 画一个顶点数为numpoints,各顶点坐标由polypoints 给出的多边形。polypoints整型数组必须至少有2倍顶点数个无素。每一个顶点的坐标都定义为x, y, 并且x在前。值得注意的是当画一个封闭的多边形时, numpoints 的值取实际多边形的顶点数加一, 并且数组polypoints中第一个和最后一个点的坐标相同。

bar(int x1, int y1, int x2, int y2); 确定一个以(x1, y1)为左上角, (x2, y2)为右下角的矩形窗口,再按规定图模和颜色填充。

bar3d(int x1, int y1, int x2, int y2,   int  depth,   int topflag);当topflag为非0时, 画出一个三维的长方体。当topflag为0时, 三维图形不封顶, 实际上很少这样使用。

    下面举个例子,我们来画一个长方形。我们可以这么做,先用setfillstyle(1,2);再用bar3d(10,10,20,20,4,1)就用2的颜色画了一个长方形。(其中的1,2下面我再说明。)我们还可以这么做,用rectangle(10,10,20,20)但还需要用floodfill(15,15,3)来填充。(假设前景色为3)。setfillstyle(int,int)中的两个参数是这样规定的:
setfillstyle(int pattern, int color);
pattern的设置如下:
       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_DOS_FILL     11       以密集点填充
       USER_FILL               12       以用户定义式样填充
color就是画图的边框颜色,其数值含义同前面介绍的定义一样。
    最后是如何在图形界面输出文字,需要"#include<conio.h>"然后加上outtextxy(int x,int y,char * s);s为要输出的字符串。其中有可能要用到sprintf(s, "You want to show the number is %d", num); 这里s应是字符串指针或数组, num为整型变量。

    就写这些了,如果还想了解更多的内容请参看王大刚老师的<C语言编程宝典>

原文地址:https://www.cnblogs.com/buffer/p/1270415.html