оконные и мировые координаты
Проблема: при изменении размеров окна, изображение визуально изменяется по масштабу, хотя мировые координаты неизменны. Например квадрат на экране выглядит как прямоугольник, вытянутый по ширине (высота окна ведь меньше ширины при развороте на полный экран) Как быть? Надо чтобы при изменении размеров окна, картинка сохраняла масштаб не только координатный, но и визуальный.
Делал так:
glBegin(GL_LINES);
glVertex2f(-1.0f+masUch.Point[j].xEkr/(double)rect.right*2, 1.0f-masUch.Point[j].yEkr/(double)rect.bottom*2);
glVertex2f(-1.0f+masUch.Point[j+1].xEkr/(double)rect.right*2, 1.0f-masUch.Point[j+1].yEkr/(double)rect.bottom*2);
glEnd();
т.е. Брал экранные координаты и переводил их в мировые по таким формулам в процессе рисования линии. Тогда все нормально, но край экрана соответствует 1 или -1 мировой системы, т.е. при отдалении камеры (функция gluLookAt(...)), рисование происходит в пределах 1...-1 мировых координат не на всем экране.
Вопрос: как заставить программу рисовать в любой точке экрана (в мировых координатах ибо они бесконечны, что мне и надо) и не изменять масштаб по высоте и ширине при изменении размеров окна программы. Если окно очень маленькое, то изображение (например линия) должно быть видимо частично, а не подгоняться под размер окна. Т.е. аналог AutoCad. Использование gluUnProject(...) проблемы не решает.
спасибо.