-1
我有一個「繪圖」功能,它目前只是使用一個交互文件來繪製基於用戶點擊鼠標的點。點的繪製工作正常,但我不知道如何根據用戶命令「隱藏」點。目前,我有一個菜單設置,通過點擊鼠標中鍵激活,一個選項是「顯示/隱藏控制點」,但它不起作用。如何根據用戶輸入在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
,其gloablly被設置爲等於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();
}
的'showCtrlPts'的做法是正確的道路要走。顯示你如何使用這個變量。 – BDL
我已經在上面的代碼中顯示了它,在'case 4'下。我顯然錯過了一些東西,但我還沒有弄清楚是什麼。 – cl40
警告:[你正在學習一個非常過時的OpenGL版本](https://kos.gd/posts/dont-use-old-opengl/) – Kos