程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> win-tc圖形庫編程,win-tc圖形編程

win-tc圖形庫編程,win-tc圖形編程

編輯:C++入門知識

win-tc圖形庫編程,win-tc圖形編程


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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved