「みんな教えて! 選手権!!」開催のお知らせ

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

A 回答 (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の間の最小距離とする。
    • good
    • 2

#1,#2です。



A#2は三次元の2直線間の(最短)距離を対象とした回答です。

質問が2次元で、2線分間の距離の場合なら、補足でそのようにお書き下さい。

また三次元空間における2線分間の距離の場合も。補足にその様にお書き下さい。
この場合、直線間の最短距離の点が線分上にない場合は、最短点に最も近い線分の端点からの距離が最短になりますが、最短点がどちらの線分上の外に出てしまうか、あるいは、どちらの線分上にもない場合は、端点間の距離を比較して線分上の最短となる端点を選びます。

質問の内容が2次元か3次元か、線分の位置関係によって条件が変わってきますので、質問の問題をはっきり書いて、問題が不明確にならないようにして下さい。

この回答への補足

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

補足日時:2009/07/19 11:53
    • good
    • 0

あなたがお聞きしたいのは2"線分"の最短距離ですか。


それとも2"直線"の最短距離ですか。

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

この回答への補足

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

補足日時:2009/07/19 01:28
    • good
    • 0

#1です。



補足です。
過去に私が解答したQA
qa4673776.html

また参考となるURLがありますので挙げておきます。
http://ahirujigen.hp.infoseek.co.jp/coding002.html
    • good
    • 0

>点と線ばかりでした。


それが分かれば、その点をもう一本の直線に代入して、距離が最小になる点の座標を求めれば良いだけです。

あるいは、それぞれの直線の法線が一致する条件から、最短となる直線上のそれぞれの点が決定できますので、その2点間の距離を計算すれば良いでしょう。

一般論で考えるのではなく、具体的な2本の直線の式を与えてやってみたらどうでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報