1.在 写这段 程序 的 一开始 ,图形 没有 出来,因为 在 reShape函数 没写 投影矩阵的 函数;
2.还有 这段程序 我跟踪了 一下,首先 执行 reShape ,然后 才是 disPlay 函数,挺奇怪的。
等待 以后自己解答!如果 有好心的 博友 解答就是 极好的了。
学习了 新的 几个 OPENGL 函数。但是 对于 为什么 图形 会这样, 不明白!!!
glFrustum : 设置透视矩阵,并与当前矩阵相乘;
// cube.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <gl/glut.h>
void init(){
glClearColor(0,0,0,0);
//glEnable(GL_DEPTH_TEST);
}
void display(){
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1,1,1);
glLoadIdentity();
gluLookAt(0.0,0.0,10, 0.0,0.0,0.0, 0.0,-1.0,0.0);
//glTranslatef(0,0,-5);
//glScalef(1,2,1);
glutWireCube(4.0);
//glutSwapBuffers();
glFlush();
}
void reShape(int width,int height){
glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-1,1,-1, 1,1.5,20);
//gluPerspective(50,1,10,20);
glMatrixMode(GL_MODELVIEW);
}
int _tmain(int argc, _TCHAR* argv[])
{
glutInit(&argc,(char**)argv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitWindowSize(500,500);
glutInitWindowPosition(100,100);
glutCreateWindow("我的第一个三维物体!");
init();
glutDisplayFunc(display);
glutReshapeFunc(reShape);
glutMainLoop();
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/fuming0210sc/article/details/47092879