# How to project a 3D-point on a 2D-plane relative to an observer?

In a 3D-space there is a random number of objects ($X$s) of which their exact position is known.

These objects can be observed through a "screen" which has a certain dimension, position and orientation.

Its position and orientation is related to point $P$. The "screen" can be moved around this point with a fixed distance.

(I'm imagining the "screen" moving on the hull of a sphere around $P$ and the line of touching point and $P$ is always orthogonal to the plane).

Then, there is the observer point ($O$) which is on the opposite side of $P$ related to the plane, maybe with the same distance or less.

The observer now looks "through" the "screen" into the 3D world and sees some of the $X$s.

My questions is, what approach should I follow to calculate where the line between $O$ and one of the $X$ touches the "screen"? What variables do I have to calculate?

My math-lessons date and I'm a little bit rusty when it comes to terms and ideas. Please bear with me and do not hesitate to ask for more details.

Also, I'm aware that this is a quite complete problem-question, but I prefer to ask one big question and maybe get a new idea of how to get along rather than thinking about it on my own and asking only detail-questions and missing out the genius idea.

• Seems like a problem of "line-plane intersection". Check out this math.stackexchange.com/questions/83990/… to see if it helps – fang Aug 21 '18 at 1:47
• Should we assume that the points $O$ and $P$ and the positions of the objects are all described by Cartesian coordinates? Is it sufficient to use the same kind of 3D coordinates to describe where each line from $O$ to an object intersects the screen, or should we give the screen its own set of 2D coordinates and use those? (Doing everything in one 3D coordinate system actually leads to a relatively simple solution, but if the end goal is to show on a computer screen what the observer would see, you probably want distances up/down or left/right on the computer screen.) – David K Aug 21 '18 at 2:47
• Looking at the page the first comment linked to, it has an answer showing a version of my "simple solution." It assumes some knowledge of vectors, which is very handy to have for problems like this. – David K Aug 21 '18 at 2:55
• Thanks for your comments: O and P are 3D points with x, y, z. Yes, line-plane-intersection is what's needed to find the point on the 2D screen. Yes, I'd need the relative coordinated on the 2D-screen in the end. The link describes "only" how to get the intersection-point, but not how to create the plane based on the "point of the hull", or does it? – Patrick B. Aug 21 '18 at 6:00
• Coming up with an equation for the image plane to use for the intersection is pretty simple, but you’ve still got a degree of freedom left for expressing that point in “relative coordinates.” Namely, which way is “up” on the screen in the 3-D world? – amd Aug 21 '18 at 20:30

Here's what I'm doing to get the point the screen's intersecting point of $$O$$ and any $$X$$: $$B$$:
Given are $$X$$ (Object), $$P$$ (Position) and $$O$$ (Observer position, derived from two given angles).
1. Calculate the center point of the screen, which is also located the plane $$A = \frac{P+O}{2}$$
2. Get the perpendicular plane from $$A, \overrightarrow{OP}$$
3. now we can get $$B$$ from the intersection of the line $$OX$$ and the plane found in 2.
That does not yet give me the relative coordinates of $$B$$ on the screen. But this is out of scope of this question.