1

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

enter image description here

 \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
  • 1
    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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.