首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL -旋转走错了方向

OpenGL -旋转走错了方向
EN

Stack Overflow用户
提问于 2016-06-04 15:32:39
回答 1查看 547关注 0票数 0

我有这个部分的代码,绘制一个矩形的平行线与颜色的脸,以区别他们。

代码语言:javascript
复制
glMatrixMode(GL_MODELVIEW);     // To operate on model-view matrix
glLoadIdentity();                 // Reset the model-view matrix

glNewList(1, GL_COMPILE);
glBegin(GL_QUADS);
    glVertex3f(-1, -1, 1.0f);
    glVertex3f(1, -1, 1.0f);
    glVertex3f(1, 1, 1.0f);
    glVertex3f(-1, 1, 1.0f);
glEnd();
glEndList();

glTranslatef(0, 0, -50);

deg += 0.03;
glRotatef(deg, 0, 1, 0);

glScalef(10, 10, 20);

glColor3f(1, 0, 0); //red
glCallList(1);

glColor3f(1, 1, 0); //yellow
glRotatef(90, 0, 1, 0);
glCallList(1);

glColor3f(0, 1, 0); //green
glRotatef(90, 0, 1, 0);
glCallList(1);

glColor3f(0, 1, 1); //cyan
glRotatef(90, 0, 1, 0);
glCallList(1);

glColor3f(0, 0, 1); //blue
glRotatef(90, 1, 0, 0);
glCallList(1);

glColor3f(1, 0, 1); //magenda
glRotatef(180, 1, 0, 0);
glCallList(1);

这也是idleFunc的回调,因此对象一直在旋转。我的问题是,我用来绘制对象的旋转图是相反的。前面的脸是红色的,而黄色的是右边而不是左边,青色则是左边的。同样的情况发生在顶部和底部(蓝色在底部,而magenda在顶部)。

更奇怪的是,旋转使整个物体旋转,就像预期的那样遵循右手法则。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-05 11:06:01

就像雷托·科拉迪在他的评论中所说的那样,我的想法似乎错了。我以为整个飞机都会旋转,然后把立方体放在投影的右边,这样左边就会变成黄色。

但是当然,旋转的是轴,所绘制的东西不受以后的转换的影响。所以真正发生的是,红色画在前面,然后z轴在右边,黄色画在那里,等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37631981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档