由于最近接到一个紧急任务,需要实现一个程序,显示一些分形几何中的图形,例如:Koch曲线
感觉java的swing的界面太繁琐,好吧,是我不熟。于是打算用C语言来实现,但是又不想太麻烦,于是想到了win-tc(还是在虚拟机里面直
接装一个xp系统,网上各种win7 64位的版本最后证明都不靠谱),下载win-tc
2.0后直接运行,win-tc自带有很多的模板可以方便的使用,如下图:
直接选择"BGI图形编程模板",自动填充代码框架,如下图:
代码如下:
/* WIN-TC BGI 图形编程模板 */ #include "Conio.h" #include "graphics.h" #define closegr closegraph void initgr(void) /* BGI初始化 */ { int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */ registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */ initgraph(&gd, &gm, ""); } int main(void) { initgr(); /* BGI初始化 */ /*****此部分添加你自己的代码,例如 line(25, 25, 220, 220); circle(100, 100, 50); 等等*****/ getch(); /* 暂停一下,看看前面绘图代码的运行结果 */ closegr(); /* 恢复TEXT屏幕模式 */ return 0; }
但是直接运行的话会提示错误:“未定义的符号 '_EGAVGA_driver' 在模块 test2.c”
如果把这一行的代码注释掉,编译通过,运行过控制台一闪而过,代码后面加各种"getch()"……之类的办法都没有用,其实问题出在前面,因为没有找到图形驱动,程序直接退出了,getch 根本没有执行。
在网上找了很久,要么答案不正确,要么太繁琐,折腾了一会找到了解决办法。
找到EGAVGA.BGI文件的目录“C:\Win-TC\BGI”,将上面代码中的initgraph(&gd, &gm, ""); 添加路径即可:
initgraph(&gd, &gm, "C:\\Win-TC\\BGI");
完整代码如下:
/* WIN-TC BGI 图形编程模板 */ #include "Conio.h" #include "graphics.h" #define closegr closegraph void initgr(void) /* BGI初始化 */ { int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */ registerbgidriver(EGAVGA_driver); /*注册BGI驱动后可以不需要.BGI文件的支持运行 */ initgraph(&gd, &gm, "C:\\Win-TC\\BGI"); } int main(void) { initgr(); /* BGI初始化 */ /*****此部分添加你自己的代码,例如 */ line(25, 25, 220, 220); circle(100, 100, 50); /*等等*****/ getch(); /* 暂停一下,看看前面绘图代码的运行结果 */ closegr(); /* 恢复TEXT屏幕模式 */ return 0; }
第一次运行需要注册BGI驱动,以后运行不需要“registerbgidriver(EGAVGA_driver);“ 这行代码
配置完编程环境以后,下面的工作就是编程实现啦! O(∩_∩)O哈哈~
时间: 2024-10-29 02:21:16