Another unusual celestial phenomenon is the apparent motion of the sun as seen from the surface of the planet Mercury. Mercury is the closest planet to the sun, and the relationship between its period of rotation (length of "day") and its period of revolution around the sun (length of "year") is very strange -- in fact, its day is almost as long as its year. It is this peculiar relationship, together with the fact that Mercury's orbit is quite elliptical, that causes the phenomenon we will study.
For the purposes of illustration, we will assume that the length of Mercury's day is 1/2 the length of its year. (This is fairly close to the correct ratio -- you get to make it more precise later.)
Mercury's orbit is an ellipse with the sun at the CENTER. (We will study the effect of varying the eccentricity of the ellipse -- you will also get to make this more realistic in two ways: first, by using the true eccentricity of the orbit, and second by putting the sun at a FOCUS of the elliptical orbit, in keeping with Kepler's first law of planetary motion.)
We start as we did with the earth and the moon. Everything is pretty easy from the point of view of the sun. The position of the (center of the) sun is:
sposx := 0; sposy := 0;
Mercury orbits once every 2p time units (say). We'll let a and b be the lengths of the semi-axes of the ellipse, so the position of the center of Mercury is given by:
mposx := a*cos(t); mposy := b*sin(t);
Now we put an object on the surface of Mercury that rotates along with the planet -- just as we did for the object on the moon in the preceding example. We'll take the radius of Mercury to be 1/2, and since the rotation period of Mercury is Pi, we get the position of the object to be:
oposx := mposx + 0.5 * cos(2*t); oposy := mposy + 0.5 * sin(2*t);
Now we can define, for the purposes of animation,
sun := [sposx+cos(s), sposy+sin(s), s=0..2*Pi]; mercury := [mposx + 0.5*cos(s), mposy +0.5*sin(s), s=0..2*Pi]; objectline := [(1-s)*mposx + s*oposx,(1- s)*mposy + s*oposy, s=0..2];
and we can
animate({sun, mercury, objectline},t=0..2*Pi);
spos2x := sposx - mposx; spos2y := sposy - mposy; mpos2x := mposx - mposx; (of course, this is zero) mpos2y := mposy - mposy; opos2x := oposx - mposx; opos2y := oposy - mposy;
and then
sun2 := [spos2x+cos(s), spos2y+sin(s), s=0..2*Pi]; mercury2 := [mpos2x + 0.5*cos(s), mpos2y +0.5*sin(s), s=0..2*Pi]; objectline2 := [(1-s)*mpos2x + s*opos2x, (1-s)*mpos2y + s*opos2y, s=0..2];
so we can animate:
animate({sun2, mercury2, objectline2}, t=0..2*Pi);
This (the Maple worksheet so far) is almost what we want. The last thing we need to do is compensate for the rotation of Mercury. We do this the same way as we did for the rotation of the moon in the last example. The only tricky thing about this is the fact that the rotation is expressed in terms of trig functions of 2*t -- so our compensation must be expressed in the same way:
spos3x := cos(2*t)*spos2x + sin(2*t)*spos2y; spos3y := -sin(2*t)*spos2x + cos(2*t)*spos2y; mpos3x := cos(2*t)*mpos2x + sin(2*t)*mpos2y; mpos3y := -sin(2*t)*mpos2x + cos(2*t)*mpos2y; opos3x := cos(2*t)*opos2x + sin(2*t)*opos2y; opos3y := -sin(2*t)*opos2x + cos(2*t)*opos2y;
and then
sun3 := [spos3x+cos(s), spos3y+sin(s), s=0..2*Pi]; mercury3 := [mpos3x + 0.5*cos(s), mpos3y +0.5*sin(s), s=0..2*Pi]; objectline3 := [(1-s)*mpos3x + s*opos3x, (1-s)*mpos3y + s*opos3y, s=0..2];
Then we animate (the check of course is that neither Mercury nor the object line should move):
animate({sun3, mercury3, objectline3}, t=0..2*Pi);
The motion of the sun in this animation seems somewhat curious. We can see the sun's path by plotting the path of the center of the sun (spos3x, spos3y):
plot([spos3x,spos3y,t=0..2*Pi]);