On Beta
global gbeta1, gbetaV, epsilon, t, P, r, A, alpha
set gbeta1 = 2*pi()*t/P
set gbetaV = gbeta1
repeat while abs(gbetaV - (gbeta1 + epsilon*sin(gbetaV)))>=.0000001
set gbetaV = gbeta1 + epsilon*sin(gbetaV)
end repeat
put (A*(1 - epsilon*cos(gbetaV))) into r
put 2*atan(sqrt((1+epsilon)/(1-epsilon))*tan(gbetaV/2)) into alpha
end
on coord
global alpha, r, dY, dX
if alpha <= pi()/2 and alpha > 0 then
put - sin(alpha)*r into dY
put sqrt((r*r)-(dY*dY)) into dX
else
if alpha > pi()/2 and alpha <= pi() then
put - sin(pi() - alpha)*r into dY
put -sqrt((r*r)-(dY*dY)) into dX
else
if - alpha > pi()/2 and - alpha <= pi() then
put sin(pi() + alpha)*r into dY
put - sqrt((r*r)-(dY*dY)) into dX
else
if - alpha <= pi()/2 and - alpha > 0 then
put sin(- alpha)*r into dY
put sqrt((r*r)-(dY*dY)) into dX
end if
end if
end if
end if
end
On mercury
puppetsprite 3, true
trails 3
global t, P, A, alpha, epsilon, r, dX, dy, me
set me=1
set P = power(.3871,1.5)*365.25
set A = 38.71
set epsilon = .2056
beta
coord
puppetsprite 3, true
trails 3
set the locH of sprite 3 to (320 + dX)
set the locV of sprite 3 to (240 + dY)
end