Как преобразовать перспективное представление в Java? Насколько я понимаю, есть какая-то магическая 4-мерная матрица, которую я могу использовать, которая определит расстояния FOV, Aspect Ratio и Near и Far, но я не знаю, как создать эту матрицу.матрица перспективного представления/преобразования
Я в состоянии реализовать «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», но снова мне нужно было угадать, в какой «квадрациклов» использовать.
Так что мне нужен ресурс, чтобы объяснить мне, как придумать матрицу, в которой я нуждаюсь, на основе FOV, соотношения сторон, расстояния и т. Д. Я прочитал соответствующую часть «Интерактивной компьютерной графики», 5-е изд. Эдвардом Ангелом и не понимают этого.
То, что я пытаюсь сделать, это преобразовать изображение с высоты птичьего полета в изображение с изображением человека. Пример этого можно увидеть при использовании Google Earth ..
благодаря
Также обратите внимание, что это не зависит от Java. –