分享

OpenGL绘制长方体

 方小哥 2013-08-27

#include <glut.h>  //引用相关包

void display(void)
{
 
 glClear(GL_COLOR_BUFFER_BIT);  //清空颜色缓冲区
 glColor3f(0,1,1);   //重置颜色
 glLoadIdentity();   //清空矩阵
 glTranslatef(0,0,-5); //将场景中的物体沿z轴负方向移动5个单位长
 glRotatef(40,0,1,0);
 //gluLookAt(0,0,5,0,0,0,0,2,0); //视点变换
 glScalef(1,2,1);  //模型变换
 glutWireCube(1.0); //绘制实心立方体和线框立方体
 glFlush();   //刷新窗口以显示当前绘制图形
}
void init(void)
{
 glClearColor(0,0,0,0);
 glShadeModel(GL_FLAT); //选择平面明暗模式或光滑明暗模式
}

void reshape(int w,int h)
{
 glViewport(0,0,(GLsizei)w,(GLsizei)h);   //设置机口
 glMatrixMode(GL_PROJECTION);  //指定哪一个矩阵是当前矩阵
 glLoadIdentity();
    gluPerspective(60,1,1.5,20);   //创建透视投影矩阵(fovy,aspect,zNear,zFar);
 //glFrustum(-1,1,-1,1,1.5,20.0);  //用透视矩阵乘以当前矩阵(left,Right,bottom,top,near,far);
 glMatrixMode(GL_MODELVIEW);
}
int main(int argc, char *argv[])
{
 glutInit(&argc, argv); //固定格式
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);   //缓存模式
 glutInitWindowSize(400, 400);    //显示框的大小
    glutInitWindowPosition(400,400); //确定显示框左上角的位置
    glutCreateWindow("第⑤个OpenGL程序(绘制立方体)");
 init();
    glutDisplayFunc(display);
 glutReshapeFunc(reshape);
    glutMainLoop(); //进人GLUT事件处理循环
    return 0;
}

 

运行结果:

OpenGL绘制长方体 - 随~~枫 - 随风飘落的思恋————博客

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多