Estoy intentando dibujar un diagrama de estilo de múltiples entradas y múltiples salidas, usando código que usa la siguiente estructura:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\tikzset{packet/.style={rectangle, draw, very thick, minimum size=8mm, rounded corners=1mm, fill=blue!50!white!30}}
\tikzset{mixing/.style={rectangle, draw, very thick, minimum width=35ex, rounded corners=1mm, fill=red!70!orange!30,rotate=90}}
\node[packet] (A) at (0,0) {Node A};
\node[packet] (B) [right=2cm of A] {Node B};
\node[mixing] (pro) at ($(A) !.5! (B) + (0.0,-1.0)$) {Multiple Input Multiple Output process};
\node[packet] (C) at (0.0,-2.1) {Node C};
\node[packet] (D) [right=2cm of C] {Node D};
\draw[->] (A.east) -- (B.west);
\draw[->] (C.east) -- (D.west);
\end{tikzpicture}
\end{document}
lo que produce el siguiente diagrama:
Lo que me gustaría saber es cómo dibujar las flechas para que el 'proceso de múltiples entradas y múltiples salidas' divida la línea en dos partes, de modo que haya una flecha que entre al proceso a la izquierda (desde el nodo A). por ejemplo) y otro que sale por la derecha (por ejemplo al nodo B).
Soy consciente de la notación que establece la entrada/salida de una línea en un nodo (algo así como nombre_de_nodo.180, donde 180 especifica el ángulo de entrada/salida del nodo en relación con el centro del nodo), por ejemplo aquíDiagramas de bloques Componentes de múltiples entradas y múltiples salidas en TikZ
Sin embargo, es posible forzar que los puntos de entrada y salida de las flechas del nodo 'proceso' estén 'nivelados' con un par de nodos (A y B, o C y D). (Efectivamente, en el diagrama siguiente es como si el nodo de proceso dividiera las flechas en dos, como se mencionó anteriormente).
Respuesta1
Puedes utilizar el sistema de coordenadas perpendiculares:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\tikzset{packet/.style={rectangle, draw, very thick, minimum size=8mm, rounded corners=1mm, fill=blue!50!white!30}}
\tikzset{mixing/.style={rectangle, draw, very thick, minimum width=35ex, rounded corners=1mm, fill=red!70!orange!30,rotate=90}}
\node[packet] (A) at (0,0) {Node A};
\node[packet] (B) [right=2cm of A] {Node B};
\node[mixing] (pro) at ($(A) !.5! (B) + (0.0,-1.0)$)
(mult) {Multiple Input Multiple Output process};
\node[packet] (C) at (0.0,-2.1) {Node C};
\node[packet] (D) [right=2cm of C] {Node D};
\draw[->] (A.east) -- (mult.north|-A.east);
\draw[->] (mult.south|-A.east) -- (B.west);
\draw[->] (C.east) -- (mult.north|-C.east);
\draw[->] (mult.south|-C.east) -- (D.west);
\end{tikzpicture}
\end{document}
Una mejor alternativa es utilizar:
\draw[->] (A.east) -- (mult.north|-A.east);
\draw[->] (mult.south|-A.east) -- (B.west|-A.east);
\draw[->] (C.east) -- (mult.north|-C.east);
\draw[->] (mult.south|-C.east) -- (D.west|-C.east);