用gluPerspective(60.0, aspect, 1.0, 20.0);这个函数定义了一个视景体,我的理解是在z轴1.0到20.0之间的一个对称视景体,象下面的代码能在屏幕上显示么?
glTranslatef(0.0, 0.0, -2.0); /* viewing transformation */ //glScalef (1.0, 2.0, 1.0); /* modeling transformation */ // auxWireCube(1.0); /* draw the cube */
//glClipPlane (GL_CLIP_PLANE0, eqn); //glEnable (GL_CLIP_PLANE0); glRotatef(60.0, 1.0, 0.0, 0.0); auxWireSphere(1.0);
我的理解是:glTranslatef(0.0, 0.0, -2.0); /* viewing transformation */这个函数把视点沿z轴移动了2个单位,
已经移动到视景体外面了,是不能显示的,但实际上是可以显示的,为什么?
还有在gluPerspective(60.0, aspect, 1.0, 20.0)这个函数中,为什么角度越大,离物体就越远-物体越小,角度小,
离物体越近-物体越大。
glTranslatef(0.0, 0.0, -2.0); /* viewing transformation */ //glScalef (1.0, 2.0, 1.0); /* modeling transformation */ // auxWireCube(1.0); /* draw the cube */
//glClipPlane (GL_CLIP_PLANE0, eqn); //glEnable (GL_CLIP_PLANE0); glRotatef(60.0, 1.0, 0.0, 0.0); auxWireSphere(1.0);
我的理解是:glTranslatef(0.0, 0.0, -2.0); /* viewing transformation */这个函数把视点沿z轴移动了2个单位,
已经移动到视景体外面了,是不能显示的,但实际上是可以显示的,为什么?
还有在gluPerspective(60.0, aspect, 1.0, 20.0)这个函数中,为什么角度越大,离物体就越远-物体越小,角度小,
离物体越近-物体越大。
解决方案 »
- 关于端口号 以及socket的疑问
- 请教一个出错,如何解决。
- 请问flex(就是自动生成词法分析的那个)具体怎么使用呢
- 推荐:vc6.0视频教学录像,要的进~~~
- MDI 子窗体最大化问题
- 快急死了,救命啊。关于数据传输!!
- 编译时发生的这种错误是什么意思?
- 如何创建透明的CStatic和CEditBox??
- 面试时不好回答的一个问题:
- 寻求《电脑爱好者》 1999 年第6期擂台赛(判断点是否在n边行内)源程序或相关程序或建议(龙星)2
- 有关Csplitter切分窗口的头文件声明问题
- 用VC制作颜色组合框时,在DrawItem()中的itemID总是返回一个很大的值(4294967295),不知道怎么回事,望高人指教。
=======================
你理解移动两个单位是正确的,但是它不是向屏幕外边移动两个单位,而是向屏幕里边移动了两个单位。就是说从0点移动到了-2.0点。
而perspertive的参数里边的1 和20是从视点到裁减面的距离。可以详细看看MSDN关于该函数的参数解释
可以理解为视点在Z轴的-2处,物体在0处,所以物体还在视景体内;因为角度越大,视场越大,相对的物体就变小了