
Cómo dibujar esta imagen con Tik¿Z?
¿Alguna sugerencia? Quiero probar el mío pero necesito ayuda para empezar.
EDITAR, primer intento, estoy trabajando en ello:
\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}
Respuesta1
Con un punto de partida tan bonito no es demasiado difícil. ;-)
\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}
Respuesta2
Eldiagrama de ruedasSe puede utilizar el paquete que escribí. El siguiente ejemplo proviene de la documentación del paquete.
El círculo azul del medio con el texto correspondiente se obtiene con las teclas middle
, middle fill
y middle style
.
Los círculos verde, granate y naranja se obtienen con la tecla slices
. El texto viene dado por la segunda variable \WCvarB
que se le da a la clave wheel data
.
Las 3 flechas grises están dibujadas por un segundo \wheelchart
. El espacio entre estas flechas se obtiene con la tecla gap polar
.
El texto exterior está colocado por un tercero \wheelchart
. El texto viene dado por la primera variable \WCvarA
que se le da a la clave arc data
, con un espacio antes y después obtenido con ~
. En el segundo corte, se agrega un arco/flecha con la tecla arc{2}
. Este arco/flecha deja espacio para los datos del arco usando la tecla arc around text
.
\documentclass[border=6pt,dvipsnames]{standalone}
\usepackage{wheelchart}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\sffamily
\wheelchart[
data=,
middle=Optimized\\vibrating\\systems,
middle fill=RoyalBlue,
middle style=white,
radius={1.2}{4},
slices={(0,0) circle[radius=0.8];},
slices style=\WCvarA,
start half,
value=1,
wheel data=\WCvarB,
wheel data pos=0.5,
wheel data style={
white,
align=center
}
]{%
Green/Passive\\control,
Maroon/Feed-\\forward,
Orange/Active\\control%
}
\wheelchart[
gap polar=25,
radius={2.5}{2.7},
slices end arrow={1}{-1},
slices start arrow={1}{-1},
slices style=Gray,
total count=3
]{}
\foreach\n in {-30,90,210}{
\draw[->,MidnightBlue,ultra thick] (\n:1.7)--(\n:1.3);
}
\fill[top color=Gray!50,bottom color=Gray,draw,even odd rule] (0,0) circle[radius=3.5] circle[radius=4.2];
\wheelchart[
arc{2}={<-,ultra thick},
arc around text,
arc data=~\WCvarA~,
arc data pos=0.5,
arc pos=0.5,
data=,
gap polar=10,
radius={3.5}{4.2},
slices style={fill=none},
start half=180,
value=1
]{%
{Mass M, Damping D, Stiffness K},
Dynamic model,
Frequency response functions H,
%
}
\end{tikzpicture}
\end{document}