OpenGL基础知识(三)
2011-12-30 00:28
274 查看
今天讲一下如何在OpenGL中绘制一些简单的图形。
现在把OpenGL基础知识(二)中编写的程序做一下简单的修改,源代码如下:
#include <GL/glut.h>
void RenderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT); //清除颜色
glColor3f(0.0f,1.0f,0.0f); //设置颜色为绿色
glRectf(-25.0f,25.0f,25.0f,-25.0f); //绘制边长为50的矩形
glFlush(); //刷新
}
//当窗口大小变化时调用
void ChangeSize(GLsizei w,GLsizei h)
{
GLfloat aspectRatio;
if(0 == h)
h = 1;
//设置视口大小
glViewport(0,0,w,h);
//重置坐标系
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//建立裁剪区
aspectRatio = (GLfloat)w / (GLfloat)h;
if(w <= h)
glOrtho(-100.0,100.0,-100.0/aspectRatio,100/aspectRatio,1.0,-1.0);
else
glOrtho(-100.0*aspectRatio,100.0*aspectRatio,-100.0,100.0,1.0,-1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
//设置渲染
void SetupRC(void)
{
glClearColor(0.0f,0.0f,1.0f,1.0f);
}
int main(int argc,char* argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutCreateWindow("OpenGL Sample");
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
SetupRC();
glutMainLoop();
return 0;
}
以下是该程序的运行截图:
现在对以上的代码做简单的讲解。这个程序主要是绘制了一个蓝色背景的窗口,然后在窗口里面绘制了一个边长为50的绿色矩形。
glRectf函数就是用来绘制填充矩形的。glutDisplayFunc函数用来设置当窗口大小改变时运行ChangeSize函数。当窗口大小改变时需要重置坐标系统,并且视口也会被调整大小。
......
现在把OpenGL基础知识(二)中编写的程序做一下简单的修改,源代码如下:
#include <GL/glut.h>
void RenderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT); //清除颜色
glColor3f(0.0f,1.0f,0.0f); //设置颜色为绿色
glRectf(-25.0f,25.0f,25.0f,-25.0f); //绘制边长为50的矩形
glFlush(); //刷新
}
//当窗口大小变化时调用
void ChangeSize(GLsizei w,GLsizei h)
{
GLfloat aspectRatio;
if(0 == h)
h = 1;
//设置视口大小
glViewport(0,0,w,h);
//重置坐标系
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//建立裁剪区
aspectRatio = (GLfloat)w / (GLfloat)h;
if(w <= h)
glOrtho(-100.0,100.0,-100.0/aspectRatio,100/aspectRatio,1.0,-1.0);
else
glOrtho(-100.0*aspectRatio,100.0*aspectRatio,-100.0,100.0,1.0,-1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
//设置渲染
void SetupRC(void)
{
glClearColor(0.0f,0.0f,1.0f,1.0f);
}
int main(int argc,char* argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutCreateWindow("OpenGL Sample");
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
SetupRC();
glutMainLoop();
return 0;
}
以下是该程序的运行截图:
现在对以上的代码做简单的讲解。这个程序主要是绘制了一个蓝色背景的窗口,然后在窗口里面绘制了一个边长为50的绿色矩形。
glRectf函数就是用来绘制填充矩形的。glutDisplayFunc函数用来设置当窗口大小改变时运行ChangeSize函数。当窗口大小改变时需要重置坐标系统,并且视口也会被调整大小。
......
相关文章推荐
- OpenGL基础知识(四)
- OpenGL基础知识
- OpenGL开发基础知识介绍
- android开发基础知识:OpenGL纹理本质
- [OpenGL]从零开始写一个Android平台下的全景视频播放器——1.1 OpenGL ES 2.0基础知识
- OpenGL基础知识
- 基础OpenGL知识结构图
- OpenGL蓝宝书学习系列(一):3D图像的基础知识
- OpenGL中投影矩阵基础知识
- openGL基础知识
- OpenGL 入门基础知识
- OpenGL基础知识(一)
- OpenGL开发之旅基础知识介绍
- OpenGL基础知识
- OpenGL基础知识
- opengl基础知识
- OpenGL 基础知识-3D Graphics with OpenGL Basic Theory
- OpenGL基础知识
- OpenGL基础知识(五)
- opengl基础知识 关于四个变换的顺序