I've worked out a method to test if two one-dimensional line-segments/ranges.
So defining a range as:
[min, max]
Given two instances of range:
a = [min, max]
b = [min, max]
I use the following to test if they intersect:
(a.max - b.min) * (b.max - a.min) >= 0.
I think this is a one-dimensional cross-product, so my question is:
Is this solution classified as a one-dimensional cross-product or something else?
How about:
intersects = !((a.max < b.min) || (b.max < a.min))
That's faster (no multiply involved and a decent compiler will optimize the NOT away) and just as readable.
A one-dimensional cross product is merely x*y
for x
and y
both real numbers. So I guess you could call this a one-dimensional cross product, but that's just a fancy name for a multiplication.
It's a cute trick, but I don't think it has any special consequence mathematically. Cross-products are all about vectors, not line segments.