[pstricks] FYI: Stella maris on nautical chart (Example, minor questions)

TeXnicer texnicer at web.de
Fri Feb 17 22:24:29 CET 2017

Dear community,

sell, well, well, I just wanted to learn some navigation and *zapp* I am
practicing using a sextant and feel the desire to draw a "stella maris"
historical symbol for polaris-north on nautical charts.

I did this quite rough regarding the combination and amount of multidos
needed, but maybe this contributes to someones work, questions or
triggers more elegant solutions I can learn of. Still I am messing too
much with coordinate systems and rotation.

I took of package "textcomp" but suggest to use \textdegree instead of
$^\circ$.

Aditionally the usage of $\prime$ did not even come close to any
acceptable result.

Looking forward for feedback!

And wavehand to Herbert for this magnificent set of drawing instructions.

Yours,

Carsten (TeXnicer)

\documentclass[]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{multido}
\usepackage{pst-node}
%\usepackage{textcomp} %\textdegree

% definitions
%sample values from Übungskarte D49
\newcommand{\referenceYear}{2010}
\newcommand{\referenceVariation}{.5} % reference year VARiation in
degree! E=+ W=-
\newcommand{\variationLabel}{0$^\circ$\,50'\,E~\referenceYear~(5'\,E)}
% $^\circ$ better: \textdegree from textcomp
\newcommand{\myFont}{\tiny\color{magenta}\sffamily}

% labels for compass rose
\newcounter{degstep}\setcounter{degstep}{0}
\newcommand{\DegreeUpper}{\stepcounter{degstep}\ifcase\value{degstep}%
\or270\or300\or330\or0\or030\or060\or090\fi}%
\newcommand{\DegreeLower}{\stepcounter{degstep}\ifcase\value{degstep}%
\or120\or150\or180\or210\or240\fi}%

\begin{document}\centering\pagestyle{empty}
\section*{Magnetic variation on nautical charts}
\begin{pspicture}(-5,-5)(5,6)%\psframe[linecolor=red](-4.3,-4.3)(4.3,5.3)
\psset{linecolor=magenta,linewidth=.5pt}

% the VAR (OM) cross
\rput{-\referenceVariation}(0,0){%
\psline(-3.55,0)(-.1,0)
\psline(.1,0)(3.5,0)
\psline(0,-3.55)(0,-.1)
\psline(0,.1)(0,3.55)(-.15,3.05)(0,2.85)
\pscircle(0,0){.1}
\psdot[linewidth=.005](0,0)
\rput{90}(0,1.5){\psframebox*[linecolor=white,framesep=2pt]{\myFont\variationLabel}}
} % VAR (OM) cross

\multido{\i=0+2}{180}{% two degree ticks
\rput{\i}(0,0){\psline(0,4)(0,3.87)}
} % two degree ticks

\multido{\iA=0+30,\iAA=270+30}{12}{% thirty degree ticks
\rput{-\iA}(0,0){\psline[linewidth=1pt](0,4)(0,3.7)}
}

\multido{\iAA=270+30}{7}{% labels 270-090
\rput{-\iAA}(0,0){\rput[b](0,4.05){\myFont\DegreeUpper}}
}
\setcounter{degstep}{0}
\multido{\iAB=300+30}{5}{% labels 120-240
\rput{-\iAB}(0,0){\rput[t](0,-4.05){\myFont\DegreeLower}}
}

% Stella Maris line
\psline[linewidth=1pt](0,4.25)(0,4.7)

% Stella Maris
\rput(0,4.87){% star, perimeter/translation
\multido{\iB=90+72,\iC=54+72,\i=0+1}{5}{
\psline(0,0)(.3;\iB)
\pnode(.3;\iB){S\i}
\pnode(.17;\iC){R\i}
\psline(0,0)(.17;\iC)
\multido{\iD=0+72}{5}{% hatching
\rput{\iD}(0,0){% two hatchling lines
\psline(.033,.05)(.033,.24)
\psline(.066,.1)(.066,.19)
}%rput/two hatching lines
}%multido/hatching
}%multido/Stella Maris
}%rput/tranlation
\pspolygon(R0)(S0)(R1)(S1)(R2)(S2)(R3)(S3)(R4)(S4)% the actual star
perimeter

\end{pspicture}\par
\noindent\footnotesize{Creator: C.~Vogel (TeXnicer), 17.\,2.\,2017