function normalizeAxes(x = 0, y = 0) {
  let xAxis = x;
  let yAxis = y;

  // Determine if the point is outside the bounds of the circle
  // and, if so, place it on the edge of the circle
  const hypotenuse = Math.sqrt((x * x) + (y * y));
  if (hypotenuse > 1) {
    const theta = Math.atan2(y, x);
    xAxis = Math.cos(theta);
    yAxis = Math.sin(theta);
  }

  // Scale and move the circle so values are in the interpolation range.  The circle's origin moves
  // from (0, 0) to (0.5, 0.5). The circle's radius scales from 1 to be 0.5.
  const result = {
    normalizedXAxis: (xAxis * 0.5) + 0.5,
    normalizedYAxis: (yAxis * 0.5) + 0.5
  };
  return result;
}
@description Converts an X, Y coordinate from the range -1 to 1 (as reported by the Gamepad
API) to the range 0 to 1 (for interpolation). Also caps the X, Y values to be bounded within
a circle. This ensures that thumbsticks are not animated outside the bounds of their physical
range of motion and touchpads do not report touch locations off their physical bounds.
@param {number} x The original x coordinate in the range -1 to 1
@param {number} y The original y coordinate in the range -1 to 1