
Estou tentando traduzir um gráfico em um livro e preciso conectar alguns retângulos para fazer isso. Aqui está o que tenho até agora:
Como você pode ver, a posição da seta não é agradável porque as setas não se conectam às bordas dos retângulos. O código que gerou este gráfico:
\begin{tikzpicture}
\draw [rounded corners, fill=lightgray] (3,0) rectangle (6,-1) node (1) [pos=.5] {\textit{Output} gráfico} ;
\draw [rounded corners, fill=lightgray] (3,-2.5) rectangle (6,-3.5) node (2) [pos=.5] {\textit{Game Manager}};
\draw [rounded corners, fill=lightgray] (3,-5) rectangle (6,-6) node (3) [pos=.5] {Jogador};
\draw (-0.5,-1) rectangle (2,-2.5) node (4) [pos=.5, align=center] {Descrições de \\ jogos};
\draw (-0.5,-3) rectangle (2,-4.5) node (5) [pos=.5, align=center] {Registro de \\ partidas};
\draw (7,-2.5) rectangle (9,-3.5) node (6) [pos=.5, align=center] {Registro de \\ partidas};
\draw[black, thick, ->] (2) -- (1.south);
\end{tikzpicture}
Acho que seria melhor fazer isso com nós, já que os nós se conectam às bordas, mas não consigo fazer com que os nós se pareçam com os retângulos da imagem acima. Eles são pequenos e não têm fronteiras. Aqui está um exemplo:
E o código que gerou o gráfico acima:
\begin{tikzpicture}
\node [ rounded corners, fill=lightgray] at (4.5,0) (1) {\textit{Output} gráfico};
\end{tikzpicture}
Então, minhas perguntas são: Como posso conectar dois retângulos com setas que começam e terminam nas bordas? Se isso não for possível, como posso gerar nós maiores com bordas visíveis (mas o tamanho da fonte permanece o mesmo)?
Responder1
Não tenho tempo agora para refazer todo o MWE, mas o primeiro retângulo pode ser substituído por:
\node (1) [rounded corners, draw, fill=lightgray,minimum width=3cm,minimum height=1cm]
at (4.5,-.5) {\textit{Output} gr\'afico} ;
Responder2
Use as chaves minimum height
e minimum width
para o tamanho dos nós e use a biblioteca positioning
para colocá-los. Em seguida, use estilos para cada tipo de nó.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[node distance=15 mm and 15 mm,
every node/.style={draw},
central/.style={fill=lightgray,rounded corners,minimum
width=3cm,minimum height=1cm},
other/.style={text width=2.2 cm,text centered,minimum
width=2.5cm,,minimum height=1.5cm}]
\node[central] (output){\textit{Output} gr\'afico};
\node[central] (manager) [below=of output] {\textit{Game Manager}};
\node[central] (jogador) [below=of manager] {Jogador};
\node[text width= 2cm,text centered] [right=of manager] {Registro de \\ partidas};
\node[other,yshift=-1cm] [left=of manager]{Registro de \\ partidas};
\node[other,yshift=1.2cm] [left=of manager]{Descri\c c\=oes de \\ jogos};
\draw[->] (manager)--(output);
\end{tikzpicture}
\end{document}