2つの共線の線分ABとCDがあると、それらが重なるかどうかをどのようにして見つけますか?オーバーラップの開始点と終了点を見つけるにはどうすればよいですか?共線の重なりを見つける
以下は、私が使用しているアプローチです。私が最初に < BとC < D.
そのif(pa < pc){
if(pc < pb){
if(pd < pb){
// overlap exists; CD falls entirely within AB
}
else {
// overlap exists; CB is the overlapping segment
}
}
else {
// no overlap exists; AB lies before CD
}
}
else {
if(pa < pd){
if(pb < pd){
// overlap exists; AB lies entirely within CD
}
else {
// overlap exists; AD is the overlapping segment
}
}
else {
// no overlap exists; CD lies before AB
}
}
を確保していますさて、これを行うための簡単な解決策はありませんでしょうか?
更新:別の方法があります...両方のセグメントの長さの合計を最外点間の距離と比較します。後者がより小さい場合、重なりが存在する。
華麗!ようこそ! –
ありがとうございます。それは楽しいです。 – Edoot