Здравствуйте.
У меня в трёхмерном мире есть координаты камеры и точка цели, куда направлена эта камера. Таким образом можно построить плоскость, на которой будет этот мир отображаться (то, что мы будем видеть на мониторе). Насколько я понимаю, эта плоскость будет проходить через камеру и будет перпендикулярна прямой, соединяющей камеру и точку цели. И вот как спроецировать точку из трёхмерного мира на эту плоскость? Задача довольно стандартная, уверен для для её решения есть стандартные формулы.
Я работаю в Delphi c компонентами GLScene и там есть уже готовая функция WorldToScreen, которая принимает трёхмерную точку в условных единицах и возвращает двухмерную точку в пикселах. Ho почему-то при её многократном вызове начинаются беспорядочные ошибки, уж не знаю почему. Решил, что проще будет написать свою такую же функцию. И ещё наверняка в OpenGL есть что-то подобное...
P. S. Проецирование параллельное
Как спроецировать точку из трёхмерного мира на плоскость его отображения?
Как спроецировать точку из трёхмерного мира на плоскость его отображения?
Последний раз редактировалось E3605 30 ноя 2019, 08:09, всего редактировалось 1 раз.
Причина: test
Причина: test
Как спроецировать точку из трёхмерного мира на плоскость его отображения?
что значит проэцирование паралельное ?
Куб должен как квадрат проэцироваться? (обьекты лежащие впереди не должны казаться больше? )
если да - то очень просто
вращаешь весь мир c помощью матрицы и отбираешь все x,y для которых -a<x
Куб должен как квадрат проэцироваться? (обьекты лежащие впереди не должны казаться больше? )
если да - то очень просто
вращаешь весь мир c помощью матрицы и отбираешь все x,y для которых -a<x
Последний раз редактировалось Xelth 30 ноя 2019, 08:09, всего редактировалось 1 раз.
Причина: test
Причина: test
Как спроецировать точку из трёхмерного мира на плоскость его отображения?
Xelth писал(а):Source of the post
Куб должен как квадрат проэцироваться? (обьекты лежащие впереди не должны казаться больше? )
Да.
He совсем понял, точнее совсем не понял)
Последний раз редактировалось E3605 30 ноя 2019, 08:09, всего редактировалось 1 раз.
Причина: test
Причина: test
Вернуться в «Computer Science»
Кто сейчас на форуме
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 0 гостей