我正在尝试绘制一条路径并在其上定位节点,然后使用此代码填充它们,并且它可以工作
\documentclass[varwidth=20cm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [dotted](0,0)--(2.5,0.5)
node(2)[pos=0.1]{} node(3)[pos=0.2]{} node(4)[pos=0.3]{} node(5)[pos=0.4]{} node(6)[pos=0.5]{} node(7)[pos=0.6]{} node(8)[pos=0.7]{} node(9)[pos=0.8]{} node(1)[pos=0.9]{} node(10)[pos=1]{};
% \draw [red,dotted] plot [smooth] coordinates {(0,0) (1,0.1) (2,0.3) (2.5,0.5)};
\fill (1) circle[radius=1pt];
\fill (2) circle[radius=1pt];
\fill (3) circle[radius=1pt];
\fill (4) circle[radius=1pt];
\fill (5) circle[radius=1pt];
\fill (6) circle[radius=1pt];
\fill (7) circle[radius=1pt];
\fill (8) circle[radius=1pt];
\fill (9) circle[radius=1pt];
\fill (10)circle[radius=1pt];
\end{tikzpicture}
\end{document}
现在,我想通过使用 来提高效率,而不是重复 10 次相同的代码行\foreach
。我盯着这段代码看,它给出了这个错误计量单位非法(插入 pt)
\documentclass[varwidth=20cm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [dotted](0,0)--(2.5,0.5)
\foreach \x [evaluate=\x] in {1,2,...,10}
node(\x) [pos={\x/10}]{}
\fill (\x) circle[radius=1pt];
\end{tikzpicture}
\end{document}
答案1
问题主要有两个:
\foreach
如果有多个操作需要执行,则需要使用括号;- 不能在同一路径中使用
\draw
和。\fill
要点 n.2 是最重要的:在 n 路径\foreach
中使用语句时,人们所做的\draw
就是添加内容。当然可以添加节点,但不能在同一语句中添加节点并填充作为单独路径绘制的圆。
解释表明有一个更简单的方法可以实现这一点:节点可以自行填充,那么为什么不利用这种可能性呢?
一个例子:
\documentclass[border=10pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw [dotted](0,0)--(2.5,0.5)
\foreach \x in {1,2,...,10}{
node[fill,circle,inner sep=0.75pt](\x) [pos={\x/10}]{}
};
\end{tikzpicture}
\end{document}