-1
我一直在做一個星期的作業,現在似乎無法弄清楚。OpenGl ---使用左鍵和右鍵單擊連接點
分配的要點是在您點擊左鍵時連接圖上的點。當你點擊右鍵時你提出了一個觀點,但它沒有連接到最後一點(它是獨奏的,獨立的)。當你再次點擊左邊的按鈕時,它應該連接到你所做的最後一個點。我的點擊有效,但連接不好。該方案低於..
glBegin(GL_LINES);
for (int i=0 ; i<= numberPoints;i++)
for(int j =0; j<=numberEdges; j++)
{
glVertex2fv(points[edges[i][0]]);
glVertex2fv(points[edges[i][1]]);
}
glEnd();
//這是個
glBegin(GL_POINTS);
for(int i = 0 ; i<numberPoints; i++)
{
glVertex2fv(points[i]);
}
glEnd();
// This is the left click
switch(button)
{
case GLUT_LEFT_BUTTON:
if(state==GLUT_DOWN)
{
points[numberPoints][0] = plotX;
points[numberPoints][1] = plotY;
previousPointSubscript = numberPoints;
edges[numberEdges][0] = previousPointSubscript;
edges[numberEdges][1] = numberPoints;
numberEdges++;
numberPoints++;
glutPostRedisplay();
glFlush();
}
break;
case GLUT_RIGHT_BUTTON:
if(state==GLUT_DOWN)
{
points[numberPoints][0] = plotX;
points[numberPoints][1] = plotY;
numberPoints++;
}
glutPostRedisplay();
glFlush();
break;
}
看起來像缺少部分代碼。但一個顯而易見的問題是,你將'edges'中每個條目的開始和結束點設置爲相同的值('numberPoints')。 'previousPointSubscript'與'numberPoints'的值相同,您可以在其中對'edges'條目進行賦值。 –
我如何向您發送整個代碼,以便您可以看到該問題。至於previousPointSubscript和numberPoints是相同的不是最後一點連接到新的點。 –
如果一條線的起點和終點相同,則線退化爲一個點。您可能希望在調試器中逐步完成整個任務,或者添加一些日誌記錄,以便您可以跟蹤代碼的執行情況,並查看它與預期邏輯不匹配的位置。 –