Hi all,
Image we have a projector and an arbitrary plane oriented in 3d space. Finding the projected boundary of the screen on this plane is simple - you just intersect each corner ray with the plane. The result is a planar quad.
Now what I want to do is just the opposite:
Knowing the input data:
- location of quad (ABCD)
- original screen proportions (ratio A'D' : A'B')
how do I find the location of the projector (O) and it's orientation plane?
I'm thinking this can be done either algebraically (finding transformation matrix using know coordinates, example) or geometrically, unfortunatelly i'm stuck in both approaches.
Any ideas? Thanks in advance for any clues!
JJ
Hannes Löschke
Four planar points are not enough information to find the origin of the projection.
Even if you are able to figure out the projection axis (center of projection to center of original) and the planes rotation against each other, you still don't know the projectors distance. You'd need additional info such as: original screens true size, distance screen to projection plan or projector field of view.
Nov 28, 2012
Jacek Jaskólski
Ok, I've managed to get a working geometric solution, here's the pseudo-proof:
1. The centerline of projection OX' is colinear with OX, where X is the intersection of the quads diagonals
2. Let's examine triangle AOC: OX bisects angle AOC.
3. Since we know the angle AOC (equal to A'O'C, which we can derive from the projector's known settings) we can also construct point O" (by intersecting two arches on any plane).
4. If we revolve this point (O") around segment AC we get a collection of possible locations of O
5. Repeat steps 2-4 for the other triangle (BOD) and we get the second possible set of locations (a circle revolving around DB
6. Intersect the two circles and we get O
I tested this and it works. However I'm still looking for a more elegant, solution. The best thing would be to do it all in a scripting component.
Nov 28, 2012
Richard Bailey
Any solution for this? I just encountered the same problem.
Apr 18, 2014