angle function

double angle(
  1. PoseLandmark firstLandmark,
  2. PoseLandmark midLandmark,
  3. PoseLandmark lastLandmark
)

Implementation

double angle(PoseLandmark firstLandmark, PoseLandmark midLandmark,
    PoseLandmark lastLandmark) {
  double radians = atan2(
          lastLandmark.y - midLandmark.y, lastLandmark.x - midLandmark.x) -
      atan2(firstLandmark.y - midLandmark.y, firstLandmark.x - midLandmark.x);
  double degrees = radians * 180.0 / math.pi;
  degrees = degrees.abs(); // Angle should never be negative
  if (degrees > 180.0) {
    degrees =
        360.0 - degrees; // Always get the acute representation of the angle
  }
  return degrees;
}