как нарисовать турбореактивный двигатель рисунок

как нарисовать турбореактивный двигатель рисунок

введите описание изображения здесь

Это мой первый опыт использования Tikz, но, боюсь, я не совсем понял, как правильно им пользоваться (я постоянно все путаю и везде получаю ошибки), поэтому я надеялся, что вы, ребята, сможете помочь мне нарисовать эту схему с помощью Tikz.

решение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чтобы размещать узлы относительно друг друга. Наконец, я называю then a, b, ... eдля дальнейшего использования.

Затем я рисую линии под узлами: Одна сплошная линия, которая начинается с b.south(середина нижней границы узла b), идет немного вниз, затем вправо и снова вверх до d.south. Я использую оператор -|, который рисует прямоугольную линию между двумя координатами (сначала по горизонтали, затем по вертикали). Я также добавляю пунктирные части линии, используя опцию yshiftсмещения начальной координаты вниз.

Теперь я рисую линии над узлами, сначала просто вертикальные линии с числами. Я начинаю с самых внешних линий, теперь используя опцию shiftсмещения начальных координат по горизонтали и вертикали. Затем я использую цикл, \foreachчтобы добавить другие линии. Здесь я использую счетчик, чтобы добавить числа.

Наконец, я рисую кривую линию, используя некоторые координаты, которые я поместил на чертеж заранее. Я использую синтаксис, to[out=..., in=...]чтобы рисовать кривые в начале и конце пути.

Связанный контент