GlobeCs
862285bb3234ee5122ff5f1e6e94d02fd8dc756173f2f265ee5a7742a0814a06
README
*** GlobeCs v1.0 - What is it?
It is a 3D vector graph of the globe. The globe is turnable, the display is
zoomable and scrollable. The program is small, relatively quick.
*** Installation and use, legal status
Put files in the following directories: \APP\GLOBECS.OPA, \OPD\GLOBECS.ODB,
with Psion-I (English version) install the OPA. It's all. I hope the menu is
self-explanatory enough.
GlobeCs is a Public Domain, if you use it, or its parts in your own programs,
please credit me. Use it as is, there are no registration and support for.
*** HW requirements
Psion3a (but I guess it runs on 3c and Siena too), needs approx. 30-40 kB
memory to run, plus the PIC size, which depends on globe radius (max. 51 kB).
*** Data representation and vectorization
The coastline of continents and islands and some big lakes is given like ODB
file in binary form. Each point of the coastline represented by two integers
(absolute longitude and latitude in degrees, West and South is negative), the
end of a polyline indicated by two zeros. The usual step between the break-
points is not greater then 7 degree (i.e. 3 bit, in this way it would be
possible to save components of a relative vector with their signs in 1 byte,
but the unpacking is a surplus time consuming procedure). Some attempt made to
keep continous line even in case of near islands. In this sense I am proud of
the Sumatra, Java and Lesser Sundas, the British-Irish Islands as well as
US-Canada Great Lakes but the Philippines turned out not very well. Presently
the file consists about 1500 points. By now is missing some islands in Arctic
Ocean, it means 300-400 additional points.
*** Computation and speed
The rotation of globe and calculation of visible/hidden points requires much
trigonometry beyond the spherical-Cartesian transformation. For speed-up the
code I used the following tricks:
- almost all repeated calculations are in 2 or 4 byte integer arithmetic,
- pre-tabulated SIN for range 1-89 degrees with step 1, normalized to 1024 as
integer, look-up of SIN and COS for any whole number degree angle in this
table,
- procedure CACHEing.
All of this together resulted about 10-12 times faster run.
I decided not to use gPOLY, and gUPDATE OFF because prior to draw a step is
necessary to make a great many calculations, and the speed increase was not
very significant. But it is very nice to see how 3a plots point-by-point!
The initial preparation of SIN table and dark background takes 7 sec. The time
of plot recently is approx. 44 sec. This last value practically does not depend
on the globe size, and the view point.
*** Features in use
The user can jump to any view point in the Earth. It is possible to move the
view point by optional 1,2,...,45 degree steps in N, E, S and W directions too.
Thanks to vector graphics, the zooming is very easy. The optional globe radius
is from 80 pixels (you can see the whole globe in the display) to 320 pixels
(wider, than the 3a display), varies with 40 pixels steps. The program
calculates and plots the map outside the visible display too. After finish the
plot the actual map is scrollable by arrow keys. The map can be saved as a PIC
file to the \PIC directory too. The filename is forming from the actual view
point coordinates.
*** Other programming remarks, reverse engineering
The 1024 SIN normalization factor comes from the following considerations:
- this value is enough big to get accurate x and y coordinates on display,
- if you multiply 3 such SIN or COS values, you are still in long integer
range, because (2^10)^3 < (2^8)^4.
I ENCOURAGE to make reverse tanslation. The majority of variables is GLOBAL,
and the global names you can get back by e.g. REVTRAN. All variable and
procedure names are transparent, or understandable by menu.
*** Future plans
- to complete the missing islands' data,
- to show the daylight and dark areas on the globe depending on actual date and
time in form of ellipse or sickle at the grey layer of bitmap; this could be
processed and updated separately from the black layer,
- to stole city coordinates from ROM/World files, and put cities on the globe,
- further probable speed increase by store instead of angles the normalized to
1024 SIN and COS values of longitude and latitude for each point,
- long-range fly display (input departure and arrival points and times, get
great-circle path, with moving in time sign of the aircraft - pocket version
of the big on-board screens), etc.
*** Similar programs
D. Rushall's Solun 3 in registred version is able to show the 3D globe map. I
have seen only its display hardcopy, but as I understood, that globe is fixed
size. Am I wrong? J. McAleey's W2 program does for 2D map case the daylight/
dark screen.
*** Author
I am engineer-physicist, my hobby is the handheld and personal computing.
I live in Szekszard (18 42E, 46 20N :-), Hungary.
A Psion3a belongs to me only since last spring (the earlier pocket pet was the
Atari Portfolio). Since I made some family photo galeries, animations with
asinchrone sound, Hungarian phonemes and rules to A. Clapham PsionSpech
program, etc.
I welcome ideas and suggestions about ROM/World data handling as well as
other comments. Enjoy our globe in 3D!
Andras Cserhati
cserhati@tea.npp.hu
Unknown
GlobeCs
862285bb3234ee5122ff5f1e6e94d02fd8dc756173f2f265ee5a7742a0814a06
|
|
GlobeCs
PSION_cdtextfiles.com.zip
→
PSION/1997/891.ZIP
→
GLOBECS.OPA
862285bb3234ee5122ff5f1e6e94d02fd8dc756173f2f265ee5a7742a0814a06
|
|
GlobeCs
862285bb3234ee5122ff5f1e6e94d02fd8dc756173f2f265ee5a7742a0814a06
|