1

関連するさまざまな回答を読みました。特にここ ( 2 つの線分が交差する場所を検出するにはどうすればよいですか? ) では、2 つの線分間の交点を見つけ、平行性をチェックし、それらが同じ線に属しているかどうかを確認する方法が詳しく説明されています。その素晴らしいアイデアに従って、私は fortran プログラムを書きました。問題は、2 つのセグメントが同じ行に属している場合に結合セグメントを見つけることです。ここで私はC++コードを見つけました(2つの一致する線分の一致するサブセットを検出する)が説明されておらず、C++を読むことはできませんが、Fortranしか読めません(これは問題を示す便利な画像です。別の質問に投稿されていますが、有用な回答はありませんhttp: //judark.myweb.hinet.net/parallel.JPG)。同じ線に属する 2 つのセグメントの共通点 (結合セグメント、つまりこの結合を定義する 2 つの点) の軌跡を見つけるための、言語に依存しない最適なアルゴリズムは何ですか? ポイント間のすべてのマンハッタン距離を計算する「if」のプランティでなんとかそれを行うことができました(http://en.wikipedia.org/wiki/Taxicab_geometry)が、それを行うためのより良い方法があるかどうか疑問に思っていました。ありがとうございます。

4

1 に答える 1

0

2 つのセグメントが同じ線上にあり、重複している場合、結合は単に、互いに最も離れている 4 つの終点のうちの 2 つの間のセグメントです。したがって、単純にすべての二乗距離を計算し (平方根を計算する必要はありません)、最大距離のペアを識別します。このアプローチは、4 つの点すべてが一致し、2 つの等しい点の結合が単にその点である場合など、多くの縮退したケースを適切に処理します。

于 2013-02-09T03:27:08.973 に答える