前言

距离上一篇博客已经过去一个半月了,这段时间过得确实充实,虽然一大段时间泡在图书馆复习,但至少也能学到点东西。跨年晚和元旦一整天,全身心投入图形学小课设的编程,终于实现了老师要求的所有功能,回想起张勇老师理论课的作业,我就上网下了一个程序,然后答辩的时候还半懂不懂,真是不该。

环境配置

Visual Studio 2013

如果不想麻烦地每次都为项目链接 glut 的库和设置环境变量,到OpenGL官网下载对应的所需文件。

  • 解压后将得到的glut.lib和glut32.lib这两个静态函数库复制到文件目录的lib文件夹下 X:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib
  • 将glut.dll,glut32.dll这两个动态库文件放到操作系统目录下面的 C:\Windows\system32 文件夹内(32位系统)或 C:\Windows\SysWOW64 (64位系统),为了兼容性考虑,最好在这两个目录下都复制相应的文件;
  • 将解压得到的头文件glut.h复制到目录如下目录下:X:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\GL ,如果在incluce目录下没有GL文件夹,则需要手动创建。

Xcode

新建控制台程序之后,点击项目->Build Phases->Link Binary With Libraries,将 GLUT.framework 和 OpenGL.framework 连接到项目中去就可以了(感觉是不是比 VS 的方便好多~)。

绘制图元

void display()
{
glClear(GL_COLOR_BUFFER_BIT); //清除颜色,否则背景中会出现一些奇怪的东西
glBegin(GL_POLYGON);
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glVertex2f(-0.5, -0.5);
glEnd();
glFlush(); } int main(int argc, const char * argv[])
{
glutInit(&argc, argv);
glutInitWindowPosition(100,100); //窗口位置
glutInitWindowSize(400,400); //窗口大小
glutCreateWindow("第一个OpenGL程序"); //创建窗口,设置标题
glutDisplayFunc(display); //当绘制窗口时调用display
glutMainLoop();
return 0;;
}

在上面 display 函数代码中我通过制定4个顶点来画一个矩形,有个更加快捷的方法就是直接调用库里面的函数 glRectf(-0.5f,-0.5f,0.5f,0.5f); ,两种方法的结果一样,但是如果学到后面要对物体进行贴图的话就只能用第一种方法了,因为 glRect 函数并不会返回顶点的坐标。

最新文章

  1. C#面向对象设计模式纵横谈——1.面向对象设计模式与原则
  2. hdu 4759 大数+找规律 ***
  3. 阿里云 Redis 服务遇到的问题
  4. log4net资料收集
  5. javascript中实现sleep的两种方式
  6. msp时钟设置程序
  7. HDOJ多校联合第六场
  8. php composer
  9. oracle数组学习资料
  10. android 判断是否有sim卡及运营商
  11. IDE idea 更换项目的JDK步骤
  12. 关于c++primer的一个代码错误
  13. 乐在其中设计模式(C#) - 解释器模式(Interpreter Pattern)
  14. node.js版本管理for window ---- nvmw
  15. synchronized VS Lock, wait-notify VS Condition
  16. JAVA之Mybatis基础入门--框架搭建与简单查询
  17. while (~scanf("%d%d",&m,&n))什么用的?
  18. myBatis 3.2.7 如何打印 sql
  19. 生成activiti需要的25张系统表
  20. WebSocket 客户端实例

热门文章

  1. qt 5.1.1 on CentOS 6.4
  2. 多个target下编译的时候出错问题的解决
  3. hdu 2850 Load Balancing (优先队列 + 贪心)
  4. JS动态创建table
  5. JavaScript之JS的执行环境和作用域
  6. Server.MapPath(string sFilePath) 报未将对象引用到实例异常
  7. SQLite 终端相关命令
  8. vim常用命令总结 (转)
  9. Hive学习之动态分区及HQL
  10. javascript小练习—点击将DIV变成红色(通过for循环遍历)