質問

私は多くの3D飛行機を持っています。私が知る必要があるのは、アスペクト角を計算する方法です。私は、各平面の投影された通常のベクトルを使用してアスペクト角を計算できることを願っています(私の平面方程式はax+by-z+c = 0です。したがって、この平面の通常のベクトルはa、b、-1)です。飛行機。次に、Y軸からアスペクト角を計算できます。しかし、XYプレーンに投影した後、投影された通常のベクトルを取得する方法がわかりません。次に、2つのベクトル間に角度を与える方程式を適用して、Y軸から目的のベクトルの角度を計算できます。

一方、アスペクト角は、平面と北方向の最も急な勾配に沿って通過する任意の線の間の角度として定義されています(ここ、y軸)。この定義は、通常のベクトルを取得している私の提案された方法で続きますか?つまり、予測された通常のベクトルは常に平面の最も急な勾配に沿って与えられますか?また、誰かが私に言った、この問題は2D問題と考えるべきだと言った。アスペクト角を計算するために、私にコメントして関連する式を送ってください。ありがとうございました。

役に立ちましたか?

解決

いくつかのクイックグーグルは、アスペクト角の定義を明らかにします。

http://www.answers.com/topic/aspect-angle

それは、北半球の地理的北と南半球の南の地理的南部との間の角度です。したがって、基本的には、斜面が最も近い極にどれだけ直面しているかが測定です。

あなたの世界が球形とは対照的に平面である場合、それは物事を単純化するので、はい-2D問題です。私は次の意味を持つこの仮定をします:

  • 球面の世界では、北極は球体のポイントです。平面世界では、「極」は無限の飛行機です。 「北」を示すあなたの世界のどこかにある飛行機について考えてください。このタスクでは、この平面の通常のみが重要です。この平面の正常ユニットはです n(NZ、NY、NZ)。
  • アップは、上に向けるベクトルです u(ux、uy、yz)。これは、接地平面のユニット通常ベクトルです。

平面のユニット正常ベクトル v(A、B、C)ベクトルに投影できるようになりました p いつものように地上飛行機で: p = v - (v ドット u) u

平面のアスペクト角を簡単に測定するのは簡単です - それは「ポール」平面の間の角度です n そして、投影された平面は正常です p によって与えられた acos(p ドット n).

北はあなたにとって正のY軸なので、私たちは持っています n =(0、1、0)。そして、私はあなたが持っていると思います u =(0、0、1)、ポジティブZ。これにより、物事がさらに単純化されます。Zパートを剥がすだけの地上飛行機に投影するために。アスペクト角は、(a、b)と(0,1)の間の角度です。

aspectAngle = acos(b / sqrt(a*a + b*b))

アスペクト角を測定する勾配がないため、接地面を備えた平面パラレルには明確なアスペクト角がないことに注意してください。

他のヒント

どんな表面を使用していますか?缶(三角形の不規則なネットワーク)またはDEM(デジタル標高モデル)?

ラスターイメージを使用して表面を作成している場合、アスペクトを計算するためのアルゴリズムは基本的に移動ウィンドウであり、中央のピクセルと8つの近隣をチェックします。

中央の隣人と各隣のものを比較し、距離の標高の差を確認します(走行経過)。距離チェックをパラメータ化できます(北、南、東、西、西の西側、距離= 1にあり、北西、南西、南東、北東は距離= SQRT(2))になります。

gis.stackexchangeでこの質問をすることもできます。多くの人がそこであなたを助けることができるでしょう。

編集:http://blog.geoprocessamento.net/2010/03/modelos-digitais-de-elevacao-e-hidrologia/

このウェブサイトは、ポルトガル語のaltoughtで、アルゴリズムを視覚化するのに役立ちます。中央のセルと8人の隣人の間の最高の勾配を計算した後、センターとネイバーボアの間に最も高い勾配を示したセルの位置に応じて、0、2、4、8、8、16、32、64、または128を割り当てます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top