如何根据用户输入在OpenGL中显示/隐藏点?

时间:2017-02-22 03:26:16

标签: c++ opengl

我有一个“绘图”功能,目前只使用交互文件根据用户点击鼠标左键绘制点。点的绘制工作正常,但我无法弄清楚如何根据用户命令“隐藏”点。目前,我有一个菜单设置,通过鼠标中键点击激活,一个选项是“显示/隐藏控制点”,但它不起作用。

我的观点如下:

void draw(int mode)
{
unsigned int i;

// The following lines  draw all the points
   glColor3f (0.0, 1.0, 1.0);
   glPointSize(5.0);
   glBegin(GL_POINTS);
   for (i=0; i<C->B.size(); i++)
   glVertex2f(C->B[i].x, C->B[i].y);
   glEnd();
}

最初,我曾尝试定义一个名为showCtrlPts的整数,其整数设置为1.我设置了一个selectMessage函数,它将中间按钮菜单中的每个选项视为一个案例。对于显示/隐藏点的情况,我只是改变了showCtrlPts整数的值,并认为这样做(见下文)。只有它不起作用,现在我有点迷失如何继续。

void selectMessage(int msg)
{
    switch (msg) {
    case 1:
        if (!C->B.empty())
            C->B.clear();
        glutPostRedisplay();
        break;
    case 2:
        glutPositionWindow(50, 50);
        glutReshapeWindow(600, 400);
        break;
    case 3:
        glutFullScreen();
        break;
    case 4:
        if (showCtrlPts == 1)
        {
            showCtrlPts = 0;
            glColor3f(0.0, 0.0, 0.0);
        }
         if (showCtrlPts != 1)
        {
            showCtrlPts = 1;
            glColor3f(0.0, 1.0, 1.0);
        }
       break;
  case 10:
      exit(0);
      break;
  default:
      break;
      }
  glutPostRedisplay();
}

1 个答案:

答案 0 :(得分:0)

在功能void draw(int mode)中 评论专线glColor3f (0.0, 1.0, 1.0);