使用graphics.h来绘制图形
| 版权声明:本文为博主原创文章,未经博主允许不得转载。
graphics.h是TC里面的图形库,如果要用的话应该用TC来编译。分为:像素函数、直线和线型函数、多边形函数、填充函数等。然而在我们使用的编译器vc6.0和visual studio 2013编译器中是不支持graphics.h图形库的,当然vc6.0和visual studio 2013编译器也自带了微软的图形库API(也叫Windows API,它的函数基本上包含在了windows.h的头文件中),那么如果我们要在vc6.0和visual studio 2013中使用graphics图形库怎么办?我们有两种解决的方法。
第一种:首先我们下载一个TC编译器安装,然后在的安装目录下面找到include文件夹和lib文件夹,再将其中的graphics图形绘制的.h文件和.lib文件复制粘贴到我们的VC6.0和visual studio 2013对应的文件夹下面去。(这个方法比较的麻烦)
第二种:下载EasyX来添加graphics.h图形库。
首先下载好EasyX,下载网址:http://www.easyx.cn/downloads/。在下面红框中随便选择下载一个,我下载的是EasyX_2014冬至版
下载好后,将压缩包解压。我们就会在解压后的文件夹中看到有关graphics图形库相关的lib和include文件夹。
然后,再将上面lib文件夹和include文件夹下面的内容复制到你的vc和visual studio 2013安装目录的对应的lib和include的文件夹的下面即可。(我这里以vc6.0为例)如下图操作:include和lib文件夹在安装目录的...\Microsoft Visual Studio\VC98\Include(or lib)
复制好之后,那么在vc6.0下配置的graphics图形库就已经配置成功了。下面我们通过一个例子来验证下(这里直接使用EasyX帮助文档中的实例进行测试)。
1 #include <graphics.h> // 就是需要引用这个图形库 2 #include <conio.h> 3 void main() 4 { 5 initgraph(640, 480); // 这里和 TC 略有区别 6 circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 7 getch(); // 按任意键继续 8 closegraph(); // 关闭图形界面 9 }
// 编译环境:Visual C++ 6.0,EasyX 2014冬至版 // http://www.easyx.cn // #include <graphics.h> #include <time.h> #include <conio.h> #define MAXSTAR 200 // 星星总数 struct STAR { double x; int y; double step; int color; }; STAR star[MAXSTAR]; // 初始化星星 void InitStar(int i) { star[i].x = 0; star[i].y = rand() % 480; star[i].step = (rand() % 5000) / 1000.0 + 1; star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5); // 速度越快,颜色越亮 star[i].color = RGB(star[i].color, star[i].color, star[i].color); } // 移动星星 void MoveStar(int i) { // 擦掉原来的星星 putpixel((int)star[i].x, star[i].y, 0); // 计算新位置 star[i].x += star[i].step; if (star[i].x > 640) InitStar(i); // 画新星星 putpixel((int)star[i].x, star[i].y, star[i].color); } // 主函数 void main() { srand((unsigned)time(NULL)); // 随机种子 initgraph(640, 480); // 创建绘图窗口 // 初始化所有星星 for(int i = 0; i < MAXSTAR; i++) { InitStar(i); star[i].x = rand() % 640; } // 绘制星空,按任意键退出 while(!kbhit()) { for(int i = 0; i < MAXSTAR; i++) MoveStar(i); Sleep(20); } closegraph(); // 关闭绘图窗口 }
1 // 编译环境:Visual C++ 6.0,EasyX 2014冬至版 2 // http://www.easyx.cn 3 // 4 #include <graphics.h> 5 #include <conio.h> 6 7 void main() 8 { 9 // 创建绘图窗口 10 initgraph(640, 480); 11 12 // 画渐变的天空(通过亮度逐渐增加) 13 float H = 190; // 色相 14 float S = 1; // 饱和度 15 float L = 0.7f; // 亮度 16 for(int y = 0; y < 480; y++) 17 { 18 L += 0.0005f; 19 setlinecolor( HSLtoRGB(H, S, L) ); 20 line(0, y, 639, y); 21 } 22 23 // 画彩虹(通过色相逐渐增加) 24 H = 0; 25 S = 1; 26 L = 0.5f; 27 setlinestyle(PS_SOLID, 2); // 设置线宽为 2 28 for(int r = 400; r > 344; r--) 29 { 30 H += 5; 31 setlinecolor( HSLtoRGB(H, S, L) ); 32 circle(500, 480, r); 33 } 34 35 // 按任意键退出 36 getch(); 37 closegraph(); 38 }
*.注意:EasyX不支持.c,只支持.cpp.
其中,在我们解压的文件夹内有一个EasyX的帮助文档,里面有很多的关于graphics图形库函数的介绍,可以参考它进行学习。