В примере ниже я получаю правильное поведение, когда использую --
(также to
) для соединения точек вдоль пути, но не когда использую edge
. Я хотел бы использовать , edge
чтобы получить больше контроля над внешним видом отдельных сегментов.
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\tikz\path[draw] (0,0) -- ++(90:0.5) -- ++(30:0.5) --
++(330:0.5) -- ++(270:0.5) -- ++(210:0.5) -- cycle;\qquad
\tikz\path[draw] (0,0) edge ++(90:0.5) edge ++(30:0.5) edge
++(330:0.5) edge ++(270:0.5) edge ++(210:0.5) edge cycle;
\end{document}
решение1
Может быть, это один из способов?
Как отмечает Зарко, edge
s не предназначены для замены операций to
(таких как --
), а скорее предназначены для рисования графов между узлами.
Цитата из руководства:
Если есть несколько операций по краю подряд,начальная координата у всех одинаковаяпоскольку их целевые координаты, в конце концов, не являются частью основного пути.
Однако из этого правила есть одно исключение: если операция на краюнепосредственно предшествует узловая операция, то этот только что объявленный узел является начальной координатой [для следующего
edge
]
Другой способ — вставить узел на каждом шаге пути, чтобы дать новый старт каждому edge
. Недостатком является то, что узлы по умолчанию занимают место.
Выход
Код
\documentclass[12pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[scale=5]
% place the useful coordinates
\path (0,0) coordinate (a--1)
foreach \x in {0,...,5}
{
-- ++(90-\x*60:.5) coordinate (a-\x)
};
% actually draw using edges, repeating last node each time
\draw [blue,very thick]
foreach \x [evaluate=\x as \lastX using \x-1] in {0,...,5}
{
(a-\lastX) edge [bend right=20] (a-\x)
};
\end{tikzpicture}
\end{document}