0

山岳地帯の標高マップがあります (z 値を持つ大きな 2D 配列)

高さマップ上の特定のポイントのすべてのコンパス方位の見かけの水平角の高さを知りたいです。

説明のために、このウェブサイトには私が欲しいものの例がいくつかあります。

編集:私はこれを行う関数を見つけようとするのをやめ、現在自分自身を書いています。

私のアプローチは、ポイントから放射状に線を引き、それらの線に沿って高さを補間してから、各線にmax(z/r)沿って取得することです。

すでにこれを行っている関数を知っている場合は教えてください。そうでない場合は、すぐにアップロードできることを願っています。

4

1 に答える 1

2

X Y3 つの行列がありZ、位置(x,y,z)が計算できるとしましょう。

R = sqrt((X-x)**2 + (Y-y)**2)(tx ダニエル...)

R = sqrt((X-x).^2 + (Y-y).^2)
Z = (Z-z)

つまり、位置からの距離と相対的な高さ、したがって、

T = Z/R

位置から周囲の地形への視角の単調な関数である接線の行列です。

特定の方向について、ブレゼンハム アルゴリズムのバリエーションを使用して、グリッド上で最も近いポイントのリストを見つけ、最終的Tにポイントのリストで最高値を見つけることができます。

最終的に、Tさまざまな方向の最大 (接線) 値のリストから、自分の位置からの視角を計算できます。

于 2015-04-17T18:14:41.900 に答える