我尝试将坐标放置为一个圆圈,然后使用它们在坐标之间绘制线条。为此,我认为应该可以使用 foreach 循环,如果我使用节点,但使用坐标,则效果很好。我的错误是什么?或者循环不适用于坐标?感谢您的帮助。
\foreach \pos/\name in {{(60:4)/1}, {(30:4)/2}, {(0:4)/3}, {(330:4)/4}, {(300:4)/5}, {(270:4)/6}, {(240:4)/7}, {(210:4)/8}, {(180:4)/9}, {(150:4)/10}, {(120:4)/11}, {(90:4)/12}}
\coordinate (\name) at \pos {};
\draw (1) -- (2);
\draw (3) -- (5) -- (4) -- (7);
\draw (8) -- (9) -- (12) -- (10) -- (11);
答案1
\foreach
功能更强大。evaluate
可以使用选项来计算角度:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw
\foreach \i [evaluate=\i as \angle using 90 - \i * 30] in {1, ..., 12} {
(\angle:4) coordinate (\i)
}
(1) -- (2)
(3) -- (5) -- (4) -- (7)
(8) -- (9) -- (12) -- (10) -- (11)
;
\end{tikzpicture}
\end{document}
答案2
我认为以下方法可行:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \pos / \name in {60:4/1, 30:4/2, 0:4/3, 330:4/4, 300:4/5, 270:4/6, 240:4/7, 210:4/8, 180:4/9, 150:4/10, 120:4/11, 90:4/12} \coordinate (\name) at (\pos);
\draw (1) -- (2);
\draw (3) -- (5) -- (4) -- (7);
\draw (8) -- (9) -- (12) -- (10) -- (11);
\end{tikzpicture}
\end{document}