我已经找到了一种测试两个一维线段/范围的方法。
因此将范围定义为:
[min, max]
给出两个范围实例:
a = [min, max]
b = [min, max]
我使用以下内容来测试它们是否相交:
(a.max - b.min) * (b.max - a.min) >= 0.
我认为这是一个单维的交叉产品,所以我的问题是:
此解决方案是否被归类为一维交叉产品或其他内容?
答案 0 :(得分:8)
怎么样:
intersects = !((a.max < b.min) || (b.max < a.min))
这更快(没有涉及多个,而且一个不错的编译器会优化NOT)并且就像可读一样。
答案 1 :(得分:1)
对于x*y
和x
两个实数,一维交叉产品仅为y
。所以我想你可以称之为一维交叉产品,但这只是一个乘法的奇特名称。
这是一个可爱的伎俩,但我不认为它在数学上有任何特殊后果。交叉产品都是关于向量,而不是线段。