本文地址: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哈哈~