Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我已经制定了一种方法来测试两个一维线段/范围。
因此将范围定义为:
[min, max]
给定两个范围实例:
a = [min, max] b = [min, max]
我使用以下内容来测试它们是否相交:
(a.max - b.min) * (b.max - a.min) >= 0.
我认为这是一个一维交叉产品,所以我的问题是:
该解决方案是归类为一维交叉产品还是其他?
怎么样:
intersects = !((a.max < b.min) || (b.max < a.min))
这更快(不涉及乘法,一个体面的编译器将优化 NOT 离开)并且同样可读。
一维叉积仅x*y适用于两个x实y数。所以我想你可以称之为一维叉积,但这只是乘法的一个花哨的名字。
x*y
x
y
这是一个可爱的技巧,但我认为它在数学上没有任何特殊后果。叉积都是关于向量,而不是线段。