Почему на картинке TikZ путь выходит за пределы

Почему на картинке TikZ путь выходит за пределы

В следующем контуре есть небольшой выход штриха (1,1) --++(0,-1)за пределы штриха (0,0)--++(2,0). Похоже, это потому, что я использую контур во втором выражении, а следующий штрих — боковой. Почему так? Как мне предотвратить это, продолжая использовать контур для штрихов.

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

решение1

«Переполнение» вызвано типом 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}

введите описание изображения здесь

Вы также можете изменить miter limitкратность ширины линии, после которой miterсоединение линий будет заменено bevelсоединением линий.

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

введите описание изображения здесь

Эти параметры можно задать на уровне всего tikzpictureили scopeотдельного пути.

Связанный контент