Создание этой блок-схемы в LaTeX

Создание этой блок-схемы в LaTeX

Я относительно новичок в LaTeX и мне нужна эта диаграмма для моей бакалаврской диссертации. Я пытался сделать ее с помощью TikZ, но мне удалось создать только блок и некоторые входные и выходные параметры. Как мне сделать остальное и раскрасить его? На нем не должно быть этих маленьких кружочков для параметров управления. Их можно заменить другими вещами.

Спасибо!

Диаграмма потока, балансировка нагрузки мобильности

Я пытался сделать входные и выходные параметры. Как сделать стрелки длиннее?

\coordinate[above left =of mlb.west]   (a1);
\coordinate[below = of a1]              (a2);
\coordinate[above right =of mlb.east]  (b1);
\coordinate[below = of b1]              (b2);

\foreach \i [count=\xi from 1] in {X,Y}
\draw[L]  (a\xi) node[left] {\i} -- (a\xi-| mlb.west);
\foreach \i [count=\xi from 1] in {A,B}
    \draw[L] (mlb.east |- b\xi) -- (b\xi) node[right] {\i};

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

решение1

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

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

\documentclass[tikz,
               border=3mm]{standalone}
\usetikzlibrary{arrows.meta, 
                backgrounds, 
                calc,chains,
                fit,
                positioning,
                }

\begin{document}
\begin{tikzpicture}[
node distance = 3mm and 2mm,
  start chain = going right,
% nodes definitions
     P/.style = {% Parameters circles
                circle, draw, fill=white,
                minimum size=5mm, inner sep=0pt, outer sep=0pt,
                node distance=0pt, node contents={}, on chain},
     F/.style = {% Fit box
                draw, dashed, inner xsep=1mm, inner ysep=0mm, yshift=2.5mm},
% lines/arrows definition
     L/.style = {-Stealth, thick}
                    ]
% parameters circles
\foreach \i in {1,...,5}{\node (n\i) [P];}
% MLB box
% it width is length from west side to east side of P nodes
\path   let \p1 = (n1.west),
            \p2 = (n5.east),
            \n1 = {veclen(\x2-\x1,\y2-\y1)} in
        node (mlb)  [minimum width=\n1, inner ysep=5mm,
                     draw, font=\Huge\bfseries,
                     below=0mm of n3] {MLB};
% control parameters
    \begin{scope}[inner ysep=1pt]
\node (n11) [above left =of n1 ]    {Max\_Load@TeNB};
\node (n12) [above      =of n11]    {xxxxxxxxxxxxxx};
\node (n13) [above=of n12.north -| n3]  {Max\_Load};
\node (n15) [above right=of n5 ]    {xxxxxxxxxxxxxx};
\node (n14) [above      =of n15]    {xxxxxxxxxxxxxx};
% parameters title
\node (n16) [above left=of n1.west |- n13,
             font=\large\bfseries]  {Control Parameter};
    \end{scope}
% frame around parameters lie on background layer
\scoped[on background layer]
    \node   [F, fit=(n1) (n16.west) (n14)] {};
% lines
\draw[L]    (n11) -| (n1);
\draw[L]    (n12) -| (n2);
\draw[L]    (n13) -- (n3);
\draw[L]    (n14) -| (n4);
\draw[L]    (n15) -| (n5);
    \end{tikzpicture}
\end{document}

Редактировать: Поскольку ответа пока нет, похоже, что осталось доработать изображение до высоты :-)

Рассмотрим входные параметры (с левой стороны MLD). Тексты находятся примерно в 1 см слева от узла MLD, пунктирная линия вокруг расположена немного иначе, чем вокруг контрольных параметров. Для этого имеет смысл изменить расстояние до узла и некоторые параметры F-образной формы. Учитывая это, входные параметры можно записать так:

    \begin{scope}[node distance=0mm and 9mm,
                  F/.append style={inner ysep=1mm,yshift=-1mm}  ]
\node (n21) [above left=of mlb.west] {Cell Load};    
\node (n22) [below left=of mlb.west] {UE Measurements};
\node (n23) [below left=of mlb.west |- n22.south,
             font=\bfseries] {Input Parameters};
    \node   [F, fit=(n21.east) (n23)] {};
    \end{scope}
% coordinate (n21 -| mlb.west) is projection of n21.east on the west border of mlb node
\draw[L]    (n21) -- (n21 -| mlb.west);    
\draw[L]    (n22) -- (n22 -| mlb.west);

Учитывая это дополнение в MWE выше с добавленным цветным узлом MLB, получаем:

\documentclass[tikz,
               border=3mm]{standalone}
\usetikzlibrary{arrows.meta,
                backgrounds,
                calc,chains,
                fit,
                positioning,
                }

\begin{document}
\begin{tikzpicture}[
node distance = 3mm and 2mm,
  start chain = going right,
% nodes definitions
     P/.style = {% Parameters circles
                circle, draw, fill=white,
                minimum size=5mm, inner sep=0pt, outer sep=0pt,
                node distance=0pt, node contents={}, on chain},
     F/.style = {% Fit box
                draw, dashed, inner xsep=1mm, inner ysep=0mm, yshift=2.5mm},
% lines/arrows definition
     L/.style = {-Stealth, thick}
                    ]
% parameters circles
\foreach \i in {1,...,5}{\node (n\i) [P];}
% MLB box
% it width is length from west side to east side of P nodes
\path   let \p1 = (n1.west),
            \p2 = (n5.east),
            \n1 = {veclen(\x2-\x1,\y2-\y1)} in
        node (mlb)  [minimum width=\n1, inner ysep=5mm,
                     draw, font=\Huge\bfseries,
                     top color=white, bottom color=gray!50, middle color=gray!15,  % added colors to shape
                     below=0mm of n3] {MLB};
% control parameters
    \begin{scope}[inner ysep=1pt]
\node (n11) [above left =of n1 ]    {Max\_Load@TeNB};
\node (n12) [above      =of n11]    {xxxxxxxxxxxxxx};
\node (n13) [above=of n12.north -| n3]  {Max\_Load};
\node (n15) [above right=of n5 ]    {xxxxxxxxxxxxxx};
\node (n14) [above      =of n15]    {xxxxxxxxxxxxxx};
% parameters title
\node (n16) [above left=of n1.west |- n13,
             font=\large\bfseries]  {Control Parameter};
    \end{scope}
% frame around parameters lie on background layer
\scoped[on background layer]
    \node   [F, fit=(n1) (n16.west) (n14)] {};
% lines
\draw[L]    (n11) -| (n1);
\draw[L]    (n12) -| (n2);
\draw[L]    (n13) -- (n3);
\draw[L]    (n14) -| (n4);
\draw[L]    (n15) -| (n5);
    \begin{scope}[node distance=0mm and 9mm,
                  F/.append style={inner ysep=1mm,yshift=-1mm}  ]
\node (n21) [above left=of mlb.west] {Cell Load};
\node (n22) [below left=of mlb.west] {UE Measurements};
\node (n23) [below left=of mlb.west |- n22.south,
             font=\bfseries] {Input Parameters};
    \node   [F, fit=(n21.east) (n23)] {};
    \end{scope}
% coordinate (n21 -| mlb.west) is projection of n21.east on the west border of mlb node
\draw[L]    (n21) -- (n21 -| mlb.west);
\draw[L]    (n22) -- (n22 -| mlb.west);    \end{tikzpicture}
\end{document}

[1]: https://i.stack.imgur.com/ixJqG.png

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