
Estoy intentando traducir un gráfico en un libro y necesito conectar algunos rectángulos para hacerlo. Esto es lo que tengo hasta ahora:
Como puede ver, la posición de la flecha no es agradable porque las flechas no se conectan a los bordes de los rectángulos. El código que generó 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}
Creo que sería mejor hacer esto con nodos, ya que los nodos se conectan a los bordes, pero no puedo hacer que los nodos se vean como los rectángulos de la imagen de arriba. Son pequeños y no tienen fronteras. He aquí un ejemplo:
Y el código que generó el gráfico de arriba:
\begin{tikzpicture}
\node [ rounded corners, fill=lightgray] at (4.5,0) (1) {\textit{Output} gráfico};
\end{tikzpicture}
Entonces mis preguntas son: ¿Cómo puedo conectar dos rectángulos con flechas que comienzan y terminan en los bordes? Si eso no es posible, ¿cómo puedo generar nodos más grandes con bordes visibles (pero el tamaño de fuente sigue siendo el mismo)?
Respuesta1
No tengo tiempo ahora para rehacer todo el MWE, pero el primer rectángulo se puede reemplazar por:
\node (1) [rounded corners, draw, fill=lightgray,minimum width=3cm,minimum height=1cm]
at (4.5,-.5) {\textit{Output} gr\'afico} ;
Respuesta2
Utilice las claves minimum height
y minimum width
para el tamaño de los nodos, y utilice la biblioteca positioning
para colocarlos. Luego use estilos para cada tipo de nodo.
\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}