답변1
예를 들면 다음과 같습니다.
\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}
여기서 무슨 일이 일어나고 있는 걸까요? 먼저 노드를 그립니다. 모두 정사각형 모양이어야 하며 가운데 세 개의 노드에는 테두리가 있어야 합니다. \node[minimum size=5em] {...};
옵션이 minimum size
노드의 높이와 너비를 설정하여 정사각형으로 만드는 방법을 사용하여 이를 달성합니다 . 또한 positioning
라이브러리를 사용하여 노드를 서로 상대적으로 배치합니다. 마지막으로 나중에 참조할 수 있도록 a
, b
, ... 라는 이름을 지정합니다 e
.
그런 다음 노드 아래에 선을 그립니다. b.south
( node 의 아래쪽 경계선의 중간 b
)에서 시작하여 약간 아래로 내려간 다음 오른쪽으로, 다시 위로 d.south
. -|
두 좌표 사이에(가로 먼저, 다음으로 세로) 직사각형 선을 그리는 연산자를 사용합니다 . 또한 yshift
시작 좌표를 아래로 이동하는 옵션을 사용하여 선의 점선 부분을 추가합니다 .
이제 노드 위에 선을 그립니다. 먼저 숫자가 있는 수직선만 그립니다. 가장 바깥쪽 선부터 시작하고 이제 shift
시작 좌표를 수평 및 수직으로 이동하는 옵션을 사용합니다. 그런 다음 \foreach
루프를 사용하여 다른 줄을 추가합니다. 여기서는 카운터를 사용하여 숫자를 추가합니다.
마지막으로 미리 그림에 배치한 좌표를 사용하여 곡선을 그립니다. 저는 to[out=..., in=...]
경로의 시작과 끝 부분에 곡선을 그리는 구문을 사용합니다.