# Projecting a 3D vector to a screen, with the size $X\times Y$?

I am currently programming something, and I'm stuck on how to take a 3D vector, then project it on a screen. Say $X_s$ = the screen width and $Y_s$ = the screen height, Pa = pitch and $Y_a$ = yaw, $X_p$ and $Y_p$ are the positions, how would I achieve this effect?

For instance, say I want to draw a name directly above a 3D object.And the only function I have is to draw text on a screen. That means the only thing I need to know is how to calculate the $X$ and $Y$ positions.

Let's suppose that $x$ is horizontal distance, $y$ is vertical distance and $z$ is the depth distance of your object from your eye (I am considering points not vectors !). Then, in the case of a text in a fixed $z=z_0$ plane, you'll have to 'divide by $z$' (supposing the origine at the center of the screen) to get the 'projected' coordinates : $x_p=a\, Y_s \frac xz,\ y_p=a\, Y_s \frac yz,$ the job of the $a\times Y_s$ product is to convert a $\frac{\pi}4$ angle (with $\tan(\frac{\pi}4)=1$) in something proportional to (for example) the height of your screen. –  Raymond Manzoni Nov 25 '12 at 10:11
(concerning $a$ set it to $1$ first it is a overall 'zoom factor'). –  Raymond Manzoni Nov 25 '12 at 10:12