2

I have the following drawing, that I want to somehow replicate in tikz (or similar if that would be easier).

The important part that I cannot figure out is how to have the arrow/semi-cone opening up from the final step (in the circle) to the spectrum at the bottom (running from, in essence, "none" to "full").

Step-to-spectrum

4
19

There you go :

enter image description here

\documentclass{standalone}

\usepackage{tikz}

\usetikzlibrary{calc,decorations.pathmorphing,patterns}
\pgfdeclaredecoration{penciline}{initial}{
    \state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance,auto corner on length=1mm,]{
        \pgfpathcurveto%
        {% From
            \pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}
                            {\pgfdecorationsegmentamplitude}
        }
        {%  Control 1
        \pgfmathrand
        \pgfpointadd{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{0pt}}
                        {\pgfqpoint{-\pgfdecorationsegmentaspect\pgfdecoratedinputsegmentremainingdistance}%
                                        {\pgfmathresult\pgfdecorationsegmentamplitude}
                        }
        }
        {%TO 
        \pgfpointadd{\pgfpointdecoratedinputsegmentlast}{\pgfpoint{0.5pt}{1.5pt}}
        }
    }
    \state{final}{}
}


\begin{document}
    \begin{tikzpicture}[decoration=penciline, decorate]


        \draw[decorate,<-, very thick] (0,1) --++ (0,1);
        \draw (0,0) ellipse (3cm and 1cm) node [align = center] {Final \\ Step};
        \draw[decorate] (-1,-0.85) --++ (-1,-1);        
        \draw[decorate] (1,-0.85) --++ (1,-1);              
        \draw[decorate] (-2.5,-1.85) --++ (5,0) --++ (0,-0.5) --++ (-5,0) --  cycle;
        \draw[decorate] (-2.5+5,-1.85) --++ (1,1) node [above right, align = center] {Spectrum of \\ ant????};  

        \foreach \n in {1,...,45}{
            \draw[decorate](-2.5 + 4.8 - \n*0.002*\n ,-1.85-0.5) --++ (0.2,0.5);
        }

        \draw [decorate] (-7,-3.5) --++ (5,0) --++ (5,0) --++ (4,0);

        \draw[decorate,<-, very thick] (0,1-7) --++ (0,1);
        \draw (0,-7) ellipse (3cm and 1cm) node [align = center] {Final \\ Step};
        \draw[decorate] (-1,-0.85-7) --++ (-1,-1) --++ (-0.3,0) -- (0,-9.5);

        \foreach \n in {1,...,45}{
            \draw[decorate](-2.5 + 4.8 - \n*0.002*\n ,-10) --++ (0.2,0.5);
        }

        \draw[decorate] (1,-0.85-7) --++ (1,-1) --++ (0.3,0) -- (0,-9.5);               
        \draw[decorate] (-2.5,-9.5) --++ (5,0) --++ (0,-0.5) --++ (-5,0) --  cycle; 


    \end{tikzpicture}
\end{document}

Source : Simulating hand-drawn lines

2
7

Here another approach with reusable code and relative coordinates. This way you can reposition your nodes without the need to redraw your arrow-lines with hand.

It hasn't got this nice pencil-decoration, but it shows how you can reduce your amount of code by reusing parts of it and connect them dynamically.

You can fit the coordinates of the custom arrow easily to your needs by setting new relative coordinates. As the points of the arrow referencing to the circle and the bar (fixed points) are not changed, the position of the nodes can be shifted as you like without loosing the connection between them.

\documentclass[tikz, border=5mm]{standalone}
\usetikzlibrary{calc, positioning, shapes}

\begin{document}
 \begin{tikzpicture}
  \newcommand{\mypic}[2]{
   % 1st param: scope-shift, 2nd param: id for referencing nodes (see below)
   \begin{scope}[shift={#1}]
    \draw node [ellipse, draw, minimum width=4cm, align=center] (circ#2) {Final\\Step};
    \draw [<-, >=latex] (circ#2.north) -- ++(0,.5);
    \node [below=2cm of circ#2 , rectangle, draw, fill, left color=white, right color=black, minimum width=10cm, minimum height=1cm] (spec#2) {};
   \end{scope}
  }

  % Upper pic
  \mypic{(0,0)}{1}
  \draw (circ1.south west) -- ($(spec1.north west) +(.5,0)$) -- ($(spec1.north east) +(-.5,0)$) -- (circ1.south east) ;

  % Lower pic
  \mypic{(0,-6)}{2}
  \draw (circ2.south west) % fixed point
   -- ($(circ2.south west)!.5!(spec2.north west)$) -- ++(-1,0) --
   (spec2.north) % fixed point
   -- ($(spec2.north east)!.5!(circ2.south east) +(1,0)$) -- ++(-1,0) --
   (circ2.south east); % fixed point
 \end{tikzpicture}
\end{document}

Results in:

rendered image

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.