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.
 A: 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.
\begin{align*}
X_P &= \begin{pmatrix}1&0&0\\0&\cos P&-\sin P\\0&\sin P&\cos P\end{pmatrix} \\
Y_Q &= \begin{pmatrix}\cos Q&0&\sin Q\\0&1&0\\-\sin Q&0&\cos Q\end{pmatrix} \\
T &= Y_Q\cdot X_P\cdot M\cdot X_P^{-1}\cdot Y_Q^{-1} \\
&= Y_Q\cdot X_P\cdot M\cdot X_{-P}\cdot Y_{-Q} \\
&= \small\begin{pmatrix}
\sin^2Q\cdot\cos^2 P &
-\sin P\cdot\sin Q\cdot\cos P &
\sin Q\cdot\cos^2P\cdot\cos Q \\
-\sin P\cdot\sin Q\cdot\cos P &
\sin^2P &
-\sin P\cdot\cos P\cdot\cos Q \\
\sin Q\cdot\cos^2 P\cdot\cos Q &
-\sin P\cdot\cos P\cdot\cos Q &
\cos^2P\cdot\cos^2Q
\end{pmatrix}
\end{align*}
This way, you get a single matrix describing your whole operation.
A: 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.
