Java でパースペクティブ ビューの変換を行うにはどうすればよいですか? 私が理解しているように、FOV、アスペクト比、および近距離と遠距離の表示距離を決定するために使用できる魔法の 4 次元マトリックスがいくつかありますが、そのマトリックスを作成する方法がわかりません。
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」は「d」が距離である 1/d である必要があるかもしれないことは理解していますが、どのような数値を試しても効果がありません。他の数値を変更しても効果はありますが、試してみるまでどのような効果があるかはわかりません (無限に推測することはできません)。私は認識しており、「quadToQuad」関数を機能させることができましたが、使用する「quad」を推測する必要があります。
そのため、FOV、アスペクト比、距離などに基づいて必要なマトリックスを作成する方法を説明するリソースが必要です。「Interactive Computer Graphics」第 5 版の関連部分を読みました。エドワード・エンジェルによって、それを理解していません。
私がやろうとしているのは、鳥瞰図の画像を人間の視点の画像に変換することです。この例は、Google Earth を使用するときに見ることができます。
ありがとう
