OpenGL基础知识(三)

今天讲一下如何在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函数。当窗口大小改变时需要重置坐标系统,并且视口也会被调整大小。

......睡觉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值