Linie zu Rechteck zeichnen

Linie zu Rechteck zeichnen

Ich möchte einen Knoten mit einer Kante einer komplexen Form verbinden. Ich kann ihn nur mit der Mitte verbinden.

Ich habe folgenden Code:

\documentclass[tikz]{standalone}

\usetikzlibrary{positioning}
\usetikzlibrary{shapes}
\usetikzlibrary{calc}
\usetikzlibrary{patterns}

\begin{document}
\begin{tikzpicture}[x=5mm,y=5mm]

    \coordinate (S1) at (0,0) {};
    \coordinate (S2) at (3,4) {};

    \draw ($(S1)-(1,2)$) rectangle ($(S1)+(1,2)$);
    \draw[pattern=north west lines] ($(S1)-(1,2)$) rectangle ($(S1)+(1,1)$);

    \node (N2) at (S2) {blubber};

    \draw (S1) -- (N2);


\end{tikzpicture}
\end{document}

Ergebnisbild:

Ergebnisbild

Antwort1

Verwenden Sie anstelle von Rechtecken Knoten. Sie können deren Anker positionieren, Breite und Höhe anpassen, die Ränder füllen und zeichnen. Dann wird das Verbinden sehr einfach.

\documentclass[tikz]{standalone}

\usetikzlibrary{positioning}
\usetikzlibrary{shapes}
\usetikzlibrary{calc}
\usetikzlibrary{patterns}

\begin{document}
\begin{tikzpicture}
    \coordinate (S2) at (3cm,4cm);
    \node[draw,anchor=south west,minimum width=2cm,minimum height=4cm] (R1) at (-1,-2) {};
    \node[draw,anchor=south west,pattern=north west lines,minimum width=2cm,minimum height=3cm] (R2) at (-1,-2) {};
    \node (N2) at (S2) {blubber};

    \draw (R1) -- (N2);


\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Dies wäre eine Lösung, aber ich mag verschachtelte Bilder irgendwie nicht.

\documentclass[tikz]{standalone}

\usetikzlibrary{positioning}
\usetikzlibrary{shapes}
\usetikzlibrary{calc}
\usetikzlibrary{patterns}

\begin{document}
\begin{tikzpicture}[x=5mm,y=5mm]

    \coordinate (S1) at (0,0) {};
    \coordinate (S2) at (3,4) {};

    \node[inner sep=0,outer sep=0] (N1) at (S1) {
        \begin{tikzpicture}
            \draw (-1,-2) rectangle (1,2);
            \draw[pattern=north west lines] (-1,-2) rectangle (1,1);

        \end{tikzpicture}
    };

    \node (N2) at (S2) {blubber};

    \draw (N1) -- (N2);


\end{tikzpicture}
\end{document}

Ergebnisbild

verwandte Informationen