如何在 TikZ 中将 3D 变换应用于箭头

如何在 TikZ 中将 3D 变换应用于箭头

考虑这个最小的例子。我怎样才能让箭头像图表中的其他所有东西一样“旋转”?我试过使用,transform shape但这不适用于箭头。

在此处输入图片描述在此处输入图片描述

\documentclass[tikz,margin=5pt]{standalone}
\usetikzlibrary{3d}

\begin{document}

\begin{tikzpicture}
\draw[left color=blue,right color=red] (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\node at (0.5,2) (Label) {Test}; 
\draw[->,line width=1mm] (Label) -- (0.5,1.1);
\end{tikzpicture}

\begin{tikzpicture}[y={(0.5cm,-0.5cm)},x={(0.5cm,1cm)}, z={(0cm,1cm)}]
\begin{scope}[canvas is yz plane at x=0,transform shape]
\draw[left color=blue,right color=red] (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\node at (0.5,2) (Label) {Test}; 
\draw[->,line width=1mm] (Label) -- (0.5,1.1);
\end{scope}
\end{tikzpicture}

\end{document}

箭头透视“偏离”的另一个例子。

\draw[->,line width=1mm] (1,1.5) -- (0,1.5);

在此处输入图片描述在此处输入图片描述

答案1

pgfmanual 仍然充满惊喜(至少对我来说 ;-)。这里有一个适用于明确坐标但不适用于符号坐标的解决方案,例如(Label1)。(我猜只有 @Symbol 1 可以执行符号操作。 ;-) 我要找的命令是\pgflowlevelsynccm

\documentclass[tikz,margin=5pt]{standalone}
\usetikzlibrary{3d}
\begin{document}

\begin{tikzpicture}[y={(0.5cm,-0.5cm)},x={(0.5cm,1cm)}, z={(0cm,1cm)}]
\begin{scope}[canvas is yz plane at x=0,transform shape]
\draw[left color=blue,right color=red] (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\node at (0.5,2) (Label) {Test}; 
\pgflowlevelsynccm
\draw[->,line width=1mm] (0.5,1.8) -- (0.5,1.1);
\end{scope}
\begin{scope}[canvas is yz plane at x=2,transform shape]
\draw[left color=blue,right color=red] (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\node at (0.5,2) (Label) {Test};
\pgflowlevelsynccm
\draw[->,line width=1mm] (1,1.5) -- (0,1.5);
\end{scope}
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容