Gleich vorweg: Mit TikZ würde ich das ganz anders machen. Bei der PSTricks-Familie kenne ich weder die Mittel der Mathematik noch die um Dinge (Nodes) entlang eines Pfades (`\path`) anzuordnen. Es folgt eine eTeX-unterstütze Umrechnung von Startpunkt, Endpunkt und Anzahl der Objekte in Startpunkt und „Deltapunkt“.
Das Macro `\multiDoAlongLine` versteht folgende Syntax
\multiDoAlongLine(<Startpunkt>)(<Endpunkt>){<Anzahl der Objekte>}{<Objekt>}
bzw.
\multiDoAlongLine*(<Startpunkt>)(<Endpunkt>){<Anzahl der Objekte>}{<Objekt>}
Bei der Version ohne Asterisk wird jeweils ein Objekt auf `<Startpunkt>` und `<Endpunkt>` gesetzt, bei der mit Asterisk werden quasi `<Anzahl der Objekte> + 2` Objekte gesetzt, nur dass das erste und letzte eben nicht exisitert. (Das sorgt also dafür, dass zwischen Startpunkt und erstem Objekt sowie zwischen letztem Objekt und Endpunkt ebenfalls ein Abstand ist.)
Ich habe zum Verständnis dieses Unterschieds noch eine `+`- sowie eine `?`-Reihe eingebaut.
## Code
% arara: latex
% arara: dvips
% arara: ps2pdf
\documentclass[pstricks]{standalone}
%\usepackage{pstricks}
\makeatletter
\def\multiDoAlongLine{%
\@ifstar{\@multiDoAlongLine{1}}{\@multiDoAlongLine{-1}}}
\def\@multiDoAlongLine#1(#2,#3)(#4,#5)#6#7{%
\edef\@tempa{\the\dimexpr(#4pt-#2pt)/(#6+#1)\relax}%
\edef\@tempb{\the\dimexpr(#5pt-#3pt)/(#6+#1)\relax}%
\@tempdima\@tempa\relax
\@tempdimb\@tempb\relax
\edef\@tempc{(\strip@pt\@tempdima, \strip@pt\@tempdimb)}%
\ifnum#1=1
\edef\@tempa{\the\dimexpr\@tempa+#2pt\relax}%
\edef\@tempb{\the\dimexpr\@tempb+#3pt\relax}%
\@tempdima\@tempa\relax
\@tempdimb\@tempb\relax
\edef\@tempa{(\strip@pt\@tempdima, \strip@pt\@tempdimb)\@tempc}\relax
\else
\edef\@tempa{(#2,#3)\@tempc}%
\fi
\expandafter\multirput\@tempa{#6}{#7}%
}
\makeatother
\begin{document}
\begin{pspicture}[showgrid=true](0,0)(6,3.25)
\multiDoAlongLine(1,3)(5,3){5}{\cput[framesep=0pt](0,0){\tiny$-$}}
\psframe(1,0)(5,2)
% \psline[linestyle=dashed](1,1)(5,1)
\multiDoAlongLine*(1,1)(5,1){5}{\cput[framesep=0pt](0,0){\tiny$-$}}
\multiDoAlongLine(1,.5)(5,.5){7}{\cput[framesep=0pt](0,0){\tiny$+$}}
\multiDoAlongLine*(0,2.5)(6,2.5){5}{\cput[framesep=0pt](0,0){\tiny?}}
\end{pspicture}
\end{document}
## Resultat
![alt text][1]
# TikZ
\documentclass[tikz]{standalone}
\usetikzlibrary{backgrounds,calc}
\tikzset{
declare function={
alongLineWoPadding(\i,\n)=(\i-1)/(\n-1);
alongLineWPadding(\i,\n)=\i/(\n+1);}}
\begin{document}
\begin{tikzpicture}[
gridded,
background grid/.append style={densely dotted},
thick,
electron/.style={draw, shape=circle, inner sep=+0pt, font={\tiny$-$}, outer sep=+2pt}]
\node[draw, minimum width=4cm, minimum height=2cm, outer sep=+0pt] at (3,1) (r) {};
\foreach \cnt in {1, ..., 5}
\node[electron, yshift=2cm]
at ($(r.west)!alongLineWoPadding(\cnt,5)!(r.east)$) (e\cnt) {};
\foreach \cnt in {1, ..., 5}
\node[electron]
at ($(r.west)!alongLineWPadding(\cnt,5)!(r.east)$) (e\cnt') {}
(e\cnt) edge[thin, ->] (e\cnt');
\end{tikzpicture}
\end{document}
[1]: http://texwelt.de/wissen/upfiles/de1686.png