Определение размера резкости вокруг четырехугольника для 2D GUI в 3D - PullRequest
1 голос
/ 02 февраля 2011

Я думал о способах размещения моего интерфейса GUI в трехмерной проекции перспективы, чтобы у меня были эффекты трехмерного вращения на моих элементах интерфейса "2D". Проблема, с которой я столкнулся, заключается в том, что было трудно позиционировать элементы и убедиться, что все они сразу попадают в поле зрения.

Идея, которая у меня была до сих пор, состоит в том, чтобы определить двумерный четырехугольник в пространстве для представления «экранной» поверхности и расположить графический интерфейс поверх четырехугольника таким же образом, как я бы расположил графический интерфейс в 2D. Затем я переместил бы камеру к центру четырехугольника, нацелил камеру на нее и спроецировал положение камеры на определенное расстояние вдоль поверхности нормали четырехугольника, пока весь квад не поместится в усеченную область просмотра. Проблема в том, что я не уверен, как найти минимальное расстояние для проецирования положения камеры.

Кто-нибудь знает уравнение / алгоритм для нахождения этого?

1 Ответ

1 голос
/ 02 февраля 2011

Вы можете просто сделать петлю и увеличить расстояние и измерить, пока оно не уместится ... но я думаю, что с помощью некоторого базового триггера вы можете найти точное расстояние, необходимое для того, чтобы изображение выглядело определенного размера.

Вы хотите заполнить квадрат определенного размера. Если вы представите квадрат такого размера, когда камера будет находиться на некотором расстоянии (d) от центра и центрирована в пределах изображения, то вы бы взяли половину ширины нужного вам изображения (w) и половину угла обзора камеры. (а) и используйте синус, чтобы найти расстояние - вы знаете угол и размер противоположной стороны.

Итак, формула в основном такая: д = грех (а) * ш

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...