我在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;
}
现在我必须检查重叠长度,但我不知道如何实现这个。
我需要这个来在分离轴定理实现中获得最小的平移向量
任何提示都会很棒。
答案 0 :(得分:10)
快速思考,但我认为它有效。
将行中的最高起始值设为start'
将行中的最低结束值设为end'
如果您start' < end'
重叠(end' - start'
)