我们大学这学期有一门计算机图形学的入门课程。对于如何进行Lab练习,没有推荐的方法。大部分同学都是求助于Turbo C和内置的graphics.h头文件。
我对此有些忐忑,Turbo C是70年代的东西,在它上面学习东西,我觉得没有意义。我也可以为Bloodshed Dev-C++编译器设置graphics.h,或者在linux系统上设置libgraph。
我正在寻找相对现代的解决方案,这些方案相对简单,不需要添加太多的模板代码等,而且还能实现同样的功能。
为了提供更多关于我们要做的任务的信息,我们将实现基本的图形算法,如DDA算法、Bresenham算法、扫描转换等。因此,我需要能够在屏幕上绘制像素,我不需要一个真正的高级库能够自己绘制线条和圆圈等基元。如果它能的话,那就太好了,但是为了学习,我应该能够在屏幕上绘制原始像素。
我还建议不要使用Bloodshed Dev-C++,因为它也有点过时了。你可以使用 MS VC++ Express 或 Code::Blocks 这两个都是免费的。
如果你正在寻找 "现代 "和 "不多的模板",为什么不使用JavaScript呢? 它将直接在浏览器中运行,你可以使用 <canvas>
元素或捆绑 setPixel
在你提供给学生的脚本中实现DOM功能。
这里有一个链接,你可以看看。http:/www.codeproject.comKBscriptingjavascriptlinedrawing.aspx.
还有一个SO的问题。Javascript中的Bresenham算法.
如果你致力于C++,总有OpenGL,但我想,学习曲线会更多一些。 以前有BGI和GRX,用于DJGPP(有人记得吗?该?). 我不知道有多少独立于设备的库可以将像素写到屏幕上(GDI和Xlib太依赖于操作系统)。 在PerlPythonTcl的世界里有Tk,它是独立于操作系统的。
就我个人而言,我喜欢用JavaScript来处理低级的图形算法--无需设置! -- 但如果你不拘泥于C++,也许值得一试。 但如果你没有时间教JavaScript,那么也许你的一些学生可以实现一些算法来获得额外的学分。
该库与Visual Studio的BGI(Borland Graphics Interface,即使用 "graphics.h")API兼容。