Joint Coordinate Angles

Using the segment anatomical coordinate systems, create an intermediate unit vector (I, yellow) by crossing the Z (blue) vector of the proximal segment onto the X (red) vector of the distal segment.  This creates a vector that is orthogonal to the Z axis of the proximal segment and to the X axis in the distal segment.

To obtain the joint angles,

  1. Calculate the Abduction/Adduction angle by subtracting the dot product of the Z vector of the proximal segment times the X vector of the distal segment from 90 degrees.  Abduction will be positive, Adduction will be negative.
            
  1. Calculate the Internal/External Rotation angle by subtracting the dot product of the Intermediate vector and the Z vector of the distal segment from 90 degrees.  Internal Rotation will be positive, External Rotation will be negative.
            
  1. Calculate the Flexion/Extension angle by rotating the Intermediate vector into the proximal segment's coordinate system, then find ATAN2(A,B), where A is the negated X component of the localized Intermediate vector, and B is the Y component of the localized Intermediate vector.  Remember that the format of tangent function is ATAN2(Y,X).  Flexion will be negative and Extension will be positive.
              where