![Tikz:如何在 3D 中查找给定线段上与图像平面中的交点相对应的点?](https://linux22.com/image/438102/Tikz%EF%BC%9A%E5%A6%82%E4%BD%95%E5%9C%A8%203D%20%E4%B8%AD%E6%9F%A5%E6%89%BE%E7%BB%99%E5%AE%9A%E7%BA%BF%E6%AE%B5%E4%B8%8A%E4%B8%8E%E5%9B%BE%E5%83%8F%E5%B9%B3%E9%9D%A2%E4%B8%AD%E7%9A%84%E4%BA%A4%E7%82%B9%E7%9B%B8%E5%AF%B9%E5%BA%94%E7%9A%84%E7%82%B9%EF%BC%9F.png)
我想绘制一个像这样的图形,但没有两个灰色立方体:
但是,我遇到了一个问题,我无法找到方法来获取此线段的“交点”
另一个在那里
可以注意到,这两条线段实际上并不相交。只有它们在图像平面(又称图片平面、屏幕空间等)上的投影相交。如果我知道如何获得“视点”,那么我就可以找到具有这种属性的第一条线段上的点,但其他建议也欢迎提出。
以下是部分绘制了所需图形可见线条的 Tikz 代码:
\begin{tikzpicture}[scale=0.2]
\coordinate (right) at (5,0,0);
\coordinate (left) at (-5,0,0);
\coordinate (up) at (0,5,0);
\coordinate (down) at (0,-5,0);
\coordinate (closer) at (0,0,5);
\coordinate (farther) at (0,0,-5);
% The figure's boundary (its ``shade")
\draw (-5,-5,5) -- ++ ($2*(up)$) -- ++ (farther) -- ++ (right) -- ++ (farther) -- ++ (right) -- ++ ($2*(down)$) -- ++ (closer) -- ++ (left) -- ++ (closer) -- ++ (left) -- cycle;
% The groove at the bottom
\draw (5,-5,0) -- ++ (up) -- ++ (closer) -- ++ (left) -- ++ (down);
\end{tikzpicture}
及其输出: