计算机图形学-OpenGL投影变换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称:OpenGL投影变换(实验四)

班级:信09-1

学号:2108190911211

姓名:王杰

【实验目的】

1、掌握GLUT中多面体和二次曲面的生成

2、掌握正交投影及透视投影变换

【实验内容】

1、源程序

#include

GLsizei winWidth = 500, winHeight = 500;

void init(void)

{

glClearColor(1.0,1.0,1.0,0.0);

}

void display(void)

{

glClear(GL_COLOR_BUFFER_BIT);

glColor3f(0.0,0.0,0.0);

glTranslatef(0.0,0.0,-5.0);

glRotatef(30,2,2,2);

glutWireOctahedron ( );//八面体

glFlush();

}

void winReshapeFcn(GLint newWidth,GLint newHeight) {

glViewport(0,0,newWidth,newHeight);

glMatrixMode(GL_PROJECTION);

//glFrustum(-2.0,2.0,-2.0,2.0,2.0,20.0);//透视投影

glOrtho(-2.0,2.0,-2.0,2.0,2.0,20.0);//正交投影

glMatrixMode(GL_MODELVIEW);

glClear(GL_COLOR_BUFFER_BIT);

}

void main(int argc,char** argv)

{

glutInit(&argc,argv);

glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);

glutInitWindowPosition(100,100);

glutInitWindowSize(winWidth,winHeight);

//glutCreateWindow("投影变化—透视投影");

glutCreateWindow("投影变化—正交投影");

init();

glutDisplayFunc(display);

glutReshapeFunc(winReshapeFcn);

glutMainLoop();

}

2、运行结果截图(两幅)

3、正交及透视投影函数功能及使用说明

glFrustum(-2.0,2.0,-2.0,2.0,2.0,20.0);//透视投影glOrtho(-2.0,2.0,-2.0,2.0,2.0,20.0);//正交投影

glutCreateWindow("投影变化—透视投影");

glutCreateWindow("投影变化—正交投影");

相关文档
最新文档