我有一个“绘图”功能,目前只使用交互文件根据用户点击鼠标左键绘制点。点的绘制工作正常,但我无法弄清楚如何根据用户命令“隐藏”点。目前,我有一个菜单设置,通过鼠标中键点击激活,一个选项是“显示/隐藏控制点”,但它不起作用。
我的观点如下:
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();
}
答案 0 :(得分:0)
在功能void draw(int mode)
中
评论专线glColor3f (0.0, 1.0, 1.0);