Respuesta1
Por ejemplo así:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{fontspec}
\setmainfont{Noto Serif CJK SC}
\begin{document}
\begin{tikzpicture}
\node[minimum size=5em] (a) {进气道};
\node[draw, minimum size=5em, right=of a] (b) {压气机};
\node[draw, minimum size=5em, right=of b] (c) {燃烧室};
\node[draw, minimum size=5em, right=of c] (d) {涡轮};
\node[minimum size=5em, right=of d] (e) {尾喷管};
\draw (b.south) -- +(0,-0.5) -| (d.south);
\draw[dashed]
([yshift=-0.5cm]b.south) -- +(-4.5,0)
([yshift=-0.5cm]d.south) -- +(4.5,0);
\draw
([shift={(-0.5,-0.75)}]a.north west) -- +(0,1.75)
coordinate (ax)
node[anchor=north east] {\strut 0}
([shift={(0.5,-0.5)}]e.south east) -- ([shift={(0.5,1)}]e.north east)
coordinate (fx)
node[anchor=north east] {\strut 8}
node[anchor=north west] {\strut (9)};
\foreach \n [count=\i from 2] in {b,c,d,e} {
\draw
([shift={(-0.5,-0.25)}]\n.north west) -- +(0,1.25)
coordinate (\n x)
node[anchor=north east] {\strut \i};
}
\draw
([yshift=-3em]ax) to[out=30, in=180]
([yshift=-1.5em]bx) --
([yshift=-1.5em]ex) to[out=0, in=150]
([yshift=-3em]fx);
\end{tikzpicture}
\end{document}
¿Que está pasando aqui? Primero, dibujo los nodos. Todos deben tener forma de cuadrado y los tres nodos del medio deben tener un borde. Lo logro usando \node[minimum size=5em] {...};
donde la opción minimum size
establece una altura y un ancho para el nodo convirtiéndolo en un cuadrado. También uso la positioning
biblioteca para colocar los nodos entre sí. Finalmente, nombro entonces a a
, b
, ... e
para referencia posterior.
Luego dibujo las líneas debajo de los nodos: una línea continua que comienza desde b.south
(que es el centro del borde inferior del nodo b
), baja un poco, luego hacia la derecha y vuelve a subir hasta d.south
. Utilizo el -|
operador que dibuja una línea rectangular entre dos coordenadas (primero horizontalmente, luego verticalmente). También agrego las partes discontinuas de la línea, usando la yshift
opción para bajar la coordenada inicial.
Ahora, dibujo las líneas encima de los nodos, primero solo las líneas verticales con los números. Empiezo con las líneas más externas, ahora usando la shift
opción para cambiar las coordenadas iniciales horizontal y verticalmente. Luego, uso un \foreach
bucle para agregar las otras líneas. Aquí, uso un contador para sumar los números.
Finalmente, dibujo la línea curva, haciendo uso de algunas coordenadas que coloqué previamente en el dibujo. Utilizo la to[out=..., in=...]
sintaxis para dibujar las curvas al inicio y al final del camino.