Как мне выполнить преобразование вида в перспективе в Java?Насколько я понимаю, есть какая-то волшебная 4-мерная матрица, которую я могу использовать, которая будет определять FOV, формат изображения и расстояния просмотра ближнего и дальнего обзора, но я не знаю, как создать эту матрицу.Я могу реализовать «PerspectiveTransform» в Java, но я не вижу эффекта при использовании следующих
double mat[][] = {
{1, 0, 0, 0},
{0, 1, 0, 0},
{0, 0, 1, 0},
{0, 0, 1, 0}};
PerspectiveTransform ps = new PerspectiveTransform(mat);
ps.transform(p1, p1);
ps.transform(p2, p2);
ps.transform(p3, p3);
ps.transform(p4, p4);
Я понимаю, что самый нижний «1» может быть 1 / d, где «d»это расстояние, но независимо от того, какое число я там пробую, я не получаю никакого эффекта.Изменение других чисел имеет эффект, но я не знаю, какой эффект они будут иметь, пока не попробую (и я не могу просто догадываться бесконечно).Я знаю и смог заставить работать функцию "quadToQuad", но я снова должен был бы угадать, какие "квады" использовать.
Поэтому мне нужен ресурс, чтобы объяснить мне, как поступитьс нужной мне матрицей, основанной на поле зрения, соотношении сторон, расстоянии и т. д. Я прочитал соответствующую часть "Интерактивной компьютерной графики" 5-е издание.Эдвардом Энджелом и не понимаю этого.
То, что я пытаюсь сделать, - это преобразовать изображение с высоты птичьего полета в изображение человеческого глаза.Пример этого можно увидеть при использовании Google Планета Земля ..
спасибо