В следующем контуре есть небольшой выход штриха (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
отдельного пути.