本文地址: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图形编程模板",自动填充代码框架,如下图:

代码如下:

  1. /* WIN-TC BGI 图形编程模板 */
  2. #include "Conio.h"
  3. #include "graphics.h"
  4. #define closegr closegraph
  5. void initgr(void) /* BGI初始化 */
  6. {
  7. int gd = DETECT, gm = ; /* 和gd = VGA,gm = VGAHI是同样效果 */
  8. registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
  9. initgraph(&gd, &gm, "");
  10. }
  11.  
  12. int main(void)
  13. {
  14. initgr(); /* BGI初始化 */
  15.  
  16. /*****此部分添加你自己的代码,例如
  17. line(25, 25, 220, 220);
  18. circle(100, 100, 50);
  19. 等等*****/
  20. getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
  21. closegr(); /* 恢复TEXT屏幕模式 */
  22. return ;
  23. }

但是直接运行的话会提示错误:“未定义的符号     '_EGAVGA_driver' 在模块    test2.c”

如果把这一行的代码注释掉,编译通过,运行过控制台一闪而过,代码后面加各种"getch()"……之类的办法都没有用,其实问题出在前面,因为没有找到图形驱动,程序直接退出了,getch 根本没有执行。

在网上找了很久,要么答案不正确,要么太繁琐,折腾了一会找到了解决办法。

找到EGAVGA.BGI文件的目录“C:\Win-TC\BGI”,将上面代码中的initgraph(&gd, &gm, ""); 添加路径即可:

  1. initgraph(&gd, &gm, "C:\\Win-TC\\BGI");

完整代码如下:

  1. /* WIN-TC BGI 图形编程模板 */
  2.  
  3. #include "Conio.h"
  4. #include "graphics.h"
  5. #define closegr closegraph
  6.  
  7. void initgr(void) /* BGI初始化 */
  8. {
  9. int gd = DETECT, gm = ; /* 和gd = VGA,gm = VGAHI是同样效果 */
  10. registerbgidriver(EGAVGA_driver); /*注册BGI驱动后可以不需要.BGI文件的支持运行 */
  11. initgraph(&gd, &gm, "C:\\Win-TC\\BGI");
  12. }
  13.  
  14. int main(void)
  15. {
  16. initgr(); /* BGI初始化 */
  17.  
  18. /*****此部分添加你自己的代码,例如 */
  19. line(, , , );
  20. circle(, , );
  21. /*等等*****/
  22.  
  23. getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
  24. closegr(); /* 恢复TEXT屏幕模式 */
  25. return ;
  26. }

第一次运行需要注册BGI驱动,以后运行不需要“registerbgidriver(EGAVGA_driver);“ 这行代码

配置完编程环境以后,下面的工作就是编程实现啦! O(∩_∩)O哈哈~

win-tc图形库编程的更多相关文章

  1. Linux终端图形库编程

    /* *drawWin.c */ #include<stdio.h> #include<stdlib.h> #include<string.h> #include& ...

  2. win 7 processing 编程环境搭建

    1.下载processing安装包: 2.下载usb驱动: 3.安装processing; 4.安装驱动: 5.在processing中编写代码: // Visualizing the data fr ...

  3. C语言多线程编程

    HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUT ...

  4. 传智播客C++

    轻松入门实战应用传智播客C++学院就业班第一阶段C提高课程 传智播客C提高讲义 传智扫地僧 1程序内存模型 1.1就业班引言 1.1.1问题引出 企业需要能干活的人  C学到什么程度可以找工作  ...

  5. C/C++预处理指令#define,#ifdef,#ifndef,#endif…

    2016年12月29日更新: 今天查看以前文件的时候, 突然发现了#error 这个预处理指令.然后回想一下工作, 发现这个指令使用场景还是很多的.比如: 一个项目的模块儿之多,源文件之大,代码之多, ...

  6. 可视化工具solo show-----Processing Prefuse show

    继上篇<可视化工具solo show>罗列出一些主要基于Java开发的软件.插件之后,又仔细揣摩了下哪些可以为我所用. 一番端详之后,准备挑出其中Processing和Prefuse两位大 ...

  7. 可视化工具solo show

    辗转一圈还是回到了我魂牵梦绕的可视化上来了. 在Gephi+Netbeans上折腾了将近一个星期后,我深深的体会到个人对于代码的驾驭能力尚有提升的空间^_^,路很长,方向很重要,三思而行. 转载请标明 ...

  8. .NET: WPF Template

    Data Template: 要做一个listBox,里面有车子的简单信息,点了里面的item后就会显示详细信息. car class: using System; using System.Coll ...

  9. C语言复习:编译

    C接口的封装和设计专题 Win32环境下动态链接库(DLL)编程原理   比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作.其中可能存在一些模块的 ...

随机推荐

  1. SpringMVC学习系列(12) 完结篇 之 基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现

    到这里已经写到第12篇了,前11篇基本上把Spring MVC主要的内容都讲了,现在就直接上一个项目吧,希望能对有需要的朋友有一些帮助. 一.首先看一下项目结构: InfrastructureProj ...

  2. 代码演示用 .NET 4.5 (C# 5.0)自带的压缩类 ZipArchive 创建一个压缩文件

    代码如下: using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; ...

  3. C#调用Java类

    C#调用Java类 (2011-01-07 14:02:05) 转载▼   分类: Java学习  1. 在Eclipse中新建名称为hello的java project,此工程仅包含一个文件hell ...

  4. TypeScript札记:初体验

    1.简介 TypeScript 是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程. TypeScript是一种 ...

  5. web.config中httpRunTime的属性

    配置httpRuntime也可以让FileUpload上传更大的文件,不过设置太大了会因用户将大量文件传递到该服务器而导致的拒绝服务攻击(属性有说明) <httpRuntime> < ...

  6. [Math] Beating the binary search algorithm – interpolation search, galloping search

    From: http://blog.jobbole.com/73517/ 二分检索是查找有序数组最简单然而最有效的算法之一.现在的问题是,更复杂的算法能不能做的更好?我们先看一下其他方法. 有些情况下 ...

  7. 任督二脉之Shell中的正则表达式

    VBird说学习Linux,掌握了Shell和正则就相当于打通了任督二脉,此后能力的成长才会突飞猛进. Shell的基础学习之前已经总结了一篇博客:http://www.cnblogs.com/jyz ...

  8. Docker 定制容器镜像的2种方法

    一.需求 由于在测试环境中使用了docker官网的centos 镜像,但是该镜像里面默认没有安装ssh服务,在做测试时又需要开启ssh.所以上网也查了查资料.下面详细的纪录下.在centos 容器内安 ...

  9. SQL Server里简单参数化的痛苦

    在今天的文章里,我想谈下对于即席SQL语句(ad-hoc SQL statements),SQL Server使用的简单参数化(Simple Parameterization)的一些特性和副作用.首先 ...

  10. IIS相关问题整理

    1.报错:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理 解决方案地址:http://blog.csdn.net/canielau/article/details/7609613 2.报错: ...