Dibuja una forma "dentro" de otra.

Dibuja una forma "dentro" de otra.

Me gustaría dibujar una forma (solo con ángulos rectos) dentro de otra (solo con ángulos rectos). Los bordes deben estar lo más cerca posible sin superponerse.

Puedo hacer algo a mano, de la siguiente manera:

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

que produce

ingrese la descripción de la imagen aquí

pero, por supuesto, esto no es muy robusto (el "desplazamiento" de 0,02 debe volver a calcularse si el ancho cambia) ni portátil. ¿Existe una mejor manera?

Respuesta1

Pruebe lo siguiente:

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

ingrese la descripción de la imagen aquí

Puedes dibujar líneas negras de la misma manera que yo dibujo una roja (usando -|coordenadas ortogonales que acortan el código significativamente).

información relacionada