早上好,
我在 StackOverFlow 上搜索了大约一个小时,找到了很多用于创建增强现实应用程序的示例代码(主要是 github),这些应用程序显示第二个位置相对于您当前位置(例如纽约)的位置。
但是,我注意到这些都没有使用 iPhone 4 中提供的陀螺仪功能,该功能为最终用户提供了更加流畅的体验。
有谁知道是否存在这样的示例代码示例?
干杯,
查理
最佳答案
你绝对可以使用CoreMotion从陀螺仪获取数据。基本方法是获取 CMAttitude.rotationMatrix
并将其逆(转置)乘以您最初设置的引用矩阵。 developer.apple.com 上的 Teapot 示例项目展示了使用 CoreMotion 的基本方法。
对于真正的增强现实应用程序,您需要使用 OpenGL ES 创建模型。在尝试过 GL ES 2.0 后,我个人发现 v1.1 在 iOS 上更可靠。 Teapot 示例也使用 GLES 1.1。
使用陀螺仪比使用磁力计来获取设备绕其引用轴的旋转更加准确和“平滑”。诀窍在于如何最初校准引用矩阵,以获得设备的真实“航向”,并将 GL ES 模型对象放置在相机周围的正确位置。完成此操作后,您可以通过将 GL 的 viewMatrix 与 CMAttitude.rotationMatrix 的倒数相乘来旋转 3D 模型。
最后,如果您也打算支持 iPhone 3G,请不要忘记检查 gyroAvailable
CMMotionManager 的属性并提供使用磁力计的替代实现。
关于iphone - 使用陀螺仪的增强现实示例代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5209956/