\documentclass[margin=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes,calc}
\begin{document}
\begin{tikzpicture}
\foreach \x [evaluate=\x as \name using \x*20] in{0,0.05,0.1,0.15,...,5}
\node(\name)[regular polygon, regular polygon sides=12,inner sep=0pt,minimum size=\x cm]{};
\node at(1){test};
\end{tikzpicture}
\end{document}
我收到一条错误消息,提示没有名为“1”的形状。除了评估部分,循环运行正常(如果您添加“绘制”选项,则会出现 12 个多边形)。
编辑:我刚刚发现 0.05*20 得出的结果不是 1,而是 1,00006,因此无法找到名为 1 的节点。这是为什么?如何从 0,05*20 得出 1?
答案1
在您的示例中,变量是浮点表达式\name
的结果。因此,您得到,,... ,。因此,您的多边形节点名为,,... ,。\x*20
0.0
1.00006
100.0
0.0
1.00006
100.0
(您不能.
在节点名称中使用:锚点上与节点中心成(a.10)
一定角度的点。10
a
)
您可以使用int(\x*20)
来对浮点表达式进行舍入:
\documentclass[margin=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes,calc}
\begin{document}
\begin{tikzpicture}
\foreach \x [evaluate=\x as \name using int(\x*20)] in{0,0.05,0.1,0.15,...,5}
\node(\name)[regular polygon, regular polygon sides=12,inner sep=0pt,minimum size=\x cm]{};
\node at(1){test};
\end{tikzpicture}
\end{document}