3d-projection.tex 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. \documentclass{article}
  2. \usepackage{tikz}
  3. \usepackage{amsmath}
  4. \begin{document}
  5. \section{3D Projection}
  6. \def\minY{-2} \def\maxY{2}
  7. \def\minZ{-2} \def\maxZ{6}
  8. \def\screenZ{2}
  9. \def\eyeZ{0} \def\eyeY{0}
  10. \def\pZ{3} \def\pY{1}
  11. \begin{tikzpicture}
  12. \draw[-stealth] (\minZ,0) -- (\maxZ,0) node[above]{$z$};
  13. \draw[-stealth] (0,\minY) -- (0,\maxY) node[above]{$x$};
  14. \draw[fill] (\eyeZ, \eyeY) circle (.5ex) node[above]{eye ($E$)};
  15. \draw[dotted,thick] (\screenZ, \minY) -- (\screenZ, \maxY) node[above]{screen ($S_z$)};
  16. \draw[dotted] (\eyeZ, \eyeY) -- (\pZ, \pY);
  17. \draw[dotted] (\eyeZ, \eyeY) -- (\pZ, -\pY);
  18. \draw[fill] (\pZ, \pY) circle (.5ex) node[above]{$p_1$};
  19. \draw[fill] (\pZ, -\pY) circle (.5ex) node[above]{$p_2$};
  20. \draw[fill] (\screenZ, {(\pY - \eyeY)/(\pZ - \eyeZ)*(\screenZ - \eyeZ) + \eyeY}) circle (.5ex) node[above]{$p_1'$};
  21. \draw[fill] (\screenZ, {-(\pY - \eyeY)/(\pZ - \eyeZ)*(\screenZ - \eyeZ) + \eyeY}) circle (.5ex) node[above]{$p_2'$};
  22. \end{tikzpicture}
  23. When we refer to $p$ we mean either $p_1$ or $p_2$. When we refer to $p'$ we mean either $p'_1$ or $p'_2$.
  24. \begin{align}
  25. & p = (p_x, p_y, p_z) \\
  26. & p'= (p'_x, p'_y, S_z) \\
  27. & E = (E_x, E_y, E_z) \\
  28. \end{align}
  29. The formula to find $p'$
  30. \begin{align}
  31. & p_y' = \frac{(p_y - E_y)(S_z - E_z)}{(p_z - E_z)} + E_y \\
  32. & p_x' = \frac{(p_x - E_x)(S_z - E_z)}{(p_z - E_z)} + E_x \\
  33. \end{align}
  34. If we assume that $E = (0, 0, 0)$ and $S_z = 1$
  35. \begin{align}
  36. & p_y' = \frac{p_y}{p_z} \\
  37. & p_x' = \frac{p_x}{p_z} \\
  38. \end{align}
  39. \end{document}