重心を通過するポリゴン内の最も長いラインセグメントを特定していますか?


8

博士課程の学生から最近、多角形の重心を通る最長の直線をどのように決定するかを尋ねられました。出力は単なる数値の表ではなく、ポリラインです。ポリラインは、端の端から開始して、重心を通過し、反対側の端で終了するポリゴン内にあります。

これを計算する方法を誰かが知っていますか?

これはArcObjectsの一部のインターフェースではないことに驚いています(ただし、無知を示していると思います)。

多角形は島のない火山の火口縁を表すため、多角形は不規則な形状を持つことができます。

回答:


11

ダンカン、ラジアルスイープアルゴリズムはうまく機能します。図心はポリゴンの外側にある可能性があることに注意してください。その場合、そのような場合の解決策はありません。また、この構造は奇妙なものであることにも注意してください。図心はポリゴンのグローバルプロパティですが、作成する線はこの図心の近くにあるポリゴンのローカルプロパティです。この組み合わせは、ポリゴンがその重心に関して非凸型または非星型である可能性があるほとんどの幾何学的または物理的分析には意味がありません。(これは、ArcObjectsでも、おそらく他のどこでも見つからない理由を説明しています。)生徒がこの構造で何をしようとしているかを調べて、意図した目的を確実に満たすようにすることができます。 。


1
非常に速い応答をありがとう!あなたは二人とも私に調べるためのいくつかのキーワードを与えました。「ラジアルスイープ」は複雑に聞こえます...
Hornbydd

また、「最も長い直線」がないポリゴンもあることに注意してください。代わりに、多くの可能な行があるかもしれません。[また、問題の学生がトランセクト調査を設計していることを1ドル賭けます]]
Dan S.

@Hornbydd:複雑であり、複雑でもあります。ラジアルスイープの実装は、計算ジオメトリに関してはそれほど難しくありませが、計算ジオメトリコードを初めて作成するのは難しいかもしれません。開始点が必要な場合は、疑似コードを入力してください。
Dan S.

ダン、私はあなたの申し出に感謝しますが、私は学生の監督ではありません。彼女が連絡したランダムな人だけです。GIS開発者として、ラジアルスイープの基本的な考え方を理解するためにいくつかの疑似コードを見てみたいと思いますが、既に感謝しています。
Hornbydd

2
もっと軽いメモで、私はこのサイトに質問を投稿し、whuberの応答がオフになってコーヒーを作って戻ってきたことを確認し、google "radial sweep polygon centroid"と入力して、すぐにこのページに戻ってきました!グーグルはどのようにしてこのページをこのように素早く見つけ、彼らの検索に統合したのか、マインド・バウグル。
Hornbydd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.