私はマッピングアプリケーション(worldwind)を使用していて、現在表示されている最小および最大の緯度と経度を決定しようとしています。私は錐台にアクセスできますが、地球がその方位やピッチを変更できるという事実をどのように説明するのかわかりません。この問題についての助けをいただければ幸いです。
ありがとう、
ジェフ
実際、錐台はこの文脈で最も有用なものではありません。あなたがする必要があるのは、ModelView-Project変換を逆にすることです。
投影(錐台)とモデルビューの行列を取得できる場合は、それらを反転できます。カメラの位置から投影空間に沿って光線を投影する場合は、これらの反転を使用して、ワールド空間でその光線を見つけることができます。そこから、その光線を自分の世界と交差させて、その光線が地球に当たる正確なポイントを見つけることができます。
画面の四隅に対してこれを行い、それらの交差座標に基づいて2Dバウンディングボックスを計算します。
正確に何を計算しようとしていますか? ウィンドウまたは地球儀のコーナー ポイント。円には角がありません (球にもありません)。worldwind (WorldMapLayer) のミニマップ ツールを見たことがありますか。現在表示されている範囲をミニマップのオーバーレイとして表示します。これにより、正確に何が表示されているかを理解することができます。
世界風の質問がいたるところに流れているのを見るのは良いことです。フォーラムで十分な仕事をしているわけではありません。
私の以前の提案のコーナー ケース (1) により、アルゴリズムが難しくなっています (地球からズームアウトする必要があったことは一度もありませんが、その場合に半球だけを使用しない理由はまだわかりません)。したがって、ここに機能する別の方法があります。
投影錐台を 3D オブジェクトとして取得し、地球と交差させます (3D オブジェクトとして)。ユニオン、インターセクション、およびディファレンスを提供できるさまざまな CSG アルゴリズムがあります。交差点を利用。これにより、錐台と交差する地球の部分の 3D メッシュが生成されます。そのメッシュの範囲はバウンディング ボックスの範囲です。(錐台の長軸に沿って投影します。)
これは私の以前の提案よりも恐ろしく効率的ではありません。:-)
(1) 完全に意図したしゃれ。