我正在使用Coremotion旋转对象。我将iPhone直立放置并遵循以下约定:
偏航轴:自上而下,例如自拍相机到主页按钮
俯仰轴:从左到右
横轴:设备的前到后
在俯仰的初始位置变化也会导致对象也改变其俯仰,但是如果我绕着偏航轴旋转90度,则俯仰和横滚轴会切换。现在,iPhone的音高变化会导致动画对象的滚动变化。
这是由于iOS使用全局静态坐标系造成的。在开发人员页面上将其描述为参考框架: https://developer.apple.com/documentation/coremotion/getting_processed_device-motion_data/understanding_reference_frames_and_device_attitude 我遇到的问题是,如何才能使参考系基本上随设备一起旋转,从而使手机的侧倾移动导致对象的侧倾移动与电话的偏航无关? 有趣的是,我使用了Coremotion的rotationMatrix。但是,如果我查看coremotion的偏航俯仰和侧倾值,则一切都是正确的,例如围绕偏航轴旋转设备时,俯仰值保持不变。但是,如果我根据偏航,俯仰和横滚值创建一个新的旋转矩阵,则所有操作都与直接来自coremotion的旋转矩阵相同。
那我该如何解决这个问题?