• 締切済み

2線分の最短距離

2線分の最短距離を求める方法はありませんか? ぐぐっても見ましたが点と線ばかりでした。

みんなの回答

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.5

#1,#2,#4です。 >2次元の2つの線分の最短距離についてです。 2つの線分をAB,CDとすると、 最短距離は以下の手順で4つの候補を求め、その中の最小の長さが求める最短距離になります。 その中で、点と直線の距離(垂線の長さ)の公式、2点間の距離の公式、直線上の点が直線上の線分の範囲内にあるか、無いかの判別式を使います。 (1)端点Cから線分ABまたはその延長線に垂線CHを下ろして垂線の足Hが線分AB上にあればCDを候補とします。Hが線分AB上になければCAとCBの短い方の長さを候補とします。 (2)端点Dから線分ABまたはその延長線に垂線DKを下ろして垂線の足Kが線分AB上にあればDKを候補とします。Kが線分AB上になければDAとDBの短い方の長さを候補とします。 (3)端点Aから線分CDまたはその延長線に垂線AMを下ろして垂線の足Mが線分CD上にあればAMを候補とします。Mが線分CD上になければACとADの短い方の長さを候補とします。 (4)端点Bから線分CDまたはその延長線に垂線BNを下ろして垂線の足Nが線分CD上にあればBNを候補とします。Nが線分CD上になければBCとBDの短い方の長さを候補とします。 (5)(1)~(4)の候補の内、最小の長さの線分を2つの線分ABとCDの間の最小距離とする。

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.4

#1,#2です。 A#2は三次元の2直線間の(最短)距離を対象とした回答です。 質問が2次元で、2線分間の距離の場合なら、補足でそのようにお書き下さい。 また三次元空間における2線分間の距離の場合も。補足にその様にお書き下さい。 この場合、直線間の最短距離の点が線分上にない場合は、最短点に最も近い線分の端点からの距離が最短になりますが、最短点がどちらの線分上の外に出てしまうか、あるいは、どちらの線分上にもない場合は、端点間の距離を比較して線分上の最短となる端点を選びます。 質問の内容が2次元か3次元か、線分の位置関係によって条件が変わってきますので、質問の問題をはっきり書いて、問題が不明確にならないようにして下さい。

mapu-go
質問者

補足

書き方が悪かったようですみません。 シューティングのレーザーorビーム類の当たり判定に使いたいと思っていますので、 2次元の2つの線分の最短距離についてです。 しかし後々3次元にも拡張したいと思っています 当たり判定用なので、線分同士の位置関係がどのようになるかは解りません。

  • rnakamra
  • ベストアンサー率59% (761/1282)
回答No.3

あなたがお聞きしたいのは2"線分"の最短距離ですか。 それとも2"直線"の最短距離ですか。 2"直線"の最短距離であれば#2での回答に従えばもとめることができます。 2"線分"の最短距離であれば場合わけが必要になります。

mapu-go
質問者

補足

お早い解答ありがとうございます。 おっしゃるとおり2"線分"です。 他の方も誤解があるようですみません。

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.2

#1です。 補足です。 過去に私が解答したQA qa4673776.html また参考となるURLがありますので挙げておきます。 http://ahirujigen.hp.infoseek.co.jp/coding002.html

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.1

>点と線ばかりでした。 それが分かれば、その点をもう一本の直線に代入して、距離が最小になる点の座標を求めれば良いだけです。 あるいは、それぞれの直線の法線が一致する条件から、最短となる直線上のそれぞれの点が決定できますので、その2点間の距離を計算すれば良いでしょう。 一般論で考えるのではなく、具体的な2本の直線の式を与えてやってみたらどうでしょう。

関連するQ&A

専門家に質問してみよう