2

2D空間に2本の平行線があります。行は$min1、$ max1、$ min2、$max2で定義されます

それらが重なっているかどうかを確認する方法はすでに理解しています。

function overlap($min1,$max1,$min2,$max2){
  if(($min1<$min2 && $max1>$min2) 
    || ($min1<$max2 && $max1>$max2) 
    || ($min1==$min2 && $max1==$max2) 
    || ($min2>=$min1 && $max2<=$max1)
    || ($min1>=$min2 && $max1<=$max2)){
    return true;
}
return false;
}

オーバーラップする長さを確認する必要がありますが、これを実装する方法がわかりません。

分離軸定理の実装で最小並進ベクトルを取得するには、これが必要です

どんなヒントも素晴らしいでしょう。

4

1 に答える 1

11

ちょっと考えてみましたが、うまくいくと思います。

行から最大の開始値を次のように取得しますstart'
。行から最小の終了値を次のように取得します。end'

( )start' < end'の重複がある場合end' - start'

于 2012-04-27T13:03:06.853 に答える