图形化函数库及操作 叶安胜
EasyX 库背景 Turbo C的图形函数库的使用是很简单的,可是TC 本身环境太老了。 VC ++6.0编辑和调试环境都很优秀,也有适合教学的免费版本。可惜在 VC 想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。 EasyX 库就是结合了 VC 方便的开发平台和 TC 简单的绘图功能,C++绘制简单图形简直易如反掌!
帮助文档
1、EasyX库下载 下载压缩包,解压如下:
1、安装过程(VC++6.0) 自动安装 请先将下载的压缩包解压缩,然后执行 Setup.hta,并跟随提示安装。 安装程序会检测您已经安装的 VC 版本,并根据您的选择将对应的 .h 和 .lib 文件安装至 VC 的 include 和 lib 文件夹内。安装程序不会修改注册表或者您本机的任何文件。
1、安装过程(VC++6.0) 全手动安装 如果您需要手动安装,请将安装包里的 include 和 lib 文件夹分别拷贝到 VC 对应的 include 和 lib 文件夹内,或者将 include 和 lib 文件夹放到任意位置,然后修改 VC 中的 Lib 和 Include 的引用路径。
2、安装过程(VS.NET) Visual Studio自动安装 请先将下载的压缩包解压缩,然后执行 Setup.hta,并跟随提示安装。 安装程序会检测您已经安装的 VS.NET 版本,并根据您的选择将对应的 .h 和 .lib 文件安装至 VS.NET 的 include 和 lib 文件夹内。安装程序不会修改注册表或者您本机的任何文件。
2、安装过程(VS.NET) Visual Studio手动配置安装 首先打开easyx文件夹,双击打开include文件夹,复制其中的两个文件easyx.h和graphics.h。 找到Visual Studio所在的安装目录,打开VC文件夹,打开其中的include文件夹,将刚才复制的两个文件粘贴到此文件夹下(可按Ctrl+v快捷键) 返回easyx文件夹,打开lib文件夹中的amd64文件夹,复制其中的easyx.lib和easyxw.lib两个文件。
与步骤二相同,打开VC/lib/amd64文件夹,将步骤三中复制的两个文件粘贴到此文件夹下。 返回easyx文件夹,打开lib文件夹,复制其中四个文件(easyx.lib,easyx6.lib,easyxw.lib,easyxw6.lib) 打开Visual Studio所在的安装目录,打开VC/lib文件夹,将步骤五中所复制的四个文件粘贴到此目录下。
基本代码-*.cpp #include <graphics.h> // 就是需要引用这个图形库 #include <conio.h> //getch()函数 void main() { initgraph(640, 480); // 这里和 TC 略有区别 circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 getch(); // 按任意键继续 closegraph(); // 关闭图形界面 }
功能扩展一 void main() { int x, y, r; //圆心位置 for (;;) printf("请输入圆心位置:(640,480)和圆的半径"); scanf("%d%d%d", &x, &y, &r); initgraph(640, 480); // 这里和 TC 略有区别 circle(x, y, r); // 画圆,圆心(200, 200),半径 100 fflush(stdin); //清除键盘缓冲区 getch(); // 按任意键继续 closegraph(); // 关闭图形界面 }
功能扩展三 void main9_3() { int x, y, r; //圆心位置 r = 100; initgraph(640, 480); // 这里和 TC 略有区别 for (;;) //system("cls"); circle(300, 300, r); // 画圆,圆心(200, 200),半径 100 //getch(); clearcircle(300, 300, r); r=r+10; //fflush(stdin); //清除键盘缓冲区 //getch(); // 按任意键继续 } closegraph(); // 关闭图形界面
功能扩展四 void main9_5() { initgraph(640, 480); // 这里和 TC 略有区别 int x1, y1, r1; //圆心位置 int x, y, r; //圆心位置 system("cls"); printf("请输入圆心位置:(640,480)和圆的半径"); fflush(stdin); //清除键盘缓冲区 scanf("%d%d%d", &x, &y, &r); x1 = x; y1 = y; r1 = r; initgraph(640, 480); // 这里和 TC 略有区别 srand((unsigned)time(NULL));//用当前时间,设置种子 for (;;) { circle(x, y, r); // 画圆,圆心(x, y),半径r circle(x1, y1, r1); // 画圆,圆心(x, y),半径r Sleep(50); clearcircle(x, y, r + 1); //用于清空圆的区域。 clearcircle(x1, y1, r1 + 1); //用于清空圆的区域。 //等待100毫秒 r++; r1++; //判断与四周的相碰,即结束。 if (x - r <= 0 || x + r >= 640 || y + r >= 480 || y - r <= 0) r = 1; //system("cls"); break; } if (x1 - r1 <= 0 || x1 + r1 >= 640 || y1 + r1 >= 480 || y1 - r1 <= 0) r1 = 1; //clearrectangle(0,0,640, 480); //清除整个屏幕信息 x = rand() % 640; y = rand() % 480; x1 = rand() % 640; y1 = rand() % 480; closegraph(); // 关闭图形界面
扩展项目 同时画多个圆,圆的个数不断增加。 圆用链表来存放。(圆心和半径) 用户用鼠标点击某点,就在此产生一个圆。 当圆的总数达到一定的数量,游戏就结束。