Celestial Programming : Analemmatic Sundial

An Analemmatic Sundial is a sundial where the gnomon is vertical, but moves based on the date. Usually the gnomon is a human standing at the specified location for a given date. The gnomon position is usually marked for the first of each month, and the user interpolates the location based on the date. These are usually about 10-15 feet for the major axis, they are generally unsuitable for low lattitudes due the short shadow length.

Hour Labels

$$ \begin{align*} a&=\frac{\text{width of sundial}}{2} \\ b&=a\sin(ϕ) \\ H&=15(hour-12) \\ x&=a\sin(H) \\ y&=b\cos(H) \\ \end{align*} $$
\(a \) = Half the desired width of dial, output coordinates will be in the same units.
\(\phi \) = Latitude.
\(hour \) = Hour of solar time.
\(x \) = X coordinate of hour label.
\(y \) = Y coordinate of hour label.

Gnomon Position

$$ \begin{align*} N&=\text{Day of Year} \\ \delta&=23.44^\circ \sin(\frac{360^\circ}{365^\circ} (N-81)) \\ y_g&=a \cos(\phi)\tan(\delta) \\ \end{align*} $$ \(N \) = Day of year, usually the first of each month is marked.
\(\delta \) = Approximate declination of the Sun for a given day of the year.
\(a \) = Half the desired width of dial, output coordinates will be in the same units.
\(y_g\) = Y coordinate of gnomon on given day, X is always 0.


(any units, output is same units)
Correction for DST or longitude in hours. 0 for solar time.

Use the X,Y coordinates to lay the points out using an XY grid, or use the Angle/Length to use a protractor for layout.