calculating relative inclination

jedidia

shoemaker without legs
Addon Developer
Joined
Mar 19, 2008
Messages
9,579
Reaction score
396
Points
173
Location
between the planets
Pretty straight-forward question to which my google-fu somehow won't spit out an answer: If I have the inclination of two objects, as well as the longitude of the ascending node, how do I calculate their relative inclination? Do I have to go through all the rotation shenanigans or is there a shortcut for this?
 

GLS

Addon Developer
Addon Developer
Joined
Mar 22, 2008
Messages
4,214
Reaction score
360
Points
108
Don't think so... :unsure:
You could probably do it by calculating the normal of each plane and then the angle between those 2 vectors.
 

n72.75

Addon Developer
Addon Developer
Tutorial Publisher
Donator
Joined
Mar 21, 2008
Messages
1,867
Reaction score
234
Points
63
Location
Biddeford ME
Website
www.adabsurdumpublishing.com
Relative inclination is the angle between the two normals of the plains in which each orbit coïncides, as @GLS said.



In the image above, you can see that the planet-relative position vector, and the velocity vector both lie in the orbital plane, so the norm of the right handed cross product between r and v would be your normal vector. Get these for both vessels and use the dot product to find the angle between them.

Doing it with just two inclinations and two LaNs, is more of a geometry problem than my brain can do this late, but consider the case where the inclinations are equal and you sweep LaN through 360 degrees while leaving inclination the same. Rinc should go from 0 up to 180°+Inc and then back to 0.
 
Last edited:

jedidia

shoemaker without legs
Addon Developer
Joined
Mar 19, 2008
Messages
9,579
Reaction score
396
Points
173
Location
between the planets
Rinc should go from 0 up to 180°+Inc and then back to 0.
Wait, why would it go 180 + Inc? Somehow that looks different in my head... If I have two inclinations at 10 degrees, and I rotate one by 180, wouldn't the relative inclination between them (i.e. the angle by which you'd have to change your plane to match) be 20 degrees?
 

GLS

Addon Developer
Addon Developer
Joined
Mar 22, 2008
Messages
4,214
Reaction score
360
Points
108
Wait, why would it go 180 + Inc? Somehow that looks different in my head... If I have two inclinations at 10 degrees, and I rotate one by 180, wouldn't the relative inclination between them (i.e. the angle by which you'd have to change your plane to match) be 20 degrees?
Yes.
 

asbjos

tuanibrO
Addon Developer
Joined
Jun 22, 2011
Messages
639
Reaction score
94
Points
43
Location
This place called "home".
The normal vector of an orbit is given by
\[ \vec{n} = \left[ -\sin i \cos \Omega, -\sin i \sin \Omega, \cos i \right], \]
where \(i\) is the inclination and \(\Omega\) is the longitude of ascending node.

If you know the equation for angle between two vectors, and have two ships 1 and 2 with elements \(i_1\), \(\Omega_1\) and \(i_2\), \(\Omega_2\), the relative inclination \(\theta\) between the two orbits is given by
\[\theta = \arccos \left( \sin i_1 \sin i_2 \cos \left[\Omega_1 - \Omega_2\right] + \cos i_1 \cos i_2 \right). \].

Sources: none, but I tested it with the readout in Align planes MFD. :)
 

n72.75

Addon Developer
Addon Developer
Tutorial Publisher
Donator
Joined
Mar 21, 2008
Messages
1,867
Reaction score
234
Points
63
Location
Biddeford ME
Website
www.adabsurdumpublishing.com
Wait, why would it go 180 + Inc? Somehow that looks different in my head... If I have two inclinations at 10 degrees, and I rotate one by 180, wouldn't the relative inclination between them (i.e. the angle by which you'd have to change your plane to match) be 20 degrees?
Yep. Whoops. I knew I should've grabbed the whiteboard..
 

MontBlanc2012

Member
Joined
Aug 13, 2017
Messages
125
Reaction score
11
Points
18
If you know the equation for angle between two vectors, and have two ships 1 and 2 with elements \(i_1\), \(\Omega_1\) and \(i_2\), \(\Omega_2\), the relative inclination \(\theta\) between the two orbits is given by
\[\theta = \arccos \left( \sin i_1 \sin i_2 \cos \left[\Omega_1 - \Omega_2\right] + \cos i_1 \cos i_2 \right). \].

Sources: none, but I tested it with the readout in Align planes MFD. :)

Yes, this is the correct expression for the relative inclination.
 

jedidia

shoemaker without legs
Addon Developer
Joined
Mar 19, 2008
Messages
9,579
Reaction score
396
Points
173
Location
between the planets
So after a while I decided to give that one little project of mine another go, and I came back here to look up the equation, only to realise that I still can't read math...
Explicitly, what does this notation mean?
[Ω1−Ω2]
I know what Omega1 and 2 are, but this is not a difference, this is some kind of product, right?
 

N_Molson

Addon Developer
Addon Developer
Donator
Joined
Mar 5, 2010
Messages
7,203
Reaction score
368
Points
158
Location
Toulouse
I know what Omega1 and 2 are, but this is not a difference, this is some kind of product, right?

I'm certainly no math expert but it looks like an honest difference to me. I think the most difficult thing, as often, is to get all the operations in the right order. You already have a parenthesis (...) so the brackets [...] indicate a "second level".
 

jedidia

shoemaker without legs
Addon Developer
Joined
Mar 19, 2008
Messages
9,579
Reaction score
396
Points
173
Location
between the planets
Ahhhh... silly me. I only ever look at math in code, so I completely forgot about that convention... 🤦
 

asbjos

tuanibrO
Addon Developer
Joined
Jun 22, 2011
Messages
639
Reaction score
94
Points
43
Location
This place called "home".
I'm certainly no math expert but it looks like an honest difference to me. I think the most difficult thing, as often, is to get all the operations in the right order. You already have a parenthesis (...) so the brackets [...] indicate a "second level".

Yes, that is the notation I use for writing nested parentheses.
I've noticed that it's unusual. Most people start with parentheses on the "inside", and then alternate outward, e.g.
\[ [(2+2)+3]*4 = 28 \]
While I prefer starting with parentheses outside, and alternate inward, e.g.
\[ ([2+2]+3)*4 = 28 \]

Programming languages simply use parentheses everywhere, so in code:
C++:
double relativeInclination = acos(sin(inc1) * sin(inc2) * cos(LAN1 - LAN2) + cos(inc1) * cos(inc2));
 
Last edited:
Top