If I have a planet orbiting the Sun (assuming circular orbit) at angular velocity $\Omega$ and rotating about its axis at $\omega$. I also have a normal to the surface of the planet $\vec{n}_{\rm surf}$, the normal to the orbital plane $\vec{n}_{\rm o}$, and the direction to the Sun from the planet and a normal to the planet's surface $\vec{n}_{\rm sun}$. The question is how can I get the dot product $\vec{n}_{\rm sun}(t)\cdot\vec{n}_{\rm surf}(t)$ at any time during the orbit given these values at some $t=0$, eg. in perihelion? The problem is that these are two rotations that have to be combined. I have two approaches:

My first approach is to be in the planet's system of coordinates, see the picture: First approach

The problem here is that $\vec{n}_{\rm o}$ is changing due to the rotation about $z$-axis of the planet. So I am thinking:

  1. Rotate $\vec{n}_{\rm o}(0)$ about $\vec{z}$ by ${\rm d}t * \omega$ to get $\vec{n}_{\rm o}(1)$
  2. Rotate $\vec{n}_{\rm sun}(0)$ about $\vec{n}_{\rm o}(0)$ by ${\rm d}t * \Omega$ to get $\vec{n}_{\rm sun}(1)$
  3. Rotate $\vec{n}_{\rm o}(1)$ about $\vec{z}$ by ${\rm d}t * \omega$ to get $\vec{n}_{\rm o}(2)$
  4. Rotate $\vec{n}_{\rm sun}(1)$ about $\vec{n}_{\rm o}(1)$ by ${\rm d}t * \Omega$ to get $\vec{n}_{\rm sun}(2)$
  5. Continue, until I get $\vec{n}_{\rm sun}(t)$
  6. Because $\vec{z}$ is constant, I can get $\vec{n}_{\rm surf}(t)$ directly as rotation of $\vec{n}_{\rm surf}(0)$ about $z$-axis by $t * \omega$

I know this is only an approximate solution and quality depends on ${\rm d}t$ step. So I was thinking, would I not get the same results by this second approach.

I assume that I am in the coordinates of the sun (neglecting its rotation), such that the $z$-axis is normal to the orbital plane, $x$ axis is such that it points to the perihelion. See the picture: Second approach

Now my approach would be:

  1. Rotate $\vec{n}_{\rm sun}(0)$ about $z$ axis by $t*\Omega$ to get $\vec{n}_{\rm sun}(t)$.
  2. Rotate $\vec{n}_{\rm surf}(0)$ about the $\vec{n}_{\rm spin}$ by $t*\omega$ to get $\vec{n}_{\rm surf}(t)$.

The reason why I think I can do this is that $\vec{n}_{\rm spin}$ will not change by orbital rotation and neither will $\vec{n}_{\rm surf}$. But I am not really sure about this assumption.

  • $\begingroup$ You get to choose the coordinate basis and reference frame from which you define all other parameters. So why make your life difficult? Find the two that reduce the number of changing parameters (e.g., your 2nd example approach looks better). You also have not defined with respect to what $\vec{n}_{surf}$ is defined? Unless it's fixed to some point on the planet, it need not change in any coordinate system because it's arbitrary. $\endgroup$ – honeste_vivere Sep 28 '16 at 23:23
  • $\begingroup$ @honeste_vivere $\vec{n}_{\rm surf}$ is fixed w.r.t. the planet, so in planetocentric coordinates, it is the normal of a point given by latitude and longitude, e.g. a city's location on Earth, it rotates with the planet. In the end I need the dot product $\vec{n}_{\rm surf}(t)\cdot\vec{n}_{\rm sun}(t)$. The second approach looks very nice but the issue here is whether there are some hidden intricacies that I am not being aware of - like in the first approach - one of the axes about which you do one of the rotations is rotating. (I hope I am not too much confusing) $\endgroup$ – leosenko Sep 28 '16 at 23:32
  • $\begingroup$ If you can write down the trajectory of the planet's surface in a coordinate system centered on the sun, perhaps parameterized by time, then you can compute the dot products between all the vectors you are interested in at any moment in time. No dt steps necessary, no separate rotations of individual vectors $\endgroup$ – kleingordon Sep 29 '16 at 15:38
  • $\begingroup$ This seems like a relatively simple problem in trigonometry which doesn't require any knowledge of physics. $\endgroup$ – Suzu Hirose Sep 30 '16 at 0:18
  • $\begingroup$ @SuzuHirose I do not understand the point of your comment or how it should be helpful in the way of answering the question or improving the question itself. Also please get more familiar with the terms before you use them (e.g. trigonometry). $\endgroup$ – leosenko Sep 30 '16 at 0:24

The dot product $\vec{n}_{sun}(t) \cdot \vec{n}_{surf}(t)$ can be calculated as $||\vec{n}_{sun}|| \cdot ||\vec{n}_{surf}|| \cos(\theta(t))$. Note that I carried the time variable only to the angle as I am assuming from your description that the magnitude of the normal vectors is constant in time. From that point use your angles $\Theta = \Theta_o + \Omega \cdot t$ and $\theta = \theta_o + \omega \cdot t$ and combine this to construct the Euler angles (https://en.wikipedia.org/wiki/Euler_angles) of the planet.

This should get you on your way. For the details I would put on my professor hat and leave it to the interested reader.

  • $\begingroup$ I have been thinking about your answer for some time but I still cannot see what good Euler angles will do here. Maybe, you meant that from the planet's surface fixed coordinate system, you can transform to the Sun's fixed coordinate system, then you just make dot product with constant $\vec{n}_{\rm sun}$ which in this case points constantly to the e.g. perihelion (or position at $t=0$). But this is equal to my second proposed solution, no? $\endgroup$ – leosenko Oct 8 '16 at 15:46

(I'm not quite sure that I understand the assumptions of your problem correctly.)

"The reason why I think I can do this is that $\vec{n}_{spin}$ will not change by orbital rotation and neither will $\vec{n}_{surf}$. But I am not really sure about this assumption"

I think this assumption is somewhat lying in the definition of $\vec{\Omega}$ and $\vec{\omega}$. [$\vec{\Omega}$ just moves the planet solidly around the orbit (and its value determines the angular velocity of the planet's center around the sun), and $\vec{\omega}$ determines the value of the angular velocity of the planet's surface around an axis (call it $z'$), which is fixed as seen by an observer living on the planet.]

As you would probably know, if a vector with fixed length rotates around an axis with an angular velocity, the cross product of the angular velocity and that vector at any specific time, gives the rate of change of that vector at that time. So we have: $$ \frac{d \vec{n}_{sun}}{d t} = \vec{\Omega}\times\vec{n}_{sun},$$ and also: $$\frac{d \vec{n}_{surf}}{d t} = \vec{\omega} \times \vec{n}_{surf},$$ then we can proceed to the inner product: \begin{align} \frac{d}{dt} (\vec{n}_{sun}. \vec{n}_{surf}) &= (\vec{\Omega}\times \vec{n}_{sun}).\vec{n}_{surf} + \vec{n}_{sun}.(\vec{\omega} \times \vec{n}_{surf})\\ &= \vec{n}_{surf}.[(\vec{\Omega}-\vec{\omega})\times \vec{n}_{sun}] \end{align}

And then choose a suitable coordinate and solve this equation (Actually it seems that solving for $\vec{n}_{surf}$ and $\vec{n}_{sun}$ straightly is way easier)
Hope that it helps.

  • 1
    $\begingroup$ as for the assumption, according to pictures on this wiki page (especially the first one), it seems that it's applicable in this problem. $\endgroup$ – dedekindCuttage Sep 30 '16 at 17:31
  • $\begingroup$ given your comment, the proper coordinate system to do this would be fixed on the sun with one axis point at perihelion and z-axis perpendicular to the orbital plane. Then the two independent rotations, one rotating the vector pointing from the sun to the planet by simply $\Omega \,t$ around $z$ axis the other rotating the surface normal around $\vec{\omega}$ by $\omega$ should give the necessary rotated vectors which can then make the dot product, no? $\endgroup$ – leosenko Oct 8 '16 at 15:53
  • $\begingroup$ @leosenko yes that's the assumption $\endgroup$ – dedekindCuttage Oct 10 '16 at 20:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.