Соотношение между расстоянием в трехмерном пространстве и его глубиной z - PullRequest
1 голос
/ 05 февраля 2012

У меня плоская плоскость 2D-графики с камерой, указывающей на них.Я хочу получить эффект, поэтому, когда пользователь сжимает и увеличивает изображение, похоже, что он закрепил свои пальцы на плоскости и может реально увеличить масштабирование.Для этого мне нужно рассчитать расстояние между их пальцами до расстояния в трехмерном пространстве (что я уже могу сделать), но затем мне нужно сопоставить это трехмерное расстояние со значением az.

Например, есликвадрат шириной 100 единиц и уменьшенный до 50 единиц (50%), на сколько больше назад камера должна переместиться, чтобы уменьшить квадрат на 100 единиц вдвое?

Проще говоря, если у меня естьрасстояние в трехмерном пространстве, как рассчитать расстояние от камеры, необходимое для сжатия этого трехмерного пространства на определенную величину?

1 Ответ

0 голосов
/ 05 февраля 2012

EDIT:

Итак, я попробовал это сам и придумал формулу:

Допустим, вы на расстоянии 1 единицы от объекта. Если вы хотите уменьшить его до 50% (коэффициент увеличения), новое расстояние будет равно 2 единицам => 1 / 0,5 = 2. Камера должна быть вдвое дальше.


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

Если вы используете ортографическую проекцию , вы можете просто настроить поле зрения / масштабировать матрицу проекции.

...