Thought Experiment: Laser Point Finding
No.11769088 ViewReplyOriginalReport
Quoted By: >>11769328 >>11769565 >>11771041
Here's a problem that I've been pondering. Is anyone smart and interested enough to give an opinion?
>Let's say I'm standing inside of a rectangular-prism-shaped room, holding a laser pointer. I can move the laser pointer to any x,y,z coordinate within the room, and I can freely aim the beam in any direction.
How do I most efficiently find the coordinates of the point at which the "laser dot" will fall?
Ignore the time dimension entirely, let's say this is all instantaneous. Assume the laser beam does not interact with me or the laser pointer. I am simply an abstract representation of the ability to spawn a beam of light into existence. The beam will travel until it hits a wall or any other surface.
So collision detection becomes a manner of
0. representing the laser beam as a vector
1. representing each surface as a single contiguous region of some plane
2. finding any intersection point between the vector and that plane
3. checking whether that point falls within this contiguous region
4. for all intersection points found, take only the single result which has the shortest distance from the laser source
>When the room is empty, it's pretty trivial to check every possible collision (6 faces of the prism).
QUESTION A: Does this trivial case reveal any patterns which we can leverage in further scenarios, such as more "filled" spaces?
>If I place 999 cubes throughout the room, each with a random position and orientation, now we have 6000 planes to check.
QUESTION B: How can we reduce this search space?
>Now consider a case in which all of these surfaces are mirrors.
If we want to find N points of reflection instead of just the first point, what can be done to reduce the search space?
>Let's say I'm standing inside of a rectangular-prism-shaped room, holding a laser pointer. I can move the laser pointer to any x,y,z coordinate within the room, and I can freely aim the beam in any direction.
How do I most efficiently find the coordinates of the point at which the "laser dot" will fall?
Ignore the time dimension entirely, let's say this is all instantaneous. Assume the laser beam does not interact with me or the laser pointer. I am simply an abstract representation of the ability to spawn a beam of light into existence. The beam will travel until it hits a wall or any other surface.
So collision detection becomes a manner of
0. representing the laser beam as a vector
1. representing each surface as a single contiguous region of some plane
2. finding any intersection point between the vector and that plane
3. checking whether that point falls within this contiguous region
4. for all intersection points found, take only the single result which has the shortest distance from the laser source
>When the room is empty, it's pretty trivial to check every possible collision (6 faces of the prism).
QUESTION A: Does this trivial case reveal any patterns which we can leverage in further scenarios, such as more "filled" spaces?
>If I place 999 cubes throughout the room, each with a random position and orientation, now we have 6000 planes to check.
QUESTION B: How can we reduce this search space?
>Now consider a case in which all of these surfaces are mirrors.
If we want to find N points of reflection instead of just the first point, what can be done to reduce the search space?
