如何在 Java 中进行透视图转换?据我了解,我可以使用一些神奇的 4 维矩阵来确定 FOV、纵横比以及近视和远视距离,但我不知道如何创建该矩阵。
我能够在 Java 中实现“PerspectiveTransform”,但是在使用以下内容时我看不到任何效果
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”功能工作,但我不得不再次猜测要使用哪个“quads”。
所以我需要一个资源来向我解释如何根据 FOV、纵横比、距离等提出我需要的矩阵。我已经阅读了“交互式计算机图形学”第 5 版的相关部分。爱德华·安吉尔,不明白。
我要做的是将鸟瞰图像转换为人眼图像。使用谷歌地球时可以看到一个例子。
谢谢