This is a simple, free sundial calculator which uses SVG to produce an interactive image. The output of the calculator is valid for any combination of latitude and longitude. The dial plane can be oriented in any direction.
To use this utility, you will need to use a laptop or desktop computer. Smart devices (e.g. phones, tablets) don't work.
...more...
It will generate output that can be used to print an exact scale printout using Inkscape, a free utility that can be installed on virtually any computer, no matter what the operating system (NOTE: Before constructing any dial be sure to double-check the scale of any printout. Variation between devices and over time might(?) result in the current approach to scaling incorrect.). This eliminates the tedium of having to plot points or lines by hand and significantly aids construction. The template for the sundial, shown to the right, was generated by the export function. The hour lines are strips of copper embedded in white concrete. The gnomon is ¼-inch brass rod. The pedestal is a fabric-formed triple helix, made with gray concrete and iron-acid stain.
Stay away from INTERNET EXPLORER or the new EDGE browser on Windows 10. They will "hang" when attempting to generate the SVG export file.
An article discussing the theory behind the algorithms used as the basis for this utility is also available. (PDF)
For individuals relatively new to sundials, it is worth taking a few moments to understand the difference between apparent time and mean time. Given the large number of sites devoted to sundials and the terminology, I will spare the reader my own attempt at explanation or even offer possible links (some will become "dead" links over time). A little time searching online will yield a lot of information.
Latitude: | |
Longitude: | |
Inclination: | |
Declination: | |
Gnomon Type: |
|
Gnomon Length | |
Meridian | |
Calculate Dial |
Custom Declination
Change Plot Limits
- Click & Drag to move the dial around.
- Zoom using the mousewheel.
-
If no mousewheel, zoom in with Alt+Click or Alt+Shift+Click.
Zoom out with Cntl+Click (or in combo with Shift).
Reset the entire screen by Alt+Cntl+Click. - To examine an element on the dial graphic, simply "mouse over it". Most of the elements have an associated "tool tip" which gives some information about what is being displayed.
• Latitudes north of the equator are positive. South are negative.
• Longitudes west of the Greenwich meridian are positive (i.e. the Americas). East of Greenwich are negative (i.e. Europe, Asia). I know this is backwards :\ When I originally wrote the code, I was blissfully ignorant of convention, and simply coded for my location to be positive. My apologies in advance for anyone who finds this irritating.
• Gnomon length is just the length of whatever you're using to cast the shadow on the plane of the dial. Whether it is slanted in the case of a polar gnomon, or perpendicular to the dial plane, simply enter in the length. Units are arbitrary. This is occasionally difficult for some to grasp. If you are going to use inches, then enter the length in inches. Every coordinate on the dial graphic will then have the UNITS of INCHES. The same holds true for centimeters or anything you choose.
• Inclination represents an angle of rotation in a vertical plane. It is measured downward from the vertical. A horizontal dial has an inclination of 0°. A vertical dial has an inclination of 90°.
• Declination represents an angle of rotation in a horizontal plane. It is measured from due south. A dial plane facing east has a declination of negative 90°. A dial plane facing west has a declination of positive 90°.
• The meridian is simply the longitude of the time zone in which the dial will be located. Missouri, USA is six times zones west of Greenwich, so 6×15°/zone is 90°. By entering the time zone longitude, the dial that is calculated & displayed will represent apparent time for the time zone. In order to obtain mean time or "clock time", one will still have to apply the Equation of Time.
NOTE: If you want a sundial which displays local apparent time, simply enter the same value as the sundial's longitude.
This function allows one to observe the effect of altering a single dial setting (e.g. wall declination, latitude, length of gnomon, etc) without having to open up the setup dialog. The user can quickly increment or decrement the chosen setting by the amount specified and observe the effect on the dial display.
If you open the setup dialog in conjunction with this operation, you can keep track of the current input settings, which are automatically updated.
The variables do NOT have preset ranges. The code will attempt to produce a dial no matter what you input. There isn't a lot of error checking. If the page stops working and you think the inputs are reasonable, trying reloading the page (you'll have to re-enter the inputs). If that doesn't work, post a comment and I will see if there is a bug somewhere.
Hour Lines
In the past, some civilizations and cultures considered the start of the day, and hence the first
hour of the day, to coincide with sunrise (Babylonians), while others (the Romans, or Italians) ended
the day at sunset, which also meant that for counting purposes, the first hour of the new day
began at sunset.
Babylonian hour lines indicate the number of hours the sun has been above the horizon, or the number of hours that have elapsed since sunrise.
Italian hour lines indicate the number of hours of sunlight left in the day, or the number of hours until sunset.
EOT (Dec→Jun) & (Jun→Dec) : For people who would like a dial already corrected for the non-uniform motion of the sun, each plot represents ½ of the calendar year. The downside to this approach is the need to create two separate dials in order to cover the entire year. The upside, though, is that it's a neat way to permanently correct your dial(s) to correspond to clock time.
Show Noon Line
This option will display a line which represents the shadow location when the sun
transits the meridian, or is directly due south (or north). This is sometimes
called apparent solar noon The sun, as seen by the observer, is half way between sunrise and sunset.
Equation of Time
• For background on the equation of time, refer to http://chiggerjunction.blogspot.com/p/sundial-corrections.html
(there are also a LOT of references worth reading on the internets [sic]).
• The algorithm used to calculate the EoT displayed in this utility is not rigorous. For
purposes of dial construction, the accuracy should be fine. For individuals interested in seeing the difference between
this simple algorithm and a more rigorous calculation, a graphical comparison is available at
http://chiggerjunction.blogspot.com/p/analemma-and-equation-of-time.html?simpleEOT.
Add Custom Declination
This option allows the user to includes solar declinations which may happen to occur
on dates of special significance.
Change Plot Limits
This option is basically to make exported SVG files easier to work with in Inkscape.
- You can use this SVG file, in conjunction with Inkscape, to print an image of the sundial exactly to scale. This eliminates the tedium of having to hand-plot individual points. If you are unfamiliar with Inkscape, try this short tutorial to see how its done.
-
Saving the File to Disk
Because this application runs inside a browser, it is somewhat limited in terms of its ability to perform routine file operations on a user's computer.
Select all the text displayed in the export text window and paste it into an ASCII text editor (e.g. "Notepad"), then save it on your computer giving it whatever name you choose, with a file extension of SVG (NOTE: make sure there are no blank lines at the beginning of the file).
-
Adjustments for Paper Size & Units
This SVG document has been formatted for use with Inkscape for the purpose of printing an image of the sundial to scale. It assumes you will be printing on 8½ × 11" paper (i.e. standard "letter" paper size) and that the units used for the dial are inches (i.e. the numerical value for the length of the gnomon represents inches). To change these default setting, you can either edit the text yourself using the following instructions, or select the appropriate radio button to the right.
• If you use the radio buttons, first export the SVG, then select the preferred paper and units.- PAPER
- UNITS
- If you are using legal-size paper, change the height and viewbox parameters to read: height='1260' and viewbox='0 0 765 1260'.
- If you are using A4 paper size, change the width, height and viewbox parameters to read: width='744', height='1052' and viewbox='0 0 744 1052'.
- If you are using units of centimeters instead of inches, you will need to edit the parameter transform='matrix(96,0,0,-96,0,0)' to read: transform='matrix(37.795,0,0,-37.795,0,0)'.
In time I intend to handle the conversion to other paper sizes and units programmatically, but right now I'm in a hurry and am concentrating on just getting the routine in place and a series of instructions written for how to use it in conjunction with Inkscape .... March 2011, BH.