# Optimally projecting a point onto a line whose orientation is known

I have a line $l$ starting at origin ending at 0,0,1 along the $z$ axis. $l$ is rotated $P$ degrees around the $x$-axis and then $Q$ degrees around the $y$-axis. So I have a new endpoint for the line.

Now I have lot of points that I am projecting onto this line but what I am wondering is, can I just use the information about the line i.e. $P$ & $Q$ and precompute a (transformation/projection) matrix. And simply multiply each point with this matrix such that I get it's projection on the line.

-

You can define two rotation matrices $R_1$ and $R_2$ that do the rotation about the $x-$ and $y-$ axes respectively. The matrix $R=R_2R_1$ then performs the desires operation.

You may also want to look up quaternions to do your rotations.

-
By “projection onto the line”, do you mean orthogonal projection? If so, then for the original location of the line, along the $z$ axis, you can achieve this by simply setting $x$ and $y$ coordinates to zero, which corresponds to the projection matrix
$$M = \begin{pmatrix}0&0&0\\0&0&0\\0&0&1\end{pmatrix}$$
Now for the rotated situation. You can think of rotating the whole setup back into the situation where the line is the $z$ axis, where you perform the projection as outlined above, and then perform the rotations again to get things back to the new location of the line.