HoroGraphic - a small program for displaying horoscopes
HoroGraphic.exe is a small windows program for visualizing horoscopes. It is not designed as a standalone program but as a visual component to be showed as a popup window in other applications, namely in AstroPatterns. The program is written in plain C and produced with gcc. Source code and binary form part of the AstroPatterns distribution. The current version of the executable has a size of 83 KB.
For the computation of the planetary positions and houses, HoroGraphic.exe makes use of the Swiss Ephemeris. Thus, the library swedll32.dll must be found in the search path PATH of the system. This is the only external dependency.
Communication with the calling program
As mentioned, HoroGraphic.exe is only a visual component to be used in other applications. For controlling the data to be displayed, HoroGraphic.exe uses the clipboard: If the message "Paste from clipboard" (Ctrl+V) is sent to the HoroGraphic.exe window, it evaluates the clipboard content for getting the data of the horoscopes to be displayed. Since the clipboard is a universal interface, this makes HoroGraphic.exe easily usable in arbitrary other programs.
This is an example clipboard content that can be parsed and evaluated by HoroGraphic.exe:
Here, <tab> is for a tabulator character, and <crlf> for a line break. The first and second line contain the Julian date number, the longitude and latitude in this sequence for the inner and outer horoscope, respectively. The following line contains options. In this case, the option g indicates to compute the positions geocentrically.
The following is a sample screenshot of the usual way how HoroGraphic displays planetary positions:
By default, it has an outer and an inner set of planets. It always shows the ten objects Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune and Pluto. This ist (currently) hard coded in the program. The displayed date and time format is Ephemeris Time (ET) which slightly differs from UTC (currently by about one minute of time.)
The houses of the inner horoscope determine the orientation of the whole graphic, i.e. the Ascendant of the inner horoscope is oriented horizontally. For the outer horoscope, no other house cusps than Ascendant and MC are drawn.
Controlling the graphic with keystrokes
HoroGraphic can be controlled by certain keystrokes. The following table shows the possible commands:
||Add one day to the date of the currently inner horoscope
||Subtract one day from the date of the currently inner horoscope
||Toggle inner/outer. Inner and outer horoscope will change their roles.
||Geocentric mode. This is the default.
||Heliocentric mode. Sun will disappear, as well as houses. Instead, the Earth will be displayed. See below for a screenshot.
||Show only the inner horoscope.
||Show both inner and outer horoscope.
||Quit. Leave the program (like Alt+F4). The window will be closed, and the program will be terminated.
With the keys h and g, you can switch between the helio- and geocentric positions. The appearance of the chart changes, of course, in heliocentric mode, as the screenshot below demonstrates.
Sometimes, it is irritating to have inner and outer horoscope, and one would prefer to see only one horoscope. This can be achieved with the key 1 which makes the outer horoscope disappear, as in the following screenshot. With the key 2, you can return to the standard view.
For the visualization of a horoscope, each planet requires a glyph - a small monochrome bitmap representing it in the chart. Since these bitmaps constitute the ressources part of the binary and I cannot provide a bitmap for each of the thousands of objects that potentially are astrologically relevant, the set of planets is fixed with a build. For my own needs, I decided the graphics window to only represent Sun, Moon and the eight planets Mercury until Pluto. This may change in a future release. If you are very unhappy with this restriction, you may think about rebuilding HoroGraphic yourself - the HoroGraphic directory is part of the CVS sources of this project.
Winterthur, June 16, 2010.