Я хочу проверить, находится ли какая-либо конкретная точка в мире на квадре / самолете? Квадрат / плоскость может быть переведен / повернут / масштабирован по любым значениям, но он все равно должен быть в состоянии определить, находится ли данная точка на нем. Мне также нужно получить место, где должна была быть точка, если на квад не был применен какой-либо поворот / масштабирование / перемещение.
Например, рассмотрим четырехугольник с координатами 0, 0, 0 размером 100×100, повернутый на 45 градусов вдоль оси z. Если мое местоположение мыши в мире находится в точке (x, y, 0,), мне нужно знать, попадает ли эта точка в этот квад в текущем преобразовании? Если да, то мне нужно знать, не было ли применено никаких преобразований к квадру, где эта точка была бы на нем? Любой пример кода будет очень полезен
Лучистый подход, вероятно, самый простой:
gluUnProject()
чтобы получить направление космического луча в пространстве. Источник луча — это положение камеры.Математическая библиотека, такая как GLM будет очень полезен, если вы не уверены в какой-то части математики, связанной с этим, у нее есть соответствующие функции, такие как glm::unProject()
а также функции для инвертирования матриц и выполнения всех других необходимых преобразований.
Других решений пока нет …