copyright (c) Adrian R. Ashford, 18 September 2005.
Parts of the computational engine
based on MARS.BAS
by Roger W. Sinnott.
JavaScript(s) used with permission by BBC Sky at Night magazine.
*/
myImage = new Array("graphics/0.jpg","graphics/5.jpg","graphics/10.jpg","graphics/15.jpg","graphics/20.jpg","graphics/25.jpg","graphics/30.jpg","graphics/35.jpg","graphics/40.jpg","graphics/45.jpg","graphics/50.jpg","graphics/55.jpg","graphics/60.jpg","graphics/65.jpg","graphics/70.jpg","graphics/75.jpg","graphics/80.jpg","graphics/85.jpg","graphics/90.jpg","graphics/95.jpg","graphics/100.jpg","graphics/105.jpg","graphics/110.jpg","graphics/115.jpg","graphics/120.jpg","graphics/125.jpg","graphics/130.jpg","graphics/135.jpg","graphics/140.jpg","graphics/145.jpg","graphics/150.jpg","graphics/155.jpg","graphics/160.jpg","graphics/165.jpg","graphics/170.jpg","graphics/175.jpg","graphics/180.jpg","graphics/185.jpg","graphics/190.jpg","graphics/195.jpg","graphics/200.jpg","graphics/205.jpg","graphics/210.jpg","graphics/215.jpg","graphics/220.jpg","graphics/225.jpg","graphics/230.jpg","graphics/235.jpg","graphics/240.jpg","graphics/245.jpg","graphics/250.jpg","graphics/255.jpg","graphics/260.jpg","graphics/265.jpg","graphics/270.jpg","graphics/275.jpg","graphics/280.jpg","graphics/285.jpg","graphics/290.jpg","graphics/295.jpg","graphics/300.jpg","graphics/305.jpg","graphics/310.jpg","graphics/315.jpg","graphics/320.jpg","graphics/325.jpg","graphics/330.jpg","graphics/335.jpg","graphics/340.jpg","graphics/345.jpg","graphics/350.jpg","graphics/355.jpg");
thisImage = 0;
images = myImage.length - 1;
function proper_ang(big)
{
with (Math)
{
var tmp = 0;
if (big > 0)
{
tmp = big / 360.0;
tmp = (tmp - floor(tmp)) * 360.0;
}
else
{
tmp = ceil(abs(big / 360.0));
tmp = big + tmp * 360.0;
}
}
return tmp;
}
function proper_ang_rad(big)
{
with (Math)
{
var tmp = 0;
if (big > 0)
{
tmp = big / 2 / PI;
tmp = (tmp - floor(tmp)) * 2 * PI;
}
else
{
tmp = ceil(abs(big / 2 / PI));
tmp = big + tmp * 2 * PI;
}
}
return tmp;
}
function round_10(num)
{
return Math.floor((num + 0.05) * 10) / 10;
}
function round_100(num)
{
return Math.floor((num + 0.005) * 100) / 100;
}
function round_1000(num)
{
return Math.floor((num + 0.0005) * 1000) / 1000;
}
function julian_date(day,month)
{
var yy = 2005;
var yyy, mmm, a, b;
with (Math) {
var yyy = yy;
var mmm = month;
if (month < 3)
{
yyy = yy - 1;
mmm = month + 12;
}
a = floor(yyy/100);
b = 2 - a + floor(a/4);
return floor(365.25*yyy) + floor(30.6001*(mmm+1)) + day + 1720994.5 + b;
}
}
function mars_maps()
{
with (Math)
{
var dt = 65;
var p2 = 2 * PI;
var RAD = 180 / PI;
var day = eval(document.mars.day.value);
var hours = eval(document.mars.hours.value);
var minutes = eval(document.mars.minutes.value);
var month = eval(document.mars.month.value);
if (month == "11" && day == "31")
{
alert("November doesn't have 31 days! Please select another date.");
}
var jd = julian_date(day,month);
var ut_hrs = hours;
var ut_mns = minutes;
var frac_day = ut_hrs / 24.0 + ut_mns / 1440.0;
var day_start = jd - 2451545.0 + dt / 86400;
var days = day_start + frac_day;
var d = days;
var t = d/36525 + 1;
var l0 = 0.779072 + 0.00273790931 * d;
var g0 = 0.993126 + 0.0027377785 * d;
var l4 = 0.987353 + 0.00145575328 * d;
var g4 = 0.053856 + 0.00145561327 * d;
var f4 = 0.849694 + 0.00145569465 * d;
var l5 = 0.089608 + 0.00023080893 * d;
var g5 = 0.056531 + 0.00023080893 * d;
var g6 = 0.882987 + 9.294371E-05 * d;
l0 = (l0 - floor(l0)) * p2;
g0 = (g0 - floor(g0)) * p2;
l4 = (l4 - floor(l4)) * p2;
g4 = (g4 - floor(g4)) * p2;
f4 = (f4 - floor(f4)) * p2;
l5 = (l5 - floor(l5)) * p2;
g5 = (g5 - floor(g5)) * p2;
g6 = (g6 - floor(g6)) * p2;
var l = 6910 * sin(g0) + 72 * sin(2*g0) - 17 * t * sin(g0) - 7 * cos(g0-g5);
var r = 1.00014 - 0.01675 * cos(g0) - 0.00014 * cos(2*g0);
l = l0 + l / 206264.8;
var m = 38451 * sin(g4) + 2238 * sin(2*g4) + 181 * sin(3*g4) - 52 * sin(2*f4);
m = m + 37 * t * sin(g4) - 22 * cos(g4-2*g5) - 19 * sin(g4-g5) + 17 * cos(g4-g5);
m = m + 17 * sin(4*g4) - 16 * cos(2*g4-2*g5) + 13 * cos(g0-2*g4);
m = m - 10 * sin(g4-2*f4) + 7 * cos(g0-g4) - 7 * cos(2*g0-3*g4);
var b = 6603 * sin(f4) + 622 * sin(g4-f4) + 615 * sin(g4+f4) + 64 * sin(2*g4+f4);
var ci = (r4 * r4 + rr * rr - r * r)/(2 * r4 * rr);
var i = RAD * atan(sqrt(1-ci*ci)/ci);
var m4 = -1.52 + 0.016 * i + 5 * log(rr*r4)/log(10);
var ad = 9.36 / rr;
var elongation = floor(acos(cos(bb) * cos(l - ll)) * RAD + 0.5);
var days_to_opp = 2453681.5 - jd;
var mars_millions = rr * 92.955800;
var mars_info = "The Red Planet is now " + round_1000(rr) + " astronomical units, or " + round_10(mars_millions) + " million miles (" + round_10(mars_millions * 1.609344) + " million km.) from Earth. Opposition ";