用vc++6.0编写一个单位立方体的正平行投影程序
时间: 2023-09-11 14:07:00 浏览: 127
VC++6.0安装pthread库过程图解
以下是使用VC++6.0编写单位立方体正平行投影程序的代码示例:
```c++
#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>
void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glLoadIdentity();
gluLookAt(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glPushMatrix();
glTranslatef(0.5, 0.5, 0.5); /* 将立方体移到第一象限 */
glutWireCube(1.0); /* 绘制单位立方体 */
glPopMatrix();
glFlush();
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0, 1.0, -1.0, 1.0, 1.0, 10.0);
glMatrixMode(GL_MODELVIEW);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}
```
这个程序使用OpenGL库绘制一个单位立方体,并对其进行了正平行投影。通过使用glOrtho函数,我们设置了观察体的大小和位置,从而实现了正投影效果。同时,我们使用了gluLookAt函数来设置观察点的位置和方向,使观察者可以看到整个立方体。
阅读全文