как узнать, перемещается ли мышь на объект

У меня на экране есть квадратный объект:

glVertex3d(-0.1, -0.1, -0.1);
glVertex3d(0.1, -0.1, -0.1);
glVertex3d(0.1, 0.1, -0.1);
glVertex3d(-0.1, 0.1, -0.1);

Теперь я хочу знать, движется ли мышь над этим объектом.

1
nl ja de

3 ответы

Прежде всего следует упомянуть, что вы должны знать, в каком пространстве вы будете выполнять свои расчеты. Указатель мыши имеет местоположение, соответствующее экрану или окну, и ваш объект (в этом примере) имеет координаты пространства модели.

Вы должны выбрать одно пространство и преобразовать все ваши координаты в выбранное пространство.

Here is a blog post describing some of issues: http://bartlomiejfilipek.blogspot.com/2012/06/select-mouse-opengl.html

0
добавлено

Если его просто простой квадрат, то лучше всего вручную преобразовать ваши 4 вершины в пространство экрана (путем умножения их на ваши модели-проекции-матрицы), а затем преобразовать ваши координаты мыши в диапазон от -1 до 1 и, наконец, проверяя, совпадают ли ваши координаты мыши в описываемом полигоне. Также см. gluProject , чтобы помочь вам преобразовать точки из 3D-пространства в экранное пространство.

0
добавлено

Я думаю, что gluPickMatrix - это то, что вы ищете.

you can find more details here

0
добавлено
pro.cxx
pro.cxx
3 049 участник(ов)

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

supapro.cxx
supapro.cxx
1 925 участник(ов)

Чат для тех, кто немного знает C++, простые вопросы по реализации, синтаксису и ide – сюда, а для другого есть: /Главный чат по серьезным вопросам — @ProCxx /Чат по обсуждению всего — @fludpac

pro.graphon (and gamedev)
pro.graphon (and gamedev)
389 участник(ов)

Обсуждаем стандарты консорциума Khronos: OpenGL, OpenCL и пр., предлагаем различные работы, туторы, интересные материалы по этим стандартам (и помечаем их тегами). Правила чата и инфо по системе тегов – /rules. Реклама только по согласованию с @AlexFails.

C++ Russia
C++ Russia
384 участник(ов)

Сообщество разработчиков C++ в Telegram.

cxx.Дискуссионная
cxx.Дискуссионная
298 участник(ов)

это не двач, общайтесь вежливо; разговор на почти любые темы; Не согласны с баном? В лс @AlexFails, @ivario

C++ для маленьких и тупых
C++ для маленьких и тупых
105 участник(ов)

Лоу левел (по среднему IQ участников) чатик ExtremeCode @extremecode Флудилка @extremecode_rest