我是新手。。关于Opengl编程的问题。。? 400 报错
各位大虾好。最近在编一个程序,关于机器人的。因为我之前不太懂编程,所以这次遇到了些问题。下面是我程序的部分代码:
GLfloat x = 0;
 GLfloat y = 0;
 GLint menu_id = 0;
 GLUquadricObj *p;
 GLboolean play = GL_FALSE;
 void display()
 {
 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
    
    glTranslatef(x, y, 0.0);
    glColor3f(0.0, 0.0, 0.0);
    object();
    
    glutSwapBuffers();
 }
 void idle()
 {
 
  if (play) {
 
   x += 0.1;
   y += 0.1;
   if (x > 8-0.5*torso_length) x = -8+0.5*torso_length;
   if (y > 8-2*torso_radius-neck_height-2*head_bottomRadius) y = -8+2*leg_height+0.02+torso_radius;
  }
     else {
 
  }
     glutPostRedisplay();
 }
void mymenu(int id)
 {
 
    if(id == 1) idle();
    if(id == 2) return;
    if(id == 3) return;
 }
int main(int argc, char **argv)
 {
 
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(600, 600);
    glutInitWindowPosition(0 ,0);
    glutCreateWindow("Lab4");
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glEnable(GL_DEPTH_TEST);
    init();
    menu_id = glutCreateMenu(mymenu);
    glutAddMenuEntry("Translating", 1);
    glutAddMenuEntry("Bending", 2);
    glutAddMenuEntry("Rotating", 3);
    glutAttachMenu(GLUT_RIGHT_BUTTON);
    glutIdleFunc(idle);
    glutMainLoop();
 }
需求是这样的,创建一个menu来控制机器人,其中有一项是对机器人的整体平移,要求第一次点击菜单那项时,机器人移动,第二次点时停止。我先把所有的组件(胳膊什么的)都在object()这个函数里组装好了。现在我图像、菜单都能正常显示,但是点击菜单它却不动。。我也不知道哪里出错了,请大家帮我看看。。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
不太理解OPENGL和机器人有什么关系。你把问题本身得说清楚。 
######回复 @炫紫调 : opengl以前我曾摸过一段时间。我个人给你个建议,用C++之类的面向对象先建好模型后,OPENGL只是VIEW部分的工作。别混在一起。######用opengl里的组件画一个立体的机器人,机器人的身体由多个长方体组成。######
你这个上面的代码只是用OpenGL里面的函数实现了组合图形的显示,并没有具体的操作事件触发代码!实现的方法有许多,这里就不赘述了!
######请高手分析下……迷茫ing~######id==1的话程序会调用idle(),在这个函数里有触发的全局变量play啊。。###### void mymenu(int id)}
id是你的菜单id,这里要添加你的相应函数