与 BGI 绘图库的兼容情况

使用 EasyX 绘图库有两种方式:

1. 引用 easyx.h 头文件。该头文件是 EasyX 绘图函数的声明,引用后可以直接调用 EasyX 绘图函数。

2. 引用 graphics.h 头文件。该头文件是对 easyx.h 的扩展,用于模拟额外的 BGI 函数。

本文讲解这两种方式和 BGI 绘图库的区别,以及这样设计的具体原因。(注:BGI 是 Borland 公司早期的绘图接口,在 Turbo C 和 Borland C/C++ 系列开发工具中广泛使用)

easyx.h 的应用场合

基于以下几个原因,EasyX 中声明的函数与 Borland BGI 绘图库中的有较大区别:

  • EasyX 曾经模拟了几乎所有的 BGI 绘图函数。但是在模拟的过程中,发现了一些 BGI 绘图库的不足。
  • BGI 的许多数据定义在 windows.h 中都有,只不过名字不同。记忆两套名字容易混淆,毕竟,BGI 绘图库已经是历史了。EasyX 库最大程度的复用了 Windows 中的定义。
  • BGI 绘图库中的函数命名缺乏规律性。
  • BGI 绘图库没有一套方便的帮助。当然,可以在 Turbo C 中查看帮助,但是该帮助文件并不能直接在 Windows 下打开,许多初学者也没有翻看 Turbo C 帮助的习惯。
  • Borland 早已停止更新 BGI,而 EasyX 还在不断完善,两者的差异会越来越大。

如果您之前没有使用过 BGI 绘图库,推荐引用 easyx.h 头文件。

graphics.h 的应用场合

graphics.h 在 easyx.h 的基础上,更多的模拟了 BGI 绘图库的函数。详见函数说明中的 graphics.h 新增函数。

如果您试图编译 Turbo C 的绘图程序,或者参考一本陈旧的书,推荐引用 graphics.h 头文件。graphics.h 中的函数大部分都可以在 easyx.h 中找到对应,因此,引用 graphics.h 后同时也可以使用 easyx.h 中声明的函数。

不过,由于机制不同,如果您需要移植原 Turbo C 的绘图程序,还需要注意以下几个方面:

  • 颜色。EasyX 库支持了真彩色,这点与 TC 差别很大。
  • getimage / putimage,这组函数较 BGI 做了很多扩充。
  • 设置线性、填充类型的函数,和 BGI 的略有区别。
  • 位操作,BGI 的功能很局限,EasyX 库实现了所有的位操作。
  • 常量命名,EasyX 库多采用和 Windows 贴近的命名。
  • 其他扩充函数,例如鼠标、批操作等。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为什么要写这个库? 让初学者从 Turbo C 2.0(以下简称 TC) 或 Borland C++ 3.1 开始学编程是个不错的建议,只是 TC 的环境实在太老了,复制粘贴都很不方便。有一个 Win-TC,简单用了一下,实在是个害人的东西,还不如 TC 好呢,因为它简化了所有调试的部分(或许是我没看到?),而调试是写程序相当重要的一部分。 不少老师直接拿 VC6 来讲 C 语言的,因为 VC6 的编辑和调试环境都很优秀。只可惜在 VC6 下只能做一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。许多老师让学生在 TC 下图,因为这的确会让人有兴趣。 所以,我想给初学者一个更好的学习环境,就是 VC6 的平台 + TC 的图功能,于是就有了这个库。如果您刚开始学 C 语言,或者您是一位教 C 语言的老师,那么这个东西一定会让您兴奋的。 额外说明 这个库并不适合做产品,只建议用来入门学习。如果您想做简单的图产品,那么 SDL 库或许更适合您。或者,直接介入 DirectX 编程吧。 安装 下载的压缩包里除了说明,只有两个主要文件,将 graphics.lib 拷贝到 VC6 文件夹下的 Lib 文件夹内,将 graphics.h 拷贝到 Include 文件夹内,仅此而已,所以我就偷懒没有做安装程序了。 使用说明 目前只把我个人理解中的初学者常用的图形函数做了一下。如果您需要更多的,请发邮件告诉我:lujianfeiccie2011@163.com,或者到我的博客提出来:http://hi.csdn.net/lujianfeiccie2009,我来完善。 使用上,基本和 TC 没什么区别。看一个画圆的例子吧: #include // 就是需要引用这个图形库 #include void main() { initgraph(640, 480); // 这里和 TC 略有区别 circle(200, 200, 100); // 画圆,圆心(200, 200),半径 100 getch(); // 按任意键继续 closegraph(); // 关闭图形界面 } 呵呵,很简单吧。具体的请看函数列表,以及程序范例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值