win-tc圖形庫編程


本文地址:http://www.cnblogs.com/archimedes/p/win-tc-graphics-use.html,轉載請注明源地址。

由於最近接到一個緊急任務,需要實現一個程序,顯示一些分形幾何中的圖形,例如: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哈哈~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM