本文地址:http://www.cnblogs.com/archimedes/p/win-tc-graphics-use.html,轉載請注明源地址。
由於最近要實現一個程序,顯示一些分形幾何中的圖形,例如:Koch曲線
感覺java的swing的界面太繁瑣,好吧,是我不熟,於是打算用C語言來實現,但是又不想太麻煩,於是想到了win-tc(還是在虛擬機裡面直接裝一個xp系統,網上各種win7 64位的版本最後證明都不靠譜),下載後直接運行,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哈哈~