2009-10-13 100 views
5

我已經制定了測試兩個一維線段/範圍的方法。一維線段/量程相交測試:解決方案名稱?

因此限定範圍爲:

[min, max] 

鑑於範圍內的兩個實例:

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

我使用以下方法來測試,如果它們相交:

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

我覺得這是一個一維的交叉產品,所以我的問題是:

此解決方案是否被分類爲一維交叉產品或其他東西?

+0

交叉積的推廣是產生向量空間的外代數的楔形積。 https://en.wikipedia.org/wiki/Exterior_algebra – 2015-10-07 02:56:57

回答

8

如何:

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

這是更快(不涉及繁殖和體面的編譯器會優化不走),只是爲可讀。

+0

不錯的解決方案亞倫,我同意它比我的解決方案更清晰,我想我會用它來代替我的代碼:) – 2009-10-13 09:03:14

1

對於xy這兩個實數,一維交叉積只是x*y。所以我想你可以稱這是一個一維交叉產品,但這只是乘法的一個奇特名稱。

這是一個可愛的把戲,但我不認爲它在數學上有任何特殊的後果。交叉產品都是關於矢量的,而不是線段。

+0

感謝彼得,是的,我只是在尋找一個奇特的名字:) – 2009-10-13 08:33:41