4

How to draw this image with TikZ?

Any suggestions? I want to try my own but I need some help to start.

enter image description here

EDIT, First try, I am working on it:

\documentclass[tikz,border=2mm]{standalone}
 \usetikzlibrary{shadings}
 \usetikzlibrary{shadows.blur}
 \tikzset{% from https://tex.stackexchange.com/a/287177/121799
   my blur shadow layer/.style={
     preaction={fill=black,fill opacity=.025,transform
     canvas={xshift=#1,yshift=0}},
   },
   my blur shadow/.style={
     my blur shadow layer/.list={.3pt,.6pt,...,4.8pt},
   },
 }
 \makeatletter%from https://tex.stackexchange.com/a/245444/121799
 \pgfdeclareradialshading{tikz@lib@fade@circle@5}{\pgfpointorigin}{%
   color(0pt)=(pgftransparent!0); color(18.75bp)=(pgftransparent!0);%
   color(22bp)=(pgftransparent!100); color(40bp)=(pgftransparent!100)%
 }
 \pgfdeclarefading{circle with fuzzy edge 5 percent}{%
   \pgfuseshading{tikz@lib@fade@circle@5}%
 }
 \pgfdeclareradialshading{tikz@lib@fade@circle@2}{\pgfpointorigin}{%
   color(0pt)=(pgftransparent!100); color(18.75bp)=(pgftransparent!100);%
   color(22bp)=(pgftransparent!0); color(40bp)=(pgftransparent!0)%
 }
 \pgfdeclarefading{circle with fuzzy edge 2 percent}{%
   \pgfuseshading{tikz@lib@fade@circle@2}%
 }
 \makeatother
 \begin{document}
 \begin{tikzpicture}[font=\bfseries\sffamily]
  \node[draw=gray!50,line width=0.5mm,circle,fill=blue!30, minimum width=3cm, 
  align=center, text width=3cm, text=white, font=\bfseries\sffamily\Large,
  my blur shadow] (OVS) at (0,0)
  {Optimized vibrating systems};
  \foreach \Angle/\Color/\Label in
  {90/blue!80!white/PC,210/orange/AC,330/green!60!blue/FF}
  {
  \node[draw=gray!50,line width=0.5mm,circle,
  left color=\Color,right color=\Color !60!black, minimum width=2cm, 
  align=center, text=white, font=\bfseries\sffamily\Large,
  my blur shadow] (\Label) at (\Angle:2.4cm)
  {\Label};
  }
  \draw[ultra thick,latex-latex] (PC) to [bend right=30] 
  node[midway,fill=white,sloped]{}(AC);
  \draw[ultra thick,latex-latex] (AC) to [bend right=30] 
  node[midway,fill=white,sloped]{}(FF);
  \draw[ultra thick,latex-latex] (FF) to [bend right=30] 
  node[midway,fill=white,sloped]{}(PC);
 \end{tikzpicture}
 \end{document}
  • 4
    This answer has both some code that could give you a start and a very subtle hint at what you may want to add to your question. ;-) – marmot Mar 1 at 15:15
11

With such a nice starting point it is not too difficult. ;-)

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{shadings,intersections,calc,decorations.text}
\usetikzlibrary{shadows.blur,arrows.meta,bending}
\tikzset{% from https://tex.stackexchange.com/a/287177/121799
   my blur shadow layer/.style={
     preaction={fill=black,fill opacity=.025,transform
     canvas={xshift=#1,yshift=0}},
   },
   my blur shadow/.style={
     my blur shadow layer/.list={.3pt,.6pt,...,4.8pt},
   },
 }
 \makeatletter%from https://tex.stackexchange.com/a/245444/121799
 \pgfdeclareradialshading{tikz@lib@fade@circle@5}{\pgfpointorigin}{%
   color(0pt)=(pgftransparent!0); color(18.75bp)=(pgftransparent!0);%
   color(22bp)=(pgftransparent!100); color(40bp)=(pgftransparent!100)%
 }
 \pgfdeclarefading{circle with fuzzy edge 5 percent}{%
   \pgfuseshading{tikz@lib@fade@circle@5}%
 }
 \pgfdeclareradialshading{tikz@lib@fade@circle@2}{\pgfpointorigin}{%
   color(0pt)=(pgftransparent!100); color(18.75bp)=(pgftransparent!100);%
   color(22bp)=(pgftransparent!0); color(40bp)=(pgftransparent!0)%
 }
 \pgfdeclarefading{circle with fuzzy edge 2 percent}{%
   \pgfuseshading{tikz@lib@fade@circle@2}%
 }
 \makeatother
 \begin{document}
 \begin{tikzpicture}[font=\bfseries\sffamily]
  \node[draw=gray!50,line width=0.5mm,circle,fill=blue!80, minimum width=3cm, 
  align=center, text width=3cm, text=white, font=\bfseries\sffamily\Large,
  my blur shadow] (OVS) at (0,0)
  {Optimized vibrating systems};
  \path[name path=circle] (0,0) circle[radius=3.4cm];
  \foreach \Angle/\Color/\Label/\Text in
  {90/green!70!black/PC/{Passive\\ Control},%
  210/orange/AC/{Active\\ Control},%
  330/red!80!black/FF/{Feed-\\ forward}}
  {
  \node[draw=white,line width=0.75mm,circle,name path=\Label,
  left color=\Color,right color=\Color !60!black, minimum width=2cm, 
  align=center, text=white, font=\bfseries\sffamily\Large,
  my blur shadow] (\Label) at (\Angle:3.5cm)
  {\Text};
  \path[name intersections={of=circle and \Label,by={\Label-1,\Label-2}}];
  \draw[line width=2mm,-{Latex[length=2mm,width=5mm]}] (\Label) -- (OVS);
  }
  \draw[shorten >=0.75mm,gray,line width=2mm,{Latex[length=2mm,width=5mm]}-{Latex[length=2mm,width=5mm]}] 
  let \p1=(AC-1),\p2=(PC-2),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)}
  in   (PC-2) arc(\n2:\n1+360:3.5cm);
  \draw[shorten >=0.75mm,gray,line width=2mm,{Latex[length=2mm,width=5mm]}-{Latex[length=2mm,width=5mm]}] 
  let \p1=(PC-1),\p2=(FF-1),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)}
  in   (FF-1) arc(\n2:\n1:3.5cm);
  \draw[shorten >=0.75mm,gray,line width=2mm,{Latex[length=2mm,width=5mm]}-{Latex[length=2mm,width=5mm]}] 
  let \p1=(FF-2),\p2=(AC-2),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)}
  in   (AC-2) arc(\n2:\n1:3.5cm);
  \draw[even odd rule,bottom color=gray!80,top color=gray!20] (0,0)
        circle[radius=5cm] circle[radius=6cm];
  \path[decoration={raise = -0.8ex,text  along path,
                text = {|\huge\sffamily\bfseries|Dynamic model},
                text align = center,
            }, decorate]
 (150:5.4) arc (150:30:5.4cm);
  \path[decoration={raise = -0.2ex,text  along path,
                text = {|\large\sffamily\bfseries|Mass M, Damping D, Stiffness K},
                text align = center,
            }, decorate]
 (225:5.4) arc (225:135:5.4cm);
  \path[decoration={raise = -0.2ex,text  along path,
                text = {|\large\sffamily\bfseries|Frequency response function H},
                text align = center,
            }, decorate]
 (45:5.4) arc (45:-45:5.4cm);
 \draw[line width=1mm,-{Latex[bend]}] (135:5.5) arc(135:120:5.5);
 \draw[line width=1mm,-{Latex[bend]}] (45:5.5) arc(45:60:5.5);
\end{tikzpicture}
\end{document}

enter image description here

  • Great work! I notice a slight strange things in the screenshoot. If you look carefully on the two blacks borders of the big gray ring, you will see little discontinuities (for example above "n" of "dynamic" or "o" of "model", see the picture at 100% if needed.) Are theses glitches from your PDF viewer? If I compile your code, it's perfect on my viewer. Perhaps this is a temporary imgur.com problem, can you check this? – quark67 Mar 2 at 4:27
  • @quark67 Thanks! This happens a lot. I took a screen shot of the pdf. This is not good for the quality. But as you say, the pdf that gets created from the code doesn't have these issues. – marmot Mar 2 at 4:30

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.