다른 모양의 "내부"에 모양 그리기

다른 모양의 "내부"에 모양 그리기

다른 모양(직각만 있음) 안에 모양(직각만 있음)을 그리고 싶습니다. 가장자리는 겹치지 않고 최대한 가까워야 합니다.

다음과 같이 수동으로 작업을 수행할 수 있습니다.

\documentclass[tikz, border=2mm]{standalone}
\begin{document}
    \begin{tikzpicture}
        \draw [] (0, 0) -- (1, 0) -- (1, 1) -- (3, 1) -- (3, 2) -- (0, 2) -- (0, 0);
        \draw [color=red] (0.02, 0.02) -- (0.98, 0.02) -- (0.98, 1.02) -- (2.98, 1.02) -- (2.98, 1.98) -- (0.5, 1.98) --
        (0.5, 1) -- (0.02, 1) -- % Part that diverges
        (0.02, 0.02);
    \end{tikzpicture}
\end{document}

생산하는

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

그러나 물론 이것은 매우 견고하지도 않고(폭이 변경되면 0.02의 "이동"을 다시 계산해야 함) 이식성도 없습니다. 더 좋은 방법이 있나요?

답변1

다음을 시도해 보세요:

\documentclass[tikz, border=2mm]{standalone}

\begin{document}
    \begin{tikzpicture}[
u/.style = {yshift=#1\pgflinewidth},
s/.style = {xshift=#1\pgflinewidth}
                        ]
\draw   (0, 0) -- (1, 0) -- (1, 1) -- (3, 1) -- (3, 2) -- (0, 2) -- cycle;
\draw[color=red] 
        ([u,s] 0,0) -| ([u,s=-] 1,1) -| ([u=-,s=-] 3,2) 
                    -| ([u=-] 0.5,1) -| cycle;
    \end{tikzpicture}
\end{document}

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

빨간색 선을 그릴 때와 같은 방법으로 검은색 선을 그릴 수 있습니다( -|코드를 크게 단축하는 직교 좌표에 사용).

관련 정보