球面ポリゴンの重心の計算


11

球体のポリゴンの重心を計算する一般的な方法が欲しい。

これまでのところ、最良のオンラインリファレンスは次のように思われます。

Jeff Jennessによるグラフィックスとシェイプのツール

そこで説明されている方法では、ポリゴンを複数の球面三角形に分解し、球面三角形の面積で重み付けされた球面三角形の重心の平均を計算することを提案しています。

私は球形のポリゴンの重心を定義する方法がいくつかあることを知っていますが、ポイントとポリラインの次の定義に類似したものを探しています:

  • ポイントポイントを表すデカルトベクトルの算術平均。
  • ポリライン:各セグメントの(球形の)長さで重み付けされた、各ラインセグメントの中点を表すデカルトベクトルの加重平均。

ポリゴンの重心を、面積で重み付けされた三角分解の加重平均として定義することは、合理的な継続のようです。

私の質問は、使用されている三角形分解に関係なく、上記のリファレンスのメソッドが機能するかどうかです。特に、ポリゴンの外部であっても、任意のポイントを基準にして三角形に分解することについて言及しています。これにより、一部の三角形には負の重みを与える負の領域があります。

関連:オブジェクトのジオメトリの中心を見つける方法は?

回答:


9

単一の固定点に対してすべての三角形分割を実行しても、一貫して機能しません。 問題は、球面計算とユークリッド計算が意味を考慮せずに混合されていることです。

これを明らかにする1つの方法は、半球のほぼ半分など、かなり極端な三角形を考慮することです。たとえば、(lon、lat)=(-179、0)で始まり、赤道に沿って(0、0)まで進み、次に北極まで(0、90)で、その後(-、 179、0)。これは、西半球の北半分の大部分を含む90-179-90の三角形です。問題は、その終点(図の白い点として示されている)が実質的に平面にあることです。1つは極にあり、他の2つはほぼ反対側にあります。したがって、球に戻って投影されたそれらの平均(赤い点)はほぼ極にありますが、それは、得られる限りの合理的な中心からは程遠いものです。

大きな球面三角形

別の例として、中心である北極を基準にして上半球を表すポリゴンを三角形分割してみましょう。私たちは常に西半球を2つの等しい半分に分割し、それぞれが90-90-90の三角形になります(これにより、巨大な半球に広がる三角形の問題を回避します)。ただし、東半球はn個の等しい半月に分割されます。lune kk = 1、2、...、n)の頂点には(lon、lat)座標があります

((k-1) * 180/n, 0),  (k * 180/n, 0),  (k * 180/n, 90).

k = 8のルーン

この図は、k = 8のセットアップを示しています。赤い点は、「グラフィックと形状のツール」ドキュメント、pp 65-67に従って計算された個々の三角形の「中心」です。

計算を行うと、k = 2の場合、面積加重中心は実際に北極にあります(対称性の考慮によって示されるように)が、nが増加すると、結果はすぐに西半球にシフトし、制限、経度-90度に沿って89.556度の緯度に近づきます。これは、北極自体の南約50キロメートルです。

確かに、20,000キロメートルにわたるポリゴンの+/- 50キロメートルの誤差はわずかです。この場合の異なる三角形分割による任意の変動の合計量はわずか0.5%です。明らかに、負の三角形を含めることで、相対誤差を任意に大きくすることができます(小さな三角形に対していくつかの本当に大きな三角形を加算および減算するだけです)。とにかく、球面計算を行う努力をしている人は誰でも投影誤差を避けようとしているため、高い精度を求めています。この三角測量法は推奨できません。


大きいnに対してエラーが蓄積する可能性があることを実証しましたが、このアプローチに必ず欠陥があることは明らかではありません。制限値を達成するためにnのどの値を使用しましたか?
ジェイソンデイヴィス

また、計算を行い、この詳細をご覧いただきありがとうございます。問題を解決する前に、もう少し説明が必要です。:)
ジェイソンデイヴィス

ジェイソン、私はあなたにいくつかの直観を与えるために予備的な例を加えました。制限自体に急速に近づいています。数ダースの月があなたにいくつかの有効数字を取得します。しかし、この新しい例では、この重み付き三角測量が妥当なことを行うという長引く疑念を和らげる必要があります。小さな三角形を除き、そもそも投影座標で計算を行う方がはるかに優れています。球面計算を行う唯一の理由は、分析の領域が真にグローバルな場合です。そのため、すべての投影が多くの歪みをもたらします。
whuber

1
素晴らしい、ありがとう。したがって、正しく理解していれば、デカルトベクトルを単純に平均化しても、球面三角形(最初の例のように特に大きい三角形)の妥当な重心は得られません。大円の中央値の交点を見つけるなど、より良い方法を調査します。
ジェイソンデイヴィス

ところで、私はまだ上記に似た球面領域の重心が機能することを期待しています。球の原点に頂点を追加することにより、各ポリゴンに3Dボリュームが与えられると想像してください。次に、その原点に接続された目に見えないひもで球を吊り下げ、安定した平衡を見つけます。重心は最下部のポイントです(重心の球面への投影です)。これは、赤道を一周するストリップなど、いくつかのあいまいな場合を除いて機能するはずです。価値があると思う場合は、新しい質問で議論してください。
ジェイソンデイヴィス

3

ポリゴンの重心が持つべきプロパティを列挙することは良い考えです。私の基準は次のとおりです。

(a)(頂点またはエッジではなく)ポリゴン内部のプロパティです。したがって、頂点を追加してエッジを2つに分割しても、重心の位置は変わりません。重心の位置は多角形を三角形に分割する方法に依存するため、Jennessの重心の定義はこの基準では失敗することに注意してください。

(b)ポリゴンの形状を少しだけ摂動させると、重心が少し移動します。ここでは、ポリゴンの全体的な範囲に制限を課す必要があります(たとえば、単一の半球に)。この制限がなければ、頂点のわずかな動きで重心が地球の反対側に突然揺れる場合を構築するのは簡単です。この条件は、重心がポリゴン内にあることを必要とするメソッドを除外します。

(c)小さなポリゴンの重心の平面定義に縮小する必要があります。

これらの基準を満たす2つのアプローチを次に示します。

(1)3次元の楕円体ポリゴンの重心を計算し、楕円体の表面に(楕円体の法線に沿って)投影し直します。大きな利点:重心は、ポリゴンをより単純な形状に分割することで計算できます。

(2)重心は、ポリゴンの内部にあるすべてのポイントまでのRMS測地線距離が最小のポイントです。参照ブスとフィルモア、「球状平均値と球面スプラインと補間への応用」、グラフィックス上のACM取引20、95-126(2001)。大きな利点:結果のポイントは、R 3に表面がどのように埋め込まれているかに依存しません。

残念ながら、これらの定義はどちらも実践するのが簡単ではありません。 ただし、最初の方法は、球に対して簡単に実行できます。使用するのに最適な「基本」領域は、ポリゴンのエッジ、エッジの端点を通る2つの経線、および赤道で囲まれた四角形です。ポリゴン全体の結果は、エッジ全体の寄与の合計を伴います。(多角形が極を囲む場合、追加の手順を実行する必要があります。)

エッジのエンドポイントは、(φであると仮定1、λ 1)および(φ 2、λ 2)。αによってエッジの方位とエンドポイントをしてみましょう1 及びα 2。球の半径が1であると仮定すると、四辺形の面積は

  A2 - α 1
      = 2褐色-1 [褐色半分(λ 2 - λ 1)罪½(φ 21)/ COS半分(φ 21)]

(ベッセルによるこの面積の式は、一般的に使用される三角形の面積のL'Huilierの式よりも数値的に大幅に優れた動作をします。)

この四辺形の重心の成分は、

  2 AX ⟩=φ 2罪(λ 2 - λ 0) - φ 1罪(λ 1 - λ 0
  2 AY ⟩= COSα 0(σ 2 - σ 1) - (φ 2、COS(λ 2 - λ 0) - φ 1、COS(λ 1 - λ 0))
  2 AZ ⟩=(λ 2 - λ 1) - α罪0(σ 2 - σ1

σここで、2 - σ 1辺の長さであり、λ 0及びα 0は、それが赤道を横切るエッジの経度及び方位であり、 X及びY赤道交差がであるように軸が配向しているX = 1、y =0。(zはもちろん極を通る軸です。)


ジェンネスの重心の位置が、ポリゴンを三角形に分割する方法に依存する理由を説明できますか?@whuberの例から、Jennessの重心計算は球面三角形に対して間違っていることがわかりますが、球面三角形の中央値に基づく重心が代わりに使用されるとどうなりますか?これはまだ失敗しますか?
ジェイソンデイヴィス

ジェンネスは、球面ポリゴンを平面三角形のセットで効果的に置き換え、その重心を計算します。明らかに(?)、結果はパーティションに依存します。球面三角形の重心を使用して概説した計算を行うことは問題ありません。あなたはJEのBrockに重心のための式、球面三角形のための慣性テンソル、J.応用力学42、239(1975)に見つけることができるdx.doi.org/10.1115/1.3423535
cffk

ブロックの論文をもう一度見てみました。球形三角形の重心の彼の公式には、三角形のエッジの合計が含まれます。したがって、ポリゴンに適用するために簡単に一般化できます(三角形に分割する必要はありません)。
cffk

ベッセルによる面積計算の参照を提供しても構いませんか?どこにも見つからないようで、高速(かつ正確な)球面ポリゴンエリアルーチンの作成に興味があります。ありがとう!
ジェイソンデイヴィス

私はそれを見つけ、あなたがそれを英語に翻訳したことに気づいたので、ありがとう。:)
ジェイソンデイヴィス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.