diff --git a/documents/therionprotractors/therionpage.tex b/documents/therionprotractors/therionpage.tex new file mode 100644 index 000000000..e2e463858 --- /dev/null +++ b/documents/therionprotractors/therionpage.tex @@ -0,0 +1,23 @@ +\documentclass[12pt]{standalone} + +% packages +\usepackage{tikz} +\usepackage[outline]{contour} +\usepackage{standalone} + +\begin{document} +\begin{tikzpicture} + +\pgfmathsetmacro{\xdist}{8.5} +\pgfmathsetmacro{\ydist}{4.5} + +\foreach \xval in {1,2} +{ + \foreach \yval in {1,2,...,5} + { + \node at (\xval*\xdist,\yval*\ydist) {\input{therionprotractor.tex}}; + } +} + +\end{tikzpicture} +\end{document} \ No newline at end of file diff --git a/documents/therionprotractors/therionprotractor.tex b/documents/therionprotractors/therionprotractor.tex new file mode 100644 index 000000000..5e2541b24 --- /dev/null +++ b/documents/therionprotractors/therionprotractor.tex @@ -0,0 +1,189 @@ +% ******************************************************************************** +% Creates a therion protractor of set size and scale +% ******************************************************************************** + +\documentclass[12pt,border=0pt]{standalone} + +% packages +\usepackage{tikz} +\usepackage[outline]{contour} + +\begin{document} +\begin{tikzpicture}[scale=1] + +\contourlength{1.2pt} + +% ******************************************************************************** +% Set the coordinates and dimensions to draw from +% ******************************************************************************** + +% Origin +\coordinate (O) at (0,0); + +% Size and scale of the protractor +\pgfmathsetmacro{\scaleto}{250} % 1:scaleto +\pgfmathsetmacro{\radius}{10} % size in meters +\pgfmathsetmacro{\majordivision}{1} % size in meters +\pgfmathsetmacro{\minordivision}{0.5} % size in meters + +% Size of the text numbers +\newcommand{\textsize}{\tiny} + +% Intrinisc dimensions and conversion factors +\pgfmathsetmacro{\convert}{100} % conversion from meters to centimeters +\pgfmathsetmacro{\mintick}{0.1} % size in centimeters +\pgfmathsetmacro{\majtick}{0.2} % size in centimeters +\pgfmathsetmacro{\minradii}{0.5} % fractional radius where dotted radial lines start +\pgfmathsetmacro{\minradiiend}{1-\minradii} % remainder + +% Size and scale of the drawing +\pgfmathsetmacro{\rad}{\radius*\convert/\scaleto} +\pgfmathsetmacro{\majdiv}{\majordivision*\convert/\scaleto} +\pgfmathsetmacro{\mindiv}{\minordivision*\convert/\scaleto} + +% Slightly reduced radii for the scale bar +\pgfmathsetmacro{\radscale}{\rad-\mindiv} + + +% ******************************************************************************** +% Draw the foreshortening lines +% ******************************************************************************** + +% Vertical lines +\foreach \var in {0,\mindiv,...,\radscale} +{ + \draw[gray] (O) ++ (\var,0) -- ++ (0,\rad); + \draw[gray] (O) ++ (-\var,0) -- ++ (0,\rad); +} + +% White out the excess length +\draw[thick,white,fill=white] (O) ++ (\rad,0) arc(0:180:\rad) -- ++ (0,\rad) -- ++ (2*\rad,0) -- cycle; + + +% ******************************************************************************** +% Draw the circumcircles +% ******************************************************************************** + +\foreach \var in {0,\mindiv,...,\rad} +{ + \draw[gray] (O) ++ (\var,0) arc (0:180:\var); +} + + +% ******************************************************************************** +% Draw the radii +% ******************************************************************************** + +\foreach \theta in {10,40,...,160} +{ + \draw[red] (O) ++ (\theta:\mindiv) -- ++ (\theta:\radscale); +} + +\foreach \theta in {20,50,...,170} +{ + \draw[blue] (O) ++ (\theta:\mindiv) -- ++ (\theta:\radscale); +} + +\foreach \theta in {30,60,...,150} +{ + \draw[black] (O) ++ (\theta:\mindiv) -- ++ (\theta:\radscale); +} + +\foreach \theta in {5,15,...,175} +{ + \draw[black,dotted] (O) ++ (\theta:\minradii*\rad) -- ++ (\theta:\minradiiend*\rad); +} + + +% ******************************************************************************** +% Draw the angular scale +% ******************************************************************************** + +\foreach \theta in {1,2,...,179} +{ + \draw[black,thick] (O) ++ (\theta:\rad) -- ++ (\theta:-\mintick); +} + +\foreach \theta in {5,10,...,175} +{ + \draw[black,thick] (O) ++ (\theta:\rad) -- ++ (\theta:-\majtick); +} + + +% ******************************************************************************** +% Draw the linear scale +% ******************************************************************************** + + +\foreach \var in {0,\mindiv,...,\radscale} +{ + \draw[black,thick] (O) ++ (\var,0) -- ++ (0,\mintick); + \draw[black,thick] (O) ++ (-\var,0) -- ++ (0,\mintick); +} + + + +% ******************************************************************************** +% Draw the outline +% ******************************************************************************** + +\draw[black,thick] (O) ++ (\rad,0) arc (0:180:\rad) -- cycle; +\draw[black,thick] (O) -- ++ (0,\majtick); + + +% ******************************************************************************** +% Draw the angle numbers +% ******************************************************************************** + +\foreach \theta in {10,20,...,80} +{ + \pgfmathsetmacro{\thetaopposite}{\theta+180} + + \draw[black] (O) ++ (\theta:\rad) -- ++ (\theta:-\majtick) node[anchor=south,near start,sloped,rotate=90,text=black] { + \textsize + \begin{tabular}{c} + \contour{white}{\pgfmathprintnumber{\theta}}\\ + \contour{white}{\pgfmathprintnumber{\thetaopposite}} + \end{tabular} + }; +} + +\foreach \theta in {90,100,...,170} +{ + \pgfmathsetmacro{\thetaopposite}{\theta+180} + + \draw[black] (O) ++ (\theta:\rad) -- ++ (\theta:-\majtick) node[anchor=south,near start,sloped,rotate=-90,text=black] { + \textsize + \begin{tabular}{c} + \contour{white}{\pgfmathprintnumber{\theta}}\\ + \contour{white}{\pgfmathprintnumber{\thetaopposite}} + \end{tabular} + }; +}; + + +% ******************************************************************************** +% Draw the linear numbers +% ******************************************************************************** + +\pgfmathsetmacro{\labmax}{\radius-\majordivision} +\pgfmathsetmacro{\labsecond}{\majordivision+\majordivision} + +\foreach \var in {\majordivision,\labsecond,...,\labmax} +{ + \pgfmathsetmacro{\varpos}{\var*\convert/\scaleto} + + \draw[black,thick] (O) ++ (\varpos,0) -- ++ (0,\mintick) node [above=-2pt] {\contour{white}{\textsize\pgfmathprintnumber{\var}}}; + \draw[black,thick] (O) ++ (-\varpos,0) -- ++ (0,\mintick) node [above=-2pt] {\contour{white}{\textsize\pgfmathprintnumber{\var}}}; +} + + +% ******************************************************************************** +% Draw the scale number +% ******************************************************************************** + +\draw[black] (O) ++ (0,\rad/3) -- ++ (0,\rad/3) node [midway,anchor=center,sloped,text=black] {\contour{white}{\textsize $1$:\pgfmathprintnumber{\scaleto}}}; + + +\end{tikzpicture} +\end{document} \ No newline at end of file