Dibujar un bloque con una línea de entrada y una línea de salida con Tikz

Dibujar un bloque con una línea de entrada y una línea de salida con Tikz

¿Alguien podría ayudarme con mi código para reproducir esta imagen en Latex?

ingrese la descripción de la imagen aquí

\begin{tikzpicture}

\draw [-] (0, 0) -- (4, 0) node [pos = .5, above] {$X_t$} node [pos = .5, below] {série de entrada};
\node (rectangle) [draw, rectangle, minimum width = 3 cm, minimum height = 3 cm] {filtro linear} node (Y) {} node [pos = .5, above] {$V(B)$};
\draw [-] (0, 0) -- (4, 0) node [pos = .5, above] {$Y_t$} node [pos = .5, below] {série de saída};

\end{tikzpicture}

Respuesta1

Adaptaciones:

  • Asigne un nombre al cuadro: (fl)(filtro lineal) y utilícelo para posicionamiento relativo
  • use la ubicación (fl.north)para escribir V(B)encima del cuadro.
  • escriba el nodo justo después de la conexión (consulte miresponde aquí) en lugar de[pos = .5]

Código:

\documentclass[border=5pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}
\node[draw, rectangle, minimum width = 3 cm, minimum height = 2 cm] (fl) at (0,0) {filtro linear};
\node[above] at (fl.north) {$V(B)$};
\draw[-] (fl) -- node[above]{$X_t$} node[below]{série de entrada} ++(-4,0);
\draw[-] (fl) -- node[above]{$Y_t$} node[below]{série de saída} ++(4,0);
\end{tikzpicture}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

enfoque ligeramente diferente en el dibujo (y mira hacia afuera) :-)

ingrese la descripción de la imagen aquí

con el uso de bibliotecas arrows.metay quotes(si no le gustan las flechas en la entrada y salida, simplemente omita \drawla opción):

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta, quotes}

\begin{document}
    \begin{tikzpicture}[auto,
box/.style = {draw, minimum width=3cm, minimum height=2cm}
                        ]
\node [box,label=$V(B)$]  (fl) {filtro linear};
\draw [Triangle-] (fl.west) to ["$X_t$" ', "série de entrada"] + (-4,0);
\draw [-Triangle] (fl.east) to ["$Y_t$",   "série de saída" '] + ( 4,0);
    \end{tikzpicture}
\end{document}

Respuesta3

Casi igual que las dexteritas excepto que las líneas en realidad miden 4 cm de largo.

\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}

\begin{tikzpicture}

\node (rectangle) [draw, rectangle, minimum width = 3 cm, minimum
height = 3 cm] (Y) at (4,0) {filtro linear} ;
\draw [-] (Y.west) -- ++ (-4, 0) node [pos = .5, above] {$X_t$} node [pos = .5, below]
{série de entrada};
\node [above=0.1cm of Y,anchor=south] {$V(B)$};
\draw [-]  (Y.east) -- ++ (4, 0) node [pos = .5, above] {$Y_t$} node [pos = .5, below] {série de saída};

\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta4

Una prueba con MetaPost y su boxespaquete, para quien le pueda interesar. Incluido en un programa LuaLaTeX.

\documentclass[border=5mm]{standalone}
\usepackage{luatex85, luamplib}
\begin{document}
\begin{mplibcode}
    input boxes;
    beginfig(1);
        boxit.f(btex filtro linear etex);
        f.w = (4cm, 0); pair extr; extr = f.e + f.w; 
        f.e - f.w = (3cm, 0); f.n - f.s = (0, 2cm);
        drawboxed(f);
        draw origin -- f.w; draw f.e -- extr;
        label.top(btex $V(B)$ etex, .5[f.nw,f.ne]);
        label.top(btex $X_t$ etex, .5[origin,f.w]);
        label.bot(btex série de entrada etex, .5[origin,f.w]);
        label.top(btex $Y_t$ etex, .5[f.e,extr]);
        label.bot(btex série de saída etex, .5[f.e,extr]);
    endfig;
\end{mplibcode}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada