사용자 입력을 왼쪽 및 오른쪽 클릭 형태로 받아서 다각형을 화면에 그려 봅니다. 모든 왼쪽 클릭은 (x, y) 좌표로 캡처되어 배열로 저장됩니다. 사용자가 마우스 오른쪽 버튼을 누른 후 마우스 기능은 다각형을 끝내고 (마지막 점을 원본에 연결) 화면에 표시해야합니다. 버텍스 배열을 사용하여 하드 코드 된 값으로 표시 기능에서 코드를 사용했는지 확인 했으므로 종료 조건 (즉, "GLUT_RIGHT_CLICK")을 처리하는 방법과 관련이 있다고 생각합니다.
여기에 오류가 표시 될 수 있습니까? 함수를 테스트 할 때 마우스 오른쪽 버튼을 클릭하면 충돌이 발생합니다.사용자 입력에서 그리기 OpenGL 버텍스 배열
void mouseMove(int click, int state, int x, int y)
{
clearFramebuffer();
static int i = 0;
drawit();
glEnableClientState(GL_VERTEX_ARRAY);
while(click!=GLUT_RIGHT_BUTTON){
if(click==GLUT_LEFT_BUTTON && state == GLUT_DOWN){
vertices[i]=x;
vertices[i+1]=y;
//{10, 10, 10, 50, 50, 50, 50, 10};
//printf("Coords: (%d,%d)\n",vertices[i],vertices[i+1]);
i++;i++;
}
}
//drawit();
glVertexPointer(2, GL_INT, 0, vertices);
glDrawArrays(GL_POLYGON, 0, 10);
glDisableClientState(GL_VERTEX_ARRAY);
glutPostRedisplay();
}
mouseMove 나은과 같이 메인에서 호출됩니다
glutMouseFunc(mouseMove);
이 너무 정점 배열과 관련이없는 다른 솔루션이 허용되지 않는 숙제의 일부입니다.