
Что необходимо для «завершения» линий, используемых для \draw
завершения фигур?
\documentclass{letter}
\usepackage{tikz}
\begin{document}
\tikzset{every picture/.style=thick}
\begin{tikzpicture}[scale=0.2]
\draw (11,-1) -- (13,-1) -- (13,1) -- (11,1) -- (13,0) -- (11,-1);
\draw(12,8) arc (-90:180:1);
\draw(12,8) -- (12,9) -- (11,9);
\end{tikzpicture}
\end{document}
В некоторых углах углы зазубрены, а в других — «пронзают» форму.
решение1
Правила следующие:
- Используйте полные, отдельные пути или, используя ваши собственные слова из комментариев ниже: "нарисуйте это одним кадром". То есть не используйте больше одной команды
\draw
,\path
или около того. Также убедитесь, что нет пробелов. - Добавить
-- cycle
, чтобы закрыть замкнутый путь. - Необязательно: используйте соответствующее соединение линий.
Применительно к вашей картинке это дает
\documentclass[tikz, border=3mm]{standalone}
\begin{document}
\tikzset{every picture/.style=thick}
\begin{tikzpicture}[scale=0.2]
\begin{scope}
\draw (12,4) -- (12,3) arc (-90:180:1) -- cycle;
\draw (11,-1) -- (13,-1) -- (13,1) -- (11,1) -- (13,0) -- cycle;
\end{scope}
\begin{scope}[xshift=3.5cm,line join=round]
\draw (12,4) -- (12,3) arc (-90:180:1) -- cycle;
\draw (11,-1) -- (13,-1) -- (13,1) -- (11,1) -- (13,0) -- cycle;
\end{scope}
\begin{scope}[xshift=7cm,line join=bevel]
\draw (12,4) -- (12,3) arc (-90:180:1) -- cycle;
\draw (11,-1) -- (13,-1) -- (13,1) -- (11,1) -- (13,0) -- cycle;
\end{scope}
\begin{scope}[xshift=10.5cm,miter limit=1]
\draw (12,4) -- (12,3) arc (-90:180:1) -- cycle;
\draw (11,-1) -- (13,-1) -- (13,1) -- (11,1) -- (13,0) -- cycle;
\end{scope}
\end{tikzpicture}
\end{document}
Здесь рассматриваются несколько различных вариантов соединения линий, для получения дополнительной информации см. стр. 172 pgfmanual v3.1.4.
Конечно, если вы соединяете разные пути, чтобы получить хорошие соединения линий, может случиться так, что вам придется, или по крайней мере будет выгодно, изменить направление некоторых сегментов. Например, когда я соединял три сегмента дополнения к вашему вопросу, я повернул одну дугу, чтобы получить
\documentclass[tikz, border=3mm]{standalone}
\begin{document}
\tikzset{every picture/.style=thick}
\begin{tikzpicture}[scale=0.25]
\draw (5,7) -- (7,5) -- (5,5) -- (7,7)
arc (90:180:1) arc (0:90:1) -- cycle;
\end{tikzpicture}
\end{document}
Путь можно сократить до
\draw (7,5) -- (5,5) -- (7,7) arc (90:180:1) arc (0:90:1) -- cycle;