使用 tikz 的 foreach 将坐标放置在圆圈内

使用 tikz 的 foreach 将坐标放置在圆圈内

我尝试将坐标放置为一个圆圈,然后使用它们在坐标之间绘制线条。为此,我认为应该可以使用 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}

相关内容