TikZ - 一维点电荷集

TikZ - 一维点电荷集

想要在一条线上创建一组交替的 (+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-1yscale

希望这可以帮助。

\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\xdivx

\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}

两个例子都给出了这样的图像:

渲染图 2

为了设置更好看的收费,你可以使用arrowstikz 的库:

\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)中所述的其他箭头类型。例如,[-*]线端的实心点。

渲染图 3

相关内容