У меня есть ситуация, в которой я не совсем уверен, как справиться. У меня есть объект openGl около 20 тыс. Вершин, и мне нужно предложить пользователю возможность выбрать любую из этих вершин (скажем, с наименьшей возможной погрешностью). Теперь вот что я хочу сделать, чтобы сделать это:
Рядом с трехмерным холстом объекта я также предлагаю пользователю 3 «среза», выполненных плоскостями x = 0; y = 0 и z = 0. Скажем, для простейшего примера для сферы это были бы 3 круга, соответствующие «вырезанию» одного из измерений. Теперь давайте возьмем z = 0 для примера. Когда пользователь нажимает на точку, скажем (x_circle, y_circle), я хотел бы получить фактическую точку в трехмерном представлении, где он щелкнул. Конечно, z будет 0, но я не могу найти способ получить x и y. Я могу легко перевести это (x_circle, y_circle) -> (x_screen, y_screen)
, которое будет иметь тот же результат, что и щелчок по холсту в этих координатах, но мне нужно найти способ перевести это в координаты (x, y, 0) в 3D-виде.
То же самое должно быть сделано с x = 0, y = 0, но я думаю, что если я смогу понять / реализовать способ для z = 0, я могу просто применить более или менее то же решение с добавленным поворотом над чем-то , Если кто-то может помочь с какими-либо примерами / кодом или даже математикой за этим, это очень помогло бы, потому что в настоящий момент я не совсем уверен, как поступить.