# How I can draw a twisted 3D curve arrow between two elements?

I want to draw an arrow which has a beautiful curve, Like the below picture (as an example).

 \documentclass[tikz,tikz-3dplot, border=2mm]{standalone}
\begin{document}
\begin{tikzpicture}[scale=3]
\begin{scope}[
yshift=-83,every node/.append style={
yslant=0.5,xslant=-1},yslant=0.5,xslant=-1 ]‎
\coordinate (origin) at (0,0);‎
\draw[very thick] (1.035,1.035)--(1.035,0.965)--(0.965,0.965)--(0.965,1.035)--(1.035,1.035);
\foreach \i [evaluate=\i as \xi using 0.5*(1-cos((\i-1)*180/(7-1)))] in {1,2,...,7}{
\draw ([xshift=\xi cm]origin)--++(90:1cm);
\draw ([yshift=\xi cm]origin)--++(0:1cm);
}‎‎
‎\coordinate (B) at (1,1);
\foreach \i [evaluate=\i as \xi using 0.5*(1-cos((\i-1)*180/(7-1)))] in {1,2,...,7}{
\draw ([xshift=\xi cm]B)--++(90:1cm);
\draw ([yshift=\xi cm]B)--++(0:1cm);
}‎‎
‎\coordinate (C) at (1,0);
\foreach \i [evaluate=\i as \xi using 0.5*(1-cos((\i-1)*180/(7-1)))] in {1,2,...,7}{
\draw ([xshift=\xi cm]C)--++(90:1cm);
\draw ([yshift=\xi cm]C)--++(0:1cm);
}‎‎
‎\coordinate (C) at (0,1);
\foreach \i [evaluate=\i as \xi using 0.5*(1-cos((\i-1)*180/(7-1)))] in {1,2,...,7}{
\draw ([xshift=\xi cm]C)--++(90:1cm);
\draw ([yshift=\xi cm]C)--++(0:1cm);
}
\end{scope}‎
\draw[ultra thick,red,->] (0,-1.62)--(0,-1.92); ‎
‎
\begin{scope}[
yshift=-123,xshift=23,every node/.append style={
yslant=0.5,xslant=-1},yslant=0.5,xslant=-1 ]
\draw[very thick] (0,0)--(0,1cm)--(1,1)--(1,0)--(0,0);

\draw[ultra thick,red,<-] (0.5,0.5,0)--(0.5,0.5,-0.5); ‎‎
\end{scope}‎‎

\end{tikzpicture}
\end{document}

• Well, what's the problem? Since you wrote this code, I assume that drawing curves isn't a problem as such. [I know you wrote the code since you would obviously have attributed it properly to its author otherwise.] – cfr Oct 1 '16 at 22:20
• Thank you, I have problem with twisted 3D curve arrow between two elements. In fact, I cant draw a suitable arrow (like first picture). – sayros Oct 2 '16 at 7:28
• You will have to draw it as a filled path rather than a single line (or use one of the workarounds from a question here - there are a couple). TikZ can't vary the width of a line. – cfr Oct 2 '16 at 13:36