Для одного из моих классов я создаю простую программу рисования с OpenGL, и один из первых шагов - сделать щелчок левой кнопкой мыши, чтобы создать многоугольник в окне. Я получаю его, чтобы нарисовать его, но многоугольник всегда заканчивается примерно на треть через окно справа от позиции, где я нажимаю
Мой код щелчка мышью ...
//function called when mouse is clicked
void mouseClick(int button, int state, int x, int y){
float ptr1[3] = { x-size, y-size, 0 };
float ptr2[3] = { x-size, y+size, 0 };
float ptr3[3] = { x+size, y+size, 0 };
float ptr4[3] = { x+size, y-size, 0 };
if( button == GLUT_LEFT_BUTTON && state == GLUT_DOWN){//if the left mouse button is clicked
glColor3f ( 1.0, 1.0, 1.0); //set color to white ( remove later)
glOrtho (0.0, 1.0, 0.0, 1.0, -1.0, 1.0); //sets the window coordinates?
glBegin (GL_POLYGON); //start drawing a polygon
glVertex3fv (ptr1);
glVertex3fv (ptr2);
glVertex3fv (ptr3);
glVertex3fv (ptr4);
glEnd();
glFlush(); //flushes all commands to ensure polygon is drawn
}
//glutPostRedisplay( );
}
Кто-нибудь может увидеть какие-либо очевидные недостатки? Размер - это число с плавающей точкой до 32, но я чувствую, что это не имеет отношения к этой проблеме.