一维线段/范围交点测试:解决方案名称?

时间:2009-10-13 08:29:50

标签: math range

我已经找到了一种测试两个一维线段/范围的方法。

因此将范围定义为:

[min, max]

给出两个范围实例:

a = [min, max] 
b = [min, max]

我使用以下内容来测试它们是否相交:

(a.max - b.min) * (b.max - a.min) >= 0.

我认为这是一个单维的交叉产品,所以我的问题是:

此解决方案是否被归类为一维交叉产品或其他内容?

2 个答案:

答案 0 :(得分:8)

怎么样:

intersects = !((a.max < b.min) || (b.max < a.min))

这更快(没有涉及多个,而且一个不错的编译器会优化NOT)并且就像可读一样。

答案 1 :(得分:1)

对于x*yx两个实数,一维交叉产品仅为y。所以我想你可以称之为一维交叉产品,但这只是一个乘法的奇特名称。

这是一个可爱的伎俩,但我不认为它在数学上有任何特殊后果。交叉产品都是关于向量,而不是线段。