Tag: 陀螺仪

iOS – 陀螺仪样品

我正在寻找编写陀螺仪的代码,以“拉”的方式。 我试图使用startGyroUpdatesToQueue的示例代码:withHandler:[“推”的方法]我希望使用startGyroUpdates而不是使用startGyroUpdatesToQueue:withHandler在屏幕上连续显示陀螺仪更新:这是可能的吗?如果是,有没有我可以参考的样本。 提前致谢

iOS设备的屏幕磁极方向是根据最大倾angular?

好吧,我不认为这个问题已经被问及,或者我的答案更快,或者一旦有了答案,我就会添加答案,因为我必须接近答案。 让我解释: 考虑iOS设备的俯仰和滚动(忘记偏航),我们有这样的angular度 * r+ * ———— * | | * p- ° |p+ * | | * ———— * r- 所以基于身体的参考框架。 我们知道,当俯仰或滚转为0时,另一个是设备的最大倾angular。 但是当这个装置有倾斜的时候,我们需要去四元数,下面的答案会使我们屏幕正常。 https://stackoverflow.com/a/10836923/2332101 具有垂直参考vector的法向量将给我们最大的倾斜度。 因此,为了得到在CLHeading中提供的航向方向投影在水平面上的法向vector,(称为x轴,因为它是iOS主体框架坐标)和CLHeading的x之间的angular度应该给我们正确的磁场标题(忘记真正的标题)。 在这个例子中: * * ———— * | | * ° |-> (magnetic heading) * | | * —–|—— * v (max inclination example where p = 0) 所以在上面的例子中,我们知道它是CLHeading.magneticHeading + […]

SWIFT:错误“线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)”是什么意思?

我得到这个错误,我该如何解决这个错误? 当我运行应用程序崩溃。 它给出了这个错误,任何人都可以帮忙? 提前致谢。 错误在于: let initialAttitude = manager.deviceMotion!.attitude // get magnitude of vector via Pythagorean theorem func magnitudeFromAttitude(attitude: CMAttitude) -> Double { return sqrt(pow(attitude.roll, 2) + pow(attitude.yaw, 2) + pow(attitude.pitch, 2)) } // initial configuration let initialAttitude = manager.deviceMotion!.attitude //THIS IS THE LINE OF CODE WITH THE ERROR var showingPrompt = false // trigger […]

更新来自陀螺仪的旋转数据相对于预定义的方向?

通常,来自陀螺仪y轴的旋转数据相对于手机的垂直方向进行更新。 但是,如果这个方向稍微改变,如图所示,是否有任何方法,我可以把y旋转分量垂直轴(手机的垂直方向位置),(这是可能的线性组件通过使用余弦angular正弦angular)但是旋转呢? 无论如何,我可以做到这一点?

在一个维度上确定设备方向及其结果angular度?

我有以下设置: 一个iPhone躺在桌子上的天花板上(alpha = 0度)。 当iPhone向上移动,如上图所示,αangular增加。 如何计算alphaangular度的值,而不需要考虑任何可能改变的轴。 我只对这一个轴感兴趣。 从桌子上抬起时,我如何得到正确的alphaangular度? 如何在alpha值发生变化时得到通知?

态度变化 – angular度和轴问题 – 四元math

我有一个应用程序loggingangular度,当用户在一个对象周围走动时,指向设备(最好)在对象的中心。 angular度根据用户的指令重置 – 参考姿态得到重置。 使用欧拉angular产生的Gimbal锁,所以我目前正在使用四元数和计算angular度这样: double angleFromLastPosition = acos(fromLastPositionAttitude.quaternion.w) * 2.0f; 这发出了良好的精度,它完美的工作,如果设备的俯仰和偏航不会改变。 换句话说,当angular度显示360度时,我最终会在圆圈的起始位置。 问题1:如果设备的偏航和俯仰发生轻微变化(用户不直接指向对象的中心),angleFromLastPosition也是如此。 我理解这一部分,因为我的angular度公式只是显示了3D空间中两个设备态度之间的angular度。 场景: 我标记旋转姿态的开始,并开始围绕对象在一个圆圈中指向中心 我停在45度,并通过指向更高或更低来改变设备的音高。 angular度相应地改变。 我想看到的是:即使俯仰或偏航改变,angular度仍然保持在45度。 问题1是,我怎样才能使用四元数来计算设备的滚动量,而忽略其他两个坐标轴的变化(至less在一定的合理度数内)。 问题2:如果我旋转一下,然后完全冻结设备(在三脚架上,所以根本没有晃动),angleFromLastPosition以大约10-20秒的速度漂移1度,而且看起来不是线性的。 换句话说,它起初漂移很快,然后大大减缓。 有时我完全没有漂移 – 如果设备静止,angular度是坚如磐石的。 这让我迷失在了解正在发生的事情上。 问题2,这里发生了什么,我该如何照顾漂stream? 我经历了不less篇文章和教程,现在四元math已经超越了我,希望有人能够帮助提示,链接或几行代码。

“推”匹配UIInterpolatingMotionEffect? (即访问UIInterpolatingMotionEffect上的“物理”)

使用UIInterpolatingMotionEffect,扭转iPhone,你可以有一个图像移动。 现在想象一下,使用UICollisionBehavior和UIDynamicItemBehavior,你会在屏幕上“反弹”一个红色块。 当用户扭曲iPhone:我想要的箱子“开始移动”与类似的物理感觉使用UIInterpolatingMotionEffect。 http://tinypic.com/player.php?v=b67mlc%3E&s=8#.VBVEq0uZNFx 另外:UX解释:弹性效果(例如:iPhone上的SMS)与iOS中的视差图像效果具有相同的“感觉”。 (通过“感觉”,我的意思是同样的速度,加速度。)这将是第三个效果:像“视差”,它会“轻微移动”,但会“继续移动”,反弹一点。 (你可以说,有点结合了弹性列表效果和视差效果的感觉。) 现在:使用CMAccelerometerData来描述我的描述是相对容易的,并且使用UIPushBehaviorModeInstantaneous来应用推送。 但是这是很多杂乱的代码。 相反,UIInterpolatingMotionEffect是可笑的容易使用。 本质上,我怎么能从UIInterpolatingMotionEffect(我将作为推)使用这些值。 干杯! 类似的想法… 只需显示UIInterpolatingMotionEffect的值? 它简单地问:如何才能轻松地从UIInterpolatingMotionEffect中“获取”值? 即,看起来不可思议的人不得不仔细分类CALayer等等。

iOS陀螺仪API

我正在学习使用iOS中的陀螺仪传感器编写应用程序。 是否有加速度计类似于UIAcceleration / UIAccelerometer / UIAccelerometerDelegate的类陀螺仪?

在iPhone上的陀螺仪

我需要使用iPhone上的陀螺仪一些帮助。 在特定的情况下,我无法理解CMAttitude关于俯仰,滚转和偏航的读数。 这是我的代码 – (void)handleDeviceMotion:(CMDeviceMotion*)motion { NSLog(@"Yaw %f ",attitude.yaw * 180 / M_PI); NSLog(@"Pitch %f ",attitude.pitch * 180 / M_PI); NSLog(@"Roll %f ",attitude.roll * 180 / M_PI); } 假设iPhone正坐在飞机上,如下图所示: 俯仰,滚转和偏航(几乎)0度,任何绕轴旋转都会返回可理解的读数。 例如,向右转动设备,偏航减小并且Pitch and Roll保持在0。 现在iPhone处于以下位置: 并重新开始测量。 读数是:Yaw = 0,Pitch = 90,Roll = 0 由于设备围绕此轴旋转,音高增加。 把iPhone移到这个位置: 读数是:Yaw = 30,Pitch = 90,Roll = 0 再一次,由于设备围绕横摆轴旋转,所以这个值改变而其他值不改变。 围绕Roll轴移动设备: 读数是:Yaw = […]

寻找iOS设备的正常vector

我想使用CMAttitude来了解iPad / iPhone屏幕(相对于地面)的玻璃垂直向量。 因此,我会得到如下的载体: 请注意,这与方向不同,因为我不在乎设备如何围绕z轴旋转。 所以,如果我把iPad的头向下放在头上,它会读取(0,-1,0),甚至当我在头上旋转(如直升机)时,它会继续读取(0, – 1,0): 我觉得这可能很容易,但是因为我是四元组的新手,并没有完全理解设备运动的参考框架选项,所以它一直在逃避我。