opengl画长方体正等轴测图

opengl画长方体正等轴测图得不到下面的效果:

img


下面是程序

#include <stdlib.h>
#include <time.h>
#include <GL/glut.h>
#include <math.h>
#include <stdio.h>

void display(void)

{

glClear(GL_COLOR_BUFFER_BIT);  //清空颜色缓冲区

glColor3f(0,1,1);   //重置颜色

glLoadIdentity();   //清空矩阵

glTranslatef(0,0,-5); //将场景中的物体沿z轴负方向移动5个单位长

glRotatef(45,0,1,0);
glRotatef(-35.264,1,0,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();

glOrtho(-5, 5, -5, 5, -8, 8);

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;

}

运行结果:

img