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 回答