АП
Аленочка Потапова

Поиск местонахождения объектов в opengl. Qt

Делаю программу в Кьюте, которая строит множество объектов на экране с помощью OpenGL. Эти объекты я одновременно могу масштабировать, изменяя размеры окна с помощью glOrtho(), поворачивать с помощью функции glRotate*(). Проблема заключается в том, что мне нужно при наведении курсора выяснить, на какой объект он был наведён. Не могу понять, как это реализовать. Нужно, чтобы определялась хотябы координата этого объекта, по которой он строился. Дальше, естественно, легко определить будет, что за объект.
То есть нужно, чтобы я навёл курсор, и волшебство мне выдало координаты объекта в x, y, z. Есть у кого какие соображения?

З. Ы. Гуглил, не нашёл. Поэтому посылать в гугл меня не надо 🙂

Михаил Дорохин
Михаил Дорохин

если размеры изменяются через glOrtho, значит проекция ортогональная. можно обойтись переводом координат курсора в оконные (от -1.0 до 1.0) (хотя MVM учесть придется) . в общем случае полученные оконные дополняем аля v = (x, y, z != 0(в принципе любой) , w = 1), потом делаем обратное преобразование мол v' = inv(MVP)*v. пускаем луч через v' и позицию камеры. дальше тупо искать пересечения луча с объектами. исходя из того, что объектов "множество" возможно придется похитрить со структурой их хранения для оптимизации поиска пересечения. а еще в старом дряблом glu вроде была ф-я gluUnproject(...)

Похожие вопросы
Для тех кто знает QT и C++
Поиск местонахождения человека по номеру телефона через спутник.
Как в Qt построить многоугольник по вектору?
Помогите С++,компилятор Qt;
QT QListWidgetItem ?
Аргументы функции в Qt
нужно сделать в Qt,кто поможет?
Помогите решить в QT
Вопрос программистам по QT
Opengl. Нарисовать линию мышкой для выделенного объекта, и установить трафарет, как?