직사각형에 선 그리기

직사각형에 선 그리기

복잡한 모양의 모서리가 있는 노드를 연결하고 싶습니다. 센터와 연결만 하면 되거든요.

다음 코드가 있습니다.

\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}

결과 이미지:

결과 이미지

답변1

직사각형 대신 노드를 사용하십시오. 앵커 위치를 지정하고, 너비와 높이를 조정하고, 테두리를 채우고 그릴 수 있습니다. 그러면 연결이 매우 쉬워집니다.

\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}

여기에 이미지 설명을 입력하세요

답변2

이것이 해결책이 될 수 있지만, 어쩐지 중첩된 그림이 마음에 들지 않습니다.

\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}

결과 이미지

관련 정보