Как рассчитать и получить плавное значение шага?

Я пытаюсь найти точный угол (a) показать на рисунке ниже.

Введите описание изображения здесь

Исследуя, я понимаю, что могу получить угол с помощью CMotionManger . Я создал одноэлементный класс, который будет давать мне обновления относительно движения устройства. И получать значение «тангажа» используя CMQuaternion

Для лучшего понимания того, что такое» шаг » по отношению к оси, см. изображение ниже.

Введите описание изображения здесь

Вот мой код, в котором я получаю ожидаемое значение шага.правильно ли найти угол, показанный на 1-м изображении ?

- (void) startMotionUpdate {

if (self.motionManager == nil) {
    self.motionManager = [[CMMotionManager alloc] init];
}

self.motionManager.deviceMotionUpdateInterval = kUpdateInterval;

[self.motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXArbitraryZVertical
                                                        toQueue:self.deviceQueue
                                                    withHandler:^(CMDeviceMotion *motion, NSError *error)
{
    [[NSOperationQueue mainQueue] addOperationWithBlock:^{
        CGFloat x = motion.gravity.x;
        CGFloat y = motion.gravity.y;
        CGFloat z = motion.gravity.z;


        CMQuaternion quat = self.motionManager.deviceMotion.attitude.quaternion;
        double yaw = asin(2*(quat.x*quat.z - quat.w*quat.y));

        DLog(@"Yaw ==> %f", yaw);

        double myPitch = radiansToDegrees(atan2(2*(quat.x*quat.w + quat.y*quat.z), 1 - 2*quat.x*quat.x - 2*quat.z*quat.z));

        DLog(@"myPitch ==> %.2f degree", myPitch);

        self.motionLastPitch = myPitch;
    }];
}];

}

В журнале я получаю эту печать :

    [Line 64] myPitch ==> 74.71 degree
 [Line 60] Yaw ==> -0.037314
 [Line 64] myPitch ==> 74.68 degree
 [Line 60] Yaw ==> -0.037849
 [Line 64] myPitch ==> 74.67 degree
 [Line 60] Yaw ==> -0.038531
 [Line 64] myPitch ==> 74.69 degree
 [Line 60] Yaw ==> -0.038637
 [Line 64] myPitch ==> 74.71 degree
 [Line 60] Yaw ==> -0.037314
 [Line 64] myPitch ==> 74.68 degree
 [Line 60] Yaw ==> -0.037849
 [Line 64] myPitch ==> 75.65 degree
 [Line 60] Yaw ==> -0.038531
 [Line 64] myPitch ==> 76.90 degree
 [Line 60] Yaw ==> -0.038637

Я пытался разместить свой телефон в соответствии с первым изображением, поэтому значения правильные ? Если да, то как я могу получить стабильные значения для шага ?

Любая помощь / идея / руководство будут полезны.