|
|
发表于 2005-11-18 12:47:00
|
显示全部楼层
Re: 求助,关于opengl的坐标变换
我不太懂你的意思,如果是问3D坐标最后怎么变到2D坐标的话,我可以给你解释一下:整个过程大概是这样的:模型变换(就是translated,rotated,scaled)->观察变换(世界坐标系->观察坐标系,就是我们选择好观察点,从哪个位置观察场景,一般我们用gluLookAt命令)->投影变换(平行投影还是透视投影,把视见体里的内容投影到投影面上,在这里3D坐标就转化为2D坐标)->视区变换(投影面映射到视区)这就是opengl的坐标变换过程。至于代码一般是在OnSize()函数里添加坐标变换:
......
glMatrixMode(GL_PROJECTION); // 投影变换
glLoadIdentity();
glOrtho(-5.0,5.0,-3.1,3.1,-10.0,10.0);// 平行投影,如果你要画2D的话,用glOrtho2D()
gluPerspective(60.0,gldAspect,2.0,20.0);//透视投影
glMatrixMode(GL_MODELVIEW); // 操作模型观察变换
glLoadIdentity();
glViewport(0, 0, cx, cy);//视区变换
不知道对你有没有帮助~呵呵 [em5] |
|