У кватернионов вместо этого есть проблема «двойного покрытия» (к счастью, не такая страшная). В любом случае, вам нужно сравнить «расстояние» между двумя ориентациями, которое не особенно тривиально с любым из представлений.

у добиться следующего:

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

 [self.motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue]
                                       withHandler: ^(CMDeviceMotion *motion, NSError *error)
     {
         CMAttitude *attitude = motion.attitude;
         NSLog(@"pitch: %f, roll: %f, yaw: %f]", attitude.pitch, attitude.roll, attitude.yaw);
     }];

Я думаю, что я мог бы сохранить эти значения в массиве, если пользователь находится в режиме записи. И когда пользователь пытается воспроизвести это движение, я могу сравнить реплицированный массив движений с записанным.Дело в том, как я могу разумно сравнить два массива? Они никогда не будут иметь одинаковые значения, но они могут быть примерно одинаковыми.

Я здесь на правильном пути?

ОБНОВИТЬ: Я думаю, что, возможно, ответ Алиса об использовании DTW может быть правильным для меня здесь. Но я не такой умный (очевидно), поэтому, если бы кто-нибудь мог помочь мне с первыми шагами по сравнению с массивами, я был бы счастливым человеком!

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос