做网站公司长沙,学平面设计哪个学校好,同创企业网站源码,wordpress代码解析首先参考了网上的安装配置环境部分#xff1a;http://blog.csdn.net/Ididcan/article/details/4490797 最近准备学习OpenGL,结果发现敲入书中给的代码#xff0c;居然提示头文件找不到#xff0c;相当郁闷#xff0c;查了一下才发现有些不是VC自带的#xff0c;需要自己下…首先参考了网上的安装配置环境部分http://blog.csdn.net/Ididcan/article/details/4490797
最近准备学习OpenGL,结果发现敲入书中给的代码居然提示头文件找不到相当郁闷查了一下才发现有些不是VC自带的需要自己下载安装以下为转帖感觉说的还算详细OpenGl大牛们就略过此文好了呵呵 OpenGL作为当前主流的图形API之一它在一些场合具有比DirectX更优越的特性。 1、与C语言紧密结合。 OpenGL命令最初就是用C语言函数来进行描述的对于学习过C语言的人来讲OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h你会发现使用OpenGL作图甚至比TC更加简单。 2、强大的可移植性。 微软的Direct3D虽然也是十分优秀的图形API但它只用于Windows系统现在还要加上一个XBOX游戏机。而OpenGL不仅用于 Windows还可以用于Unix/Linux等其它系统它甚至在大型计算机、各种专业计算机如医疗用显示设备上都有应用。并且OpenGL 的基本命令都做到了硬件无关甚至是平台无关。 3、高性能的图形渲染。 OpenGL是一个工业标准它的技术紧跟时代现今各个显卡厂家无一不对OpenGL提供强力支持激烈的竞争中使得OpenGL性能一直领先。 总之OpenGL是一个很NB的图形软件接口。至于究竟有多NB去看看DOOM3和QUAKE4等专业游戏就知道了。 OpenGL官方网站英文 http://www.opengl.org/ 下面将对Windows下的OpenGL编程进行简单介绍。学习OpenGL前的准备工作 第一步选择一个编译环境 现在Windows系统的主流编译环境有Visual StudioBroland C BuilderDev-C等它们都是支持OpenGL的。我选择Visual Studio 2008和VC6作为学习OpenGL的环境。 第二步安装GLUT工具包 GLUT不是OpenGL所必须的但它会给我们的学习带来一定的方便推荐安装。 Windows环境下的GLUT下载地址大小约为150k http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 无法从以上地址下载的话请使用下面的连接: http://upload.programfan.com/upfile/200607311626279.zip Windows环境下安装GLUT的步骤 1、将下载的压缩包解开将得到5个文件 2、在“我的电脑”中搜索“gl.h”并找到其所在文件夹 我的系统(Windows XP professional SP3)安装了vc6和vs2010因为常用vs2010所以就在vs2010(安装目录D:\Program Files\VS2010)里配置glut吧。1. 将glut解压出来,将其中的glut.h复制到D:\Program Files\VS2010\VC\include\GL下若GL目录不存在则新建。2. 将glut.lib和glut32.lib复制到D:\Program Files\VS2010\VC\lib 下。3. 将glut.dll和glut32.dll复制到C:\WINDOWS\system32下。至此环境已经配置好了。下面来开发一个简单的c程序环境vs2010中的vc1. 新建-项目-win32控制台应用程序。2. 输入项目名simpleGL其他默认即可。3. 输入源代码#include stdafx.h
#include gl/glut.h
#include stdio.h
#include time.h// 太阳、地球和月亮
// 假设每个月都是12天
// 一年12个月共是360天
static int day 200; // day的变化从0到359double CalFrequency()
{static int count;static double save;static clock_t last, current;double timegap;count;if( count 50 )return save;count 0;last current;current clock();timegap (current-last)/(double)CLK_TCK;save 50.0/timegap;return save;
}void myDisplay(void)
{double FPS CalFrequency();printf(FPS %f\n, FPS);glEnable(GL_DEPTH_TEST);glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(75, 1, 1, 400000000);glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1);// 绘制红色的“太阳”glColor3f(1.0f, 0.0f, 0.0f);glutSolidSphere(69600000, 20, 20);// 绘制蓝色的“地球”glColor3f(0.0f, 0.0f, 1.0f);glRotatef(day/360.0*360.0, 0.0f, 0.0f, -1.0f);glTranslatef(150000000, 0.0f, 0.0f);glutSolidSphere(15945000, 20, 20);// 绘制黄色的“月亮”glColor3f(1.0f, 1.0f, 0.0f);glRotatef(day/30.0*360.0 - day/360.0*360.0, 0.0f, 0.0f, -1.0f);glTranslatef(38000000, 0.0f, 0.0f);glutSolidSphere(4345000, 20, 20);glFlush();glutSwapBuffers();
}void myIdle(void)
{day;if( day 360 )day 0;myDisplay();
}int main(int argc, char *argv[])
{glutInit(argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);glutInitWindowPosition(100, 100);glutInitWindowSize(400, 400);glutCreateWindow(太阳地球和月亮);glutDisplayFunc(myDisplay);glutIdleFunc(myIdle);glutMainLoop();return 0;
} 4. 选择项目属性选择C/C-预处理器在右侧的“预处理器定义”处删除“_CONSOLE“如图5. 在项目属性中切换到“链接器”-系统右侧窗口的子系统选择窗口 (/SUBSYSTEM:WINDOWS)6. 在项目属性中再切换到“链接器”-命令行在“其他选项”中输入/ENTRY:mainCRTStartup (可以去除程序运行时出现的dos窗口)编译运行就能看到“太阳、地球和月亮的动态运行图”了!