tikz에서 노드 그룹화

tikz에서 노드 그룹화

아래 MWE의 경우:

\documentclass[a4paper,11pt,twoside]{report}
\usepackage[left=2.5cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage{amsmath, graphicx, tikz, enumerate, amssymb, pgf}

\usepackage{setspace}
\usepackage{pgfplots}
%\usepackage{slashbox} Used in original larger file
\usepackage{bchart}

\raggedbottom
\usepackage[bottom]{footmisc}

\usetikzlibrary{calc,trees,positioning,arrows,chains,shapes.geometric,%
    decorations.pathreplacing,decorations.pathmorphing,shapes,%
    matrix,shapes.symbols,automata}

\begin{document}



\setcounter{page}{1}
\renewcommand{\thepage}{\arabic{page}}
\singlespace

\begin{center}
\begin{tikzpicture}[->,>=stealth', auto,node distance=6cm,
  thick,main node/.style={circle,fill=blue!20,draw,font=\sffamily\Large\bfseries}]

  \node[main node] (1) {Design};
  \node[main node] (2) [below left of=1] {Implement};
  \node[main node] (3) [right of=2] {Test};
  \node[main node,dashed, left of =1,fill=white] (4) {\parbox{4cm}{\centering Initial Design\&\\ Implementation}};

  \path[every node/.style={font=\sffamily\small}]
    (4) edge [bend left] node[left] {} (1)
    (1) edge [bend right] node[left] {} (2)
    (2) edge [bend right] node[right] {} (3)
    (3) edge [bend right] node[right] {} (1);
\end{tikzpicture}
\end{center}

\end{document}

for each method어떻게 해야 합니까? 중괄호("}")를 사용하여 파란색 원을 그룹화하고 싶습니다. 그리고 이것을 달성하기 위한 좋은 방법은 무엇일까요?

여기에 이미지 설명을 입력하세요

답변1

(주목:라이브러리를 사용하는 경우 구문 대신 구문을 positioning사용하십시오 .)left=of ...left of=...

일부 노드를 그룹화하려면 라이브러리를 사용할 수 있습니다 fit.

큰 버팀대를 만들려면 decorations.pathreplacing라이브러리를 사용할 수 있습니다.

다음은 제안입니다.

여기에 이미지 설명을 입력하세요

코드(몇 가지 주석 포함):

\documentclass{standalone}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tikz}
\usetikzlibrary{trees,positioning,fit,arrows,decorations.pathreplacing}
\begin{document}
\begin{tikzpicture}
  \tikzset{main node/.style={
      circle,fill=blue!20,draw,font=\sffamily\Large\bfseries,
    }}

  \begin{scope}[node distance=6cm]
    \node[main node] (1) {Design};
    \node[main node] (2) [below left=of 1] {Implement};
    \node[main node] (3) [right=of 2] {Test};

    \node[main node,text width=4cm, align=flush center, dashed,
    left=of 1,fill=white] (4)%
    {Initial Design\\\&\\ Implementation};
  \end{scope}

  \begin{scope}[->,>=stealth',auto]
    \path[every node/.style={font=\sffamily\small}]
    (4) edge [bend left] node[left] {} (1)
    (1) edge [bend right] node[left] {} (2)
    (2) edge [bend right] node[right] {} (3)
    (3) edge [bend right] node[right] {} (1);
  \end{scope}

  % grouping blue nodes
  \node[fit=(1)(2)(3)](group){};

  % comment below
  \draw[line width=1pt,red,decorate,decoration={amplitude=7pt,brace,mirror}]
  (group.south west) -- (group.south east);
  \node[below=of group,anchor=center]{Comment... below.};

  % comment right 
  \draw[line width=1pt,orange,decorate,decoration={amplitude=7pt,brace}]
  (group.north east) -- (group.south east);
  \node[right=of group,anchor=center,rotate=90]{Comment... right.};
\end{tikzpicture}
\end{document}

관련 정보