Por que um caminho está transbordando em uma imagem TikZ

Por que um caminho está transbordando em uma imagem TikZ

No caminho seguinte, há um pequeno transbordamento do traço (1,1) --++(0,-1)além do traço (0,0)--++(2,0). Parece que é porque uso um caminho na minha segunda expressão e o traço seguinte é lateral. Por que é isso? Como posso evitar isso enquanto ainda uso um caminho para os traços.

\draw (0,0)--++(2,0);
\draw (1,1) --++(0,-1)--++(0.5,0.5)--++(0,-0.5);

Responder1

O "transbordamento" é causado pelo tipo de line join:

\documentclass[tikz,border=5]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \join [count=\x] in {round, bevel, miter}{
\begin{scope}[shift=(0:\x*3), line width=.25cm, line join=\join]
\draw [opacity=0.5] (0,2) -- (2,0);
\draw [opacity=0.5] (0,0) -- (1,1) -- (1,0);
\node at (1,-1) {\join};
\end{scope}
}
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

Você também pode alterar miter limitqual é o múltiplo das larguras de linha além das quais a miterjunção de linha será substituída por uma beveljunção de linha.

\documentclass[tikz,border=5]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \m [count=\x] in {0,10}{
\begin{scope}[shift=(0:\x*3), line width=.25cm, line join=miter, miter limit=\m]
\draw [opacity=0.5] (0,2) -- (2,0);
\draw [opacity=0.5] (0,0) -- (1,1) -- (1,0);
\node at (1,-1) {miter limit: \m};
\end{scope}
}
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

Esses parâmetros podem ser definidos no nível do caminho tikzpictureou scopeno caminho individual.

informação relacionada