Consider the following example.
Code
\documentclass{article}
\usepackage{pstricks-add}
\begin{document}
\def\laengde{60 }
\psset{unit=0.04}
\begin{pspicture}(260,260)
\pnode(0,0){P1}
\pnode(!0 \laengde){P2}
\pnode(!0 2 \laengde mul){P3}
\pnode(!0 3 \laengde mul){P4}
\pnode(!0 4 \laengde mul){P5}
\pnode(!\laengde 4 \laengde mul){P6}
\pnode(!2 \laengde mul 4 \laengde mul){P7}
\pnode(!3 \laengde mul 4 \laengde mul){P8}
\pnode(!4 \laengde mul 4 \laengde mul){P9}
\pnode(!4 \laengde mul 3 \laengde mul){P10}
\pnode(!4 \laengde mul 2 \laengde mul){P11}
\pnode(!4 \laengde mul \laengde){P12}
\pnode(!4 \laengde mul 0){P13}
\pnode(!3 \laengde mul 0){P14}
\pnode(!2 \laengde mul 0){P15}
\pnode(!\laengde 0){P16}
\psline(P1)(P2)
\psarc(P3){\laengde}{270}{90}
\psline(P4)(P5)(P6)
\psarc(P7){\laengde}{180}{0}
\psline(P8)(P9)(P10)
\psarc(P11){\laengde}{90}{270}
\psline(P12)(P13)(P14)
\psarc(P15){\laengde}{0}{180}
\psline(P16)(P1)
\pspolygon(P3)(P7)(P11)(P15)
\multido{\iA=5+1,\iB=6+1}{8}{%
\pcline[offset=12pt]{|<->|}(P\iA)(P\iB)
\ncput*[nrot=:U]{\laengde}
}
\end{pspicture}
\end{document}
Output
Question
I'm pretty sure the code can be improved/optimized. How do I do that?
Update 1
I have tried to simplify the creation of the sixteen \pnodes
, but when they are replaced be the four outcommented lines in the code below, I cannot compile.
\documentclass{article}
\usepackage{pstricks-add}
\begin{document}
\def\laengde{60 }
\psset{unit=0.04}
\begin{pspicture}(260,260)
%\multido{\iA=1+1}{4}{\pnode(!0 \iA \laengde mul){P\iA}}
\pnode(!0 1 \laengde mul){P1}
\pnode(!0 2 \laengde mul){P2}
\pnode(!0 3 \laengde mul){P3}
\pnode(!0 4 \laengde mul){P4}
%\multido{\iB=1+1,\iC=5+1}{4}{\pnode(!\iB \laengde mul 4 \laengde mul){P\iC}}
\pnode(!1 \laengde mul 4 \laengde mul){P5}
\pnode(!2 \laengde mul 4 \laengde mul){P6}
\pnode(!3 \laengde mul 4 \laengde mul){P7}
\pnode(!4 \laengde mul 4 \laengde mul){P8}
%\multido{\iD=0+-1,\iE=9+1}{4}{\pnode(!4 \laengde mul \iD \laengde mul){P\iE}}
\pnode(!4 \laengde mul 3 \laengde mul){P9}
\pnode(!4 \laengde mul 2 \laengde mul){P10}
\pnode(!4 \laengde mul 1 \laengde mul){P11}
\pnode(!4 \laengde mul 0 \laengde mul){P12}
%\multido{\iF=0+-1,\iG=9+1}{4}{\pnode(!\iF \laengde mul 0){P\iG}}
\pnode(!3 \laengde mul 0){P13}
\pnode(!2 \laengde mul 0){P14}
\pnode(!1 \laengde mul 0){P15}
\pnode(!0 \laengde mul 0){P16}
\psline(P16)(P1)
\psarc(P2){\laengde}{270}{90}
\psline(P3)(P4)(P5)
\psarc(P6){\laengde}{180}{0}
\psline(P7)(P8)(P9)
\psarc(P10){\laengde}{90}{270}
\psline(P11)(P12)(P13)
\psarc(P14){\laengde}{0}{180}
\psline(P15)(P16)
\pspolygon(P2)(P6)(P10)(P14)
\multido{\iH=4+1,\iI=5+1}{8}{%
\pcline[offset=12pt]{|<->|}(P\iH)(P\iI)
\ncput*[nrot=:U]{\laengde}
}
\end{pspicture}
\end{document}