首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何绘制一个能在OpenGL中挑选物体的机器人手臂?

如何绘制一个能在OpenGL中挑选物体的机器人手臂?
EN

Stack Overflow用户
提问于 2013-10-23 01:03:42
回答 1查看 1.6K关注 0票数 0

我在实现能够选择对象的机器人手臂方面遇到了困难,因为我在实现过程中使用了glTranslate()、glRotate()调用,机器人的每个部分都依赖于前面的部分。

示例:

代码语言:javascript
复制
     void drawRobo()
         {

              draw a Cylinder as Base;

              glTranslate(); 
              drawArmpart1();
              glTranslate();  
              drawJoint1();
              glRotate();  
              drawArmpart2();
              glTranslate();
              drawGrabbers(); // The claw or the endeffector   


         }
    void drawObjects()
          {
           glTranslate();
           drawCube() // Object
           glTranslate();
           drawSphere() // Object 2

          }

    void display()
      {
       drawRobo();
       drawObjects();
       glPostredisplay();
      }   

现在的问题是,当我使用glRotate()旋转收集器或抓取器时,我的对象也会旋转,我不想这样做。我想要能够旋转关节和手臂,使它更接近物体,然后我想用抓取器来挑选它们。

我该怎么处理呢?我在所有需要它们的地方都有glPushMAtrix()和glPopMatrix()命令。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-23 04:14:07

由于您有此问题,很明显,您没有适当的推送和pop矩阵操作。你的伪码应该是:

代码语言:javascript
复制
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// setup view matrix

glPushMatrix();
// setup robot's world matrix
drawRobo();
glPopMatrix();

// setup object's world matrix
drawObjects();

glutPostRedisplay();

注意,最后一次抽签调用不使用push/pop --只是因为它是最后一个,所以不需要在它之后恢复矩阵。

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

https://stackoverflow.com/questions/19530989

复制
相关文章

相似问题

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