Eu gostaria de desenhar uma forma (apenas com ângulos retos) dentro de outra (apenas com ângulos retos). As bordas devem ficar o mais próximas possível, sem sobreposição.
Posso fazer algo manualmente, como segue:
\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 produz
mas é claro que isso não é muito robusto (o "deslocamento" de 0,02 deve ser recalculado se a largura mudar) nem portátil. Existe uma maneira melhor?
Responder1
Experimente o seguinte:
\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}
Você pode desenhar linhas pretas da mesma maneira que eu desenho uma vermelha (usando -|
coordenadas ortogonais que encurtam significativamente o código).