Как спроецировать точку из трёхмерного мира на плоскость его отображения?

E3605
Сообщений: 7
Зарегистрирован: 29 авг 2009, 21:00

Как спроецировать точку из трёхмерного мира на плоскость его отображения?

Сообщение E3605 » 03 сен 2009, 09:33

Здравствуйте.

У меня в трёхмерном мире есть координаты камеры и точка цели, куда направлена эта камера. Таким образом можно построить плоскость, на которой будет этот мир отображаться (то, что мы будем видеть на мониторе). Насколько я понимаю, эта плоскость будет проходить через камеру и будет перпендикулярна прямой, соединяющей камеру и точку цели. И вот как спроецировать точку из трёхмерного мира на эту плоскость? Задача довольно стандартная, уверен для для её решения есть стандартные формулы.

Я работаю в Delphi c компонентами GLScene и там есть уже готовая функция WorldToScreen, которая принимает трёхмерную точку в условных единицах и возвращает двухмерную точку в пикселах. Ho почему-то при её многократном вызове начинаются беспорядочные ошибки, уж не знаю почему. Решил, что проще будет написать свою такую же функцию. И ещё наверняка в OpenGL есть что-то подобное...

P. S. Проецирование параллельное
Последний раз редактировалось E3605 30 ноя 2019, 08:09, всего редактировалось 1 раз.
Причина: test

Xelth
Сообщений: 121
Зарегистрирован: 04 ноя 2008, 21:00

Как спроецировать точку из трёхмерного мира на плоскость его отображения?

Сообщение Xelth » 03 сен 2009, 13:48

что значит проэцирование паралельное ?

Куб должен как квадрат проэцироваться? (обьекты лежащие впереди не должны казаться больше? )



если да - то очень просто

вращаешь весь мир c помощью матрицы и отбираешь все x,y для которых -a<x
Последний раз редактировалось Xelth 30 ноя 2019, 08:09, всего редактировалось 1 раз.
Причина: test

E3605
Сообщений: 7
Зарегистрирован: 29 авг 2009, 21:00

Как спроецировать точку из трёхмерного мира на плоскость его отображения?

Сообщение E3605 » 04 сен 2009, 06:39

Xelth писал(а):Source of the post
Куб должен как квадрат проэцироваться? (обьекты лежащие впереди не должны казаться больше? )

Да.

He совсем понял, точнее совсем не понял)
Последний раз редактировалось E3605 30 ноя 2019, 08:09, всего редактировалось 1 раз.
Причина: test


Вернуться в «Computer Science»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 0 гостей