【发布时间】:2014-03-07 09:57:18
【问题描述】:
我正在使用以下显示代码为一个项目绘制一个简单的旋转木马的底部:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, 1.0, 3.0, 7.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0, 4.0, 3.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0);
GLUquadricObj *obj = gluNewQuadric();
glTranslatef(0, 0, -0.05);
glColor3f(0, 0, 0);
gluCylinder(obj, radius, radius, 0.1, 100, 1);
glColor3f(0, 1, 0);
gluPartialDisk(obj, 0, radius, 100, 1, 0, 90);
glColor3f(1, 1, 0);
gluPartialDisk(obj, 0, radius, 100, 1, 90, 90);
glColor3f(1, 0, 0);
gluPartialDisk(obj, 0, radius, 100, 1, 180, 90);
glColor3f(0, 0, 1);
gluPartialDisk(obj, 0, radius, 100, 1, 270, 90);
glutSwapBuffers();
现在,这或多或少可以正常工作。它产生了这个,这是我所期望的(不是扩展):
这里的问题是它看起来很奇怪和不切实际。中心应该在......好吧,中心,但明显更“向下”产生的图像。旋转场景可以确认部分磁盘实际上大小相同且原点相同。这可能是什么原因造成的?
【问题讨论】:
-
从什么时候开始透视圆心,在中心?这是一个很好的解释:illustrationfixation.blogspot.co.at/2011/05/…
-
我想我应该说“中心附近的某个地方”。是的,透视将它“向下”移动了一点,但这看起来是错误的。
-
显然我不允许编辑 - 看着那个链接让我意识到生成的图像是向后的。较小的一半应该在“顶部”。