想要在一条线上创建一组交替的 (+q、-q 等) 点电荷吗?这对于 Tikz 来说完全是新手。
提前致谢。
答案1
您在追求这样的事吗?
\documentclass[tikz, border=3mm]{standalone}
\tikzset{%
plus/.pic={
\node[circle,ball color=orange,inner sep=0pt,minimum width=2.5ex] {+};
},
minus/.pic={
\node[circle,ball color=green,inner sep=0pt,minimum width=2.5ex] {-};
}
}
\begin{document}
\begin{tikzpicture}
\foreach \x [evaluate={\a=\x+1}] in {0,2,...,16} {
\pic at (\x,0) {plus};
\pic at (\a,0) {minus};
}
\end{tikzpicture}
\end{document}
答案2
这里使用 MWE\foreach
绘制电荷。您需要为电荷设置1
或。如果您需要除或之外-1
的其他高度,您可以根据需要调整值或仅使用tikz 的 -option。1
-1
yscale
希望这可以帮助。
\documentclass[tikz, border=10mm]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \y [count=\x from 0] in { %
1,-1,-1,1,-1 % set of charges
} {
\draw (\x,0) -- ++(0,\y);
}
\draw [->, >=latex, shorten >= -.5cm, shorten <= -.5cm] (0,0) -- (\x,0);
\end{tikzpicture}
\end{document}
编辑:
为了调整值之间的间距,x
有两种不同的方法:
使用- 您可以设置
\foreach
( x-divisor) 来调整-spacingevaluate
\xdiv
x
\documentclass[tikz, border=10mm]{standalone}
\begin{document}
\begin{tikzpicture}
\newcommand{\xdiv}{2}
\foreach \y [count=\i from 0, evaluate=\i as \x using \i/\xdiv] in { %
1,-1,-1,1,-1,1,1 % set of charges
} {
\draw (\x,0) -- ++(0,\y);
}
\draw [->, >=latex, shorten >= -.5cm, shorten <= -.5cm] (0,0) -- (\i/\xdiv,0);
\end{tikzpicture}
\end{document}
使用
xscale
-option(这里是全局的tikzpicture
- 也可以用本地范围设置)
\documentclass[tikz, border=10mm]{standalone}
\begin{document}
\begin{tikzpicture}[xscale=.5]
\foreach \y [count=\x from 0] in { %
1,-1,-1,1,-1,1,1 % set of charges
} {
\draw (\x,0) -- ++(0,\y);
}
\draw [->, >=latex, shorten >= -.5cm, shorten <= -.5cm] (0,0) -- (\x,0);
\end{tikzpicture}
\end{document}
两个例子都给出了这样的图像:
为了设置更好看的收费,你可以使用
arrows
tikz 的库:
\documentclass[tikz, border=10mm]{standalone}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}
\foreach \y [count=\x from 0] in { %
1,-1,-1,1,-1 % set of charges
} {
\draw [-o] (\x,0) -- ++(0,\y);
}
\draw [->, >=latex, shorten >= -.5cm, shorten <= -.5cm] (0,0) -- (\x,0);
\end{tikzpicture}
\end{document}
当然,您可以使用pgfmanual
第 16.5 节(版本 3.0)中所述的其他箭头类型。例如,[-*]
线端的实心点。