文档库 最新最全的文档下载
当前位置:文档库 › opengl茶壶作业

opengl茶壶作业

《计算机图形学》

题目

学院(部)

专业

班级

学生姓名

学号

一、程序功能:

在OpenGL中,绘制一个茶壶并实现对其的平移和旋转操作,并观察若是平移和旋转的变换顺序不同(即先平移再旋转或是先旋转再平移)结果会有何变化,从而理解组合变换,全局坐标系与局部坐标系的关系。

二、核心代码:

void dsp(void)

{

glClearColor (0.75f,0.75f,0.75f,1.0f);

glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

//-------------------------------------------//(1)先平移再旋转

glPushMatrix();

glTranslatef (0.5,0.0,0.0);

glRotatef (45,0.0,0.0,1.0);

display();

glPopMatrix ();

//------------------------------------------//(2)先旋转再平移

glPushMatrix ();

glRotatef (45,0.0,0.0,1.0);

glTranslatef (0.5,0.0,0.0);

display ();

glPopMatrix ();

}

int main(int argc, char** argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);

glutInitWindowPosition(0, 0);

glutInitWindowSize(500, 500);

glutCreateWindow(argv[0]);

init();

glutReshapeFunc(reshape);

glutDisplayFunc(dsp);

glutMainLoop();

return 0;

}

说明:在分别查看功能(1)和(2)时,需要将另一个的代码注释掉三、程序运行截图:

未变换前:

先平移再旋转:

先旋转再平移:

四、实际矩阵运算过程:

X’ 1

0 0

X

0.5 Y’= 0 1 0 Y + 0

Z’0 0 1 Z 0

X’cos45 -sin45 0 X Y’= sin45 cos45 0 Y Z’0 0 1 Z

先平移再旋转:

X’X

Y’= BA Y

Z’Z

先旋转再平移:

X’X

Y’=AB Y

Z’Z

五、全局坐标系与局部坐标系的理解:

全局坐标系的变换模式是固定坐标系的模式,是图形模式。全局坐标系下,物体的移动不会影响坐标系,坐标系是固定的,可以用这个坐标系定位物体。

局部坐标系的变换模式是活动坐标系模式,是空间模式。局部坐标系下,局部坐标系下,局部坐标系好像固定到物体上,可以定位物体上的某一点,物体移动到哪里,坐标系就跟着移动到哪里。

相关文档
相关文档 最新文档