计算机图形学试验指导一–OpenGL基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
//处理键盘
void keyboard(unsigned char key, int x, int y)
{
switch (key)
{
case 27://esc键退出
exit(0);
break;
default:
break;
}
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);//初始化glut
计算机图形学实验指导(一)–OpenGL基础
1.综述
这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL提供了完备的支持。
尽管OpenGL包括渲染命令,但却独立于任何窗口系统和操作系统。因此,OpenGL并不包括用来打开窗口以及从键盘或鼠标读取事件的命令。在这里,我们应用GLUT库简化Windows窗口操作。
2.在VC中新建项目
新建一个项目。
选择菜单File中的New选项,弹出一个分页的对话框,选中页Projects中的Win32 Console Application项,然后填入你自己的Project name,回车即可。VC为你创建一个工作区(WorkSpace),你的项目就放在这个工作区里。
为项目添加文件
init();//初始化OpenGL
glutDisplayFunc(display);//设置显示回调函数
glutReshapeFunc(reshape);//设置reshape回调函数
glutKeyboardFunc(keyboard);//设置键盘回调函数
glutMainLoop();//进入主循环
{
glViewport(0, 0, width, height);//设置视口
glMatrixMode(GL_PROJECTION);//设置当前为投影变换模式
glLoadIdentity();//用单位矩阵替换当前变换矩阵
gluOrtho2D(0.0, width, 0.0, height);//设置正交投影视图体
glVertex2f(400.0f, 100.0f);//三角形的三个顶点
glVertex2f(600.0f, 100.0f);
glVertex2f(500.0f, 300.0f);
glEnd();//结束画三角形
glFlush();//开始绘制
}
//在窗口改变大小时调用
void reshape(int width, int wk.baidu.comeight)
OpenGL采用的是状态机的方式,用户设定一种状态,程序照此运行。如:glBegin(GL_LINES)设定画线状态(GL_LINES是OpenGL已定义好的常量),glColor3f()设定绘图所用颜色。
main()函数中的几个glut前缀函数是glut库函数,用以初始化窗口,大家不必深究,我们关注的是display()函数,它是我们真正绘图的地方。
3.一个OpenGL的例子
#include <GL/glut.h>
//初始化OpenGL
void init(void)
{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);//设置背景颜色
glShadeModel(GL_FLAT);//设置明暗处理
}
//主要的绘制过程
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);//清除颜色缓存
glBegin(GL_LINES);//开始画直线
glColor3f(1.0f, 1.0f, 1.0f);//设置颜色为白色
glVertex2f(30.0f, 30.0f);//第一根线的两个端点
glVertex2f(200.0f, 400.0f);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//设置为单缓存,RGB模式
glutInitWindowSize(640, 480); //设置窗口大小
glutInitWindowPosition(0, 0);//设置窗口起始位置
glutCreateWindow("Basic");//设置窗口标题
return 0;
}
程序说明:
每个函数的具体含义在程序注释中已作了叙述,不再多说。
OpenGL的函数在格式上很有特点,它以gl为前缀,并且函数名的最后一个字母指出所用的数据类型,如:glColor3f(),字母f指明要使用浮点数。字母前的数字指明参数个数或指明二维还是三维,如:glVertex2f()是要设置二维的点。
glColor3f(1.0f, 0.0f, 0.0f);//设置第二根线的颜色为红色
glVertex2f(25.0f, 350.0f);//第二根线的两个端点
glVertex2f(250.0f, 50.0f);
glEnd();//画线结束
glBegin(GL_TRIANGLES);//开始画三角形,注意,没有设颜色,所以还是红色
函数glColor3f()以RGB方式设置颜色,格式为:glColor3f(red,green,blue),每种颜色值在(0.0, 1.0)之间。
函数glVertex2f(x, y)设置二维顶点。
函数glBegin(UINT State)、glEnd()是最基本的作图函数,下面对它作一介绍。
为了使用OpenGL,我们需要在项目中加入相关的Lib文件:glut32.lib
选中菜单Project->Settings项,在link选项卡中的Object/Library modules栏中加入glut32.lib。
选择菜单File中的New选项,弹出一个分页的对话框,选中页Files中的C++sourcefile,填入文件名,钩选添加到刚才建的那个工程里,然后就可以开始编程了。
2.准备GLUT库
下载glut压缩包后,解压,把glut32.dll放在Windows的system32目录下,将glut32.lib放在C:\program files\Microsoft Visual Studio\VC98\Lib目录中,将glut.h放在C:\program files\Microsoft Visual Studio\VC98\Include\GL目录中
//处理键盘
void keyboard(unsigned char key, int x, int y)
{
switch (key)
{
case 27://esc键退出
exit(0);
break;
default:
break;
}
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);//初始化glut
计算机图形学实验指导(一)–OpenGL基础
1.综述
这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C++,它对OpenGL提供了完备的支持。
尽管OpenGL包括渲染命令,但却独立于任何窗口系统和操作系统。因此,OpenGL并不包括用来打开窗口以及从键盘或鼠标读取事件的命令。在这里,我们应用GLUT库简化Windows窗口操作。
2.在VC中新建项目
新建一个项目。
选择菜单File中的New选项,弹出一个分页的对话框,选中页Projects中的Win32 Console Application项,然后填入你自己的Project name,回车即可。VC为你创建一个工作区(WorkSpace),你的项目就放在这个工作区里。
为项目添加文件
init();//初始化OpenGL
glutDisplayFunc(display);//设置显示回调函数
glutReshapeFunc(reshape);//设置reshape回调函数
glutKeyboardFunc(keyboard);//设置键盘回调函数
glutMainLoop();//进入主循环
{
glViewport(0, 0, width, height);//设置视口
glMatrixMode(GL_PROJECTION);//设置当前为投影变换模式
glLoadIdentity();//用单位矩阵替换当前变换矩阵
gluOrtho2D(0.0, width, 0.0, height);//设置正交投影视图体
glVertex2f(400.0f, 100.0f);//三角形的三个顶点
glVertex2f(600.0f, 100.0f);
glVertex2f(500.0f, 300.0f);
glEnd();//结束画三角形
glFlush();//开始绘制
}
//在窗口改变大小时调用
void reshape(int width, int wk.baidu.comeight)
OpenGL采用的是状态机的方式,用户设定一种状态,程序照此运行。如:glBegin(GL_LINES)设定画线状态(GL_LINES是OpenGL已定义好的常量),glColor3f()设定绘图所用颜色。
main()函数中的几个glut前缀函数是glut库函数,用以初始化窗口,大家不必深究,我们关注的是display()函数,它是我们真正绘图的地方。
3.一个OpenGL的例子
#include <GL/glut.h>
//初始化OpenGL
void init(void)
{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);//设置背景颜色
glShadeModel(GL_FLAT);//设置明暗处理
}
//主要的绘制过程
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);//清除颜色缓存
glBegin(GL_LINES);//开始画直线
glColor3f(1.0f, 1.0f, 1.0f);//设置颜色为白色
glVertex2f(30.0f, 30.0f);//第一根线的两个端点
glVertex2f(200.0f, 400.0f);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//设置为单缓存,RGB模式
glutInitWindowSize(640, 480); //设置窗口大小
glutInitWindowPosition(0, 0);//设置窗口起始位置
glutCreateWindow("Basic");//设置窗口标题
return 0;
}
程序说明:
每个函数的具体含义在程序注释中已作了叙述,不再多说。
OpenGL的函数在格式上很有特点,它以gl为前缀,并且函数名的最后一个字母指出所用的数据类型,如:glColor3f(),字母f指明要使用浮点数。字母前的数字指明参数个数或指明二维还是三维,如:glVertex2f()是要设置二维的点。
glColor3f(1.0f, 0.0f, 0.0f);//设置第二根线的颜色为红色
glVertex2f(25.0f, 350.0f);//第二根线的两个端点
glVertex2f(250.0f, 50.0f);
glEnd();//画线结束
glBegin(GL_TRIANGLES);//开始画三角形,注意,没有设颜色,所以还是红色
函数glColor3f()以RGB方式设置颜色,格式为:glColor3f(red,green,blue),每种颜色值在(0.0, 1.0)之间。
函数glVertex2f(x, y)设置二维顶点。
函数glBegin(UINT State)、glEnd()是最基本的作图函数,下面对它作一介绍。
为了使用OpenGL,我们需要在项目中加入相关的Lib文件:glut32.lib
选中菜单Project->Settings项,在link选项卡中的Object/Library modules栏中加入glut32.lib。
选择菜单File中的New选项,弹出一个分页的对话框,选中页Files中的C++sourcefile,填入文件名,钩选添加到刚才建的那个工程里,然后就可以开始编程了。
2.准备GLUT库
下载glut压缩包后,解压,把glut32.dll放在Windows的system32目录下,将glut32.lib放在C:\program files\Microsoft Visual Studio\VC98\Lib目录中,将glut.h放在C:\program files\Microsoft Visual Studio\VC98\Include\GL目录中