在 TikZ 中,我在两个不同的 x 位置定义了两个 zy 平面。我想从一个平面上的一个特定点到另一个平面上的另一个特定点画一条线。我该如何画那条线?
注意:单位需要为厘米。
\documentclass[tikz]{standalone}
\usetikzlibrary{3d}
\usetikzlibrary{positioning}
\usetikzlibrary{math}
\begin{document}
\begin{tikzpicture}
\begin{scope}[canvas is zy plane at x=0.6cm]
\foreach \i in {-2,...,2}
\foreach \j in {-2,...,2}
\node at (\i cm, \j cm) [circle,fill,inner sep=0.1cm,color=green] {};
\end{scope}
\begin{scope}[canvas is zy plane at x=0.3cm]
\foreach \i in {-1,...,1}
\foreach \j in {-1,...,1}
\node at (\i cm, \j cm) [circle,fill,inner sep=0.1cm,color=red] {};
\end{scope}
\end{tikzpicture}
\end{document}
平面可以在坐标附近就地定义吗?以下代码尚未产生预期的结果:
\draw (0cm,1cm)[canvas is zy plane at x=0.3 cm] -- (0cm,2cm) [canvas is zy plane at x=0.6cm];
在 3D 坐标中表述这个问题是可行的,但需要大量的计算,这是我想避免的。
(抱歉,由于服务器发生错误,我无法上传此最小工作示例所产生的图片。)
答案1
@TikZling 在评论中给出了关键的提示:
您还可以在平面中放置命名坐标并连接它们。
以下代码生成所需的图像:
\documentclass[tikz]{standalone}
\usetikzlibrary{3d}
\usetikzlibrary{positioning}
\usetikzlibrary{math}
\begin{document}
\begin{tikzpicture}
\begin{scope}[canvas is zy plane at x=0.6cm]
\foreach \i [count=\cnta] in {-2,...,2}
\foreach \j [count=\cntb] in {-2,...,2}
\node (u\cnta\cntb) at (\i cm, \j cm) [circle,fill,inner sep=0.1cm,color=green] {};
\end{scope}
\begin{scope}[canvas is zy plane at x=0.3cm]
\foreach \i [count=\cnta] in {-1,...,1}
\foreach \j [count=\cntb] in {-1,...,1}
\node (v\cnta\cntb) at (\i cm, \j cm) [circle,fill,inner sep=0.1cm,color=red] {};
\end{scope}
\foreach \i in {1,...,5}
\foreach \j in {1,...,5}
\foreach \k in {1,...,3}
\foreach \l in {1,...,3}
\draw (u\i\j) -- (v\k\l);
\end{tikzpicture}
\end{document}