从 CMRotationMatrix 获取俯仰、偏航、滚转

2023-11-26

我有一个 CMRotationMatrix *rot 我想从矩阵中获取俯仰、偏航、滚转。 我有什么想法可以做到这一点吗?

Thanks


使用四元数比使用欧拉角更好......可以使用以下公式从四元数导出横滚角、俯仰角和偏航角值:

roll  = atan2(2*y*w - 2*x*z, 1 - 2*y*y - 2*z*z)
pitch = atan2(2*x*w - 2*y*z, 1 - 2*x*x - 2*z*z)
yaw   =  asin(2*x*y + 2*z*w)

它可以实现为:

CMQuaternion quat = self.motionManager.deviceMotion.attitude.quaternion;
myRoll = radiansToDegrees(atan2(2*(quat.y*quat.w - quat.x*quat.z), 1 - 2*quat.y*quat.y - 2*quat.z*quat.z)) ;
myPitch = radiansToDegrees(atan2(2*(quat.x*quat.w + quat.y*quat.z), 1 - 2*quat.x*quat.x - 2*quat.z*quat.z));
myYaw = radiansToDegrees(asin(2*quat.x*quat.y + 2*quat.w*quat.z));

其中 radianstoDegrees 是一个预处理器指令,实现为:

#define radiansToDegrees(x) (180/M_PI)*x

这样做是为了将公式给出的弧度值转换为度数。

有关转换的更多信息可以在此处找到:修补匠和这里:四元数和欧拉角之间的转换.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 CMRotationMatrix 获取俯仰、偏航、滚转 的相关文章

  • 应用程序在第二次运行 nsnull 计数的循环时崩溃

    我有一个循环 第一次运行正常 但第二次循环时我得到 NSNull count unrecognized selector sent to instance 0x3a094a70 Terminating app due to uncaught
  • iOS 上每个选项的带有图像的操作表

    有没有办法在 iOS 上将图像添加到操作表中 与苹果在应用程序商店或苹果音乐应用程序上所做的一样 我对苹果文档的基本搜索表明我没有在操作表中子类化或添加子视图 UIActionSheet 并非设计为子类化 也不应向其层次结构添加视图 苹果文
  • 编写支持 iOS 3.1.3 和 iOS 4.x 的 iOS 应用程序时的陷阱

    我想编写一个可以在 iOS 3 1 3 到 iOS 4 1 上运行的应用程序 我知道如何设置部署目标和基础 SDK 阅读 Apple 文档后 它很大程度上依赖于检查类是否可用和 或实例是否响应特定选择器 现在我的问题是 如果 Apple 从
  • 如何保存 1 个 xcode 项目中的所有构建设置并在其他 xcode 项目上使用它们?

    我使用 xcode 4 5 和 cordova phonegap 来构建我的应用程序 我投入了大量时间来获取适合我的 Xcode 项目的构建设置 并且我想在我正在构建的多个应用程序上重用这些设置 我正在寻找是否有一种快速的方法来导出这些设置
  • cordova-plugin-whitelist 适用于 Android,但不适用于 iOS (Phonegap Build)

    我正在开发一个用 Cordova 封装并使用 Phonegap Build 构建的 JavaScript 应用程序 我们包括cordova plugin whitelist来自我们构建中的 npm 并添加了
  • 自动调整大小完成后如何获取帧大小

    我想知道 如何以及何时 viewDidLoad viewWillAppear viewDidAppear 可以获得自动调整大小以适合其父视图的 UIViews 框架大小 从你的问题中不清楚你为什么想要它 但我想这是为了布局你的子视图 幸运的
  • 在界面生成器/故事板中设置 UIButton 图像

    我有一个视图控制器 我在故事板中添加了一个圆形矩形按钮 该应用程序运行良好 我还使用故事板将按钮连接到 segue 我正在尝试为此按钮设置一个自定义图像以用于其开和关状态 我如何访问此按钮并设置其属性 在本例中为开和关图像 这是一个屏幕截图
  • 使用 UIImagePickerController 的应用程序在拍照后选择“使用照片”时冻结

    我现在正在开发一个简单的照片和视频捕获应用程序 该应用程序成功地允许用户按下按钮即可拍摄照片或视频 但是 一旦您完成拍摄照片或视频 它就会提供 2 个选项 重新拍摄 和 使用照片 或 使用视频 具体取决于您使用的选项 如果用户点击 重新拍摄
  • 对 UIImage 进行方形裁剪,导致图像拉伸

    当尝试执行 UIImage 的中心裁剪时 我得到以下结果 左侧是原始图像640 1136 右边是适合正方形的裁剪图像UIImageView at 320 320 turns to 我对比率元素进行了相当多的修改 以便它可以正确检测要修剪的量
  • 尝试从独立的 Apple Watch 应用发出网络请求

    当应用程序是独立应用程序时 Apple Watch 是否无法进行网络通话 即使手表已连接到 iPhone 我正在使用新的独立应用程序目标 它没有附带可以发出 WatchConnectivity 请求的配对 iOS 应用程序 我十有八九收到
  • UIBezierPath 的起始和结束角度?

    我在 iOS 中使用如下代码编写了半圆UI贝塞尔路径 and CAShape层 clockWiseLayer CAShapeLayer alloc init CGFloat startAngle M PI 2 CGFloat endAngl
  • 从 Core Data、iOS 获取最后插入的项目

    有没有办法获取核心数据数据库中最后插入的项目 这将返回最后插入的对象 setFetchLimit 1 和 setFetchOffset 所有条目数 1
  • 如何将十六进制数组转换为 UIImage?

    有几个与使用 P25mi 动态打印图像相关的未解答问题 没有一个得到公认的答案 下面有几个链接 如何将图像转换为位图代码以便在 iPhone 中进行蓝牙打印 https stackoverflow com questions 1383828
  • iPad 3 中配备 Xcode 4.2 和 Retina 的 iOS 5.1

    我有一台装有 Mac OS X Snow Leopard 的 Mac 我可以添加 iOS 5 1 吗 使用 iPad 3 的新分辨率 我们将如何处理图像 因为如果该应用程序将在 iPhone 3GS 4 和 iPad 3 中运行 我认为我们
  • 如果 NSExtensionActivationRule 设置为仅音频,则共享扩展不会出现在有功能的应用程序中

    我正在尝试创建一个共享扩展 用户可以从任何有能力的应用程序上传她的录音 该文档甚至有一个简单的示例 请参阅声明共享或操作扩展支持的数据类型 https developer apple com library content document
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 如何自动为 Swift 类创建初始化程序?

    UPDATE 使用结构而不是类 struct 在很多方面都更好 它有自己的初始化器 这是我的模型课 是否有可能创建init自动方法 每次我都必须将所有变量一一初始化 这会花费很多时间 class Profile var id String
  • iOS 发送 iMessage 尽可能简单

    我希望能够以编程方式发送 iMessage 除了调用一个将文本发送到带有消息的号码的函数之外 无需执行任何其他操作 这两个消息都是文本框 我真的很感激一些示例代码 因为我在网上搜索过 但我发现没有任何帮助 这不适用于商业应用程序 仅适用于我
  • 如何使用 afnetworking 在后台上传任务

    我正在尝试使用 AFNetworking 上传大文件 并在应用程序处于后台时继续上传 我可以很好地上传文件 但是当我尝试使用后台配置时 应用程序崩溃并显示以下堆栈跟踪 异常 EXC BAD ACCESS 代码 1 地址 0x8000001f
  • 当设置 setVisibleXRangeMaximum 时,iOS-Charts X 轴值无限重复

    我正在尝试绘制一个图表 其中 x 轴是TimeIntervalY 轴是power consumption 由于每天都会有数据 因此将有太多数据无法显示 因此 我想一次显示 5 个值 我通过设置实现了这一点self chart setVisi

随机推荐

  • 如何在android中捕获长按音量减小键?

    只是想知道是否有人可以告诉我如何捕获 android 中音量减小键的长按键 详细问题 我想创建一个广播接收器它将接收音量长按键事件 没有任何 UI 交互 我知道搜索按钮是可能的 音量键可以用吗 Thanks 也许下面的代码会对您有所帮助 O
  • 如何在 AngularJS 中设置 cookie 的过期日期

    我们希望将用户的授权信息存储在 cookie 中 该信息不应在浏览器刷新 F5 时丢失 我们希望将授权信息存储在 permanent cookie 中 以防用户在登录时选择 记住我 复选框 这在 1 4 0 版本的 Angular 中可以使
  • 计算适合矩形的最大字体大小?

    我试图找到适合给定字符串的给定矩形的最大字体大小 该算法的目标是用尽可能大的字体填充尽可能多的矩形 我的方法 根据我在网上找到的方法进行修改 做得不错 但它通常不能填满整个矩形 我希望看到一些关于如何改进该算法的合作 以便每个人都可以从中受
  • 如何通过 Maven API 获取 Artifact 下载 URL?

    我正在尝试创建一个 Maven 插件来生成一个文件 其中包含项目中所有依赖项的 URL 我已经能够获取依赖项及其工件 但在获取下载 URL 时遇到问题 使用 ArtifactResolver 和 ArtifactMetadataSource
  • 视频录制开启时,每 5 秒间隔保存一次视频(Android 操作系统)

    我想在视频录制打开时每 5 秒保存一次视频 我尝试了很多解决方案 但我面临着Glitch也就是说 最后保存的帧在预览中保留大约 300 毫秒 我认为原因是在 MediaRecorder 类中 一旦记录器停止 就需要在重新启动之前完全重新配置
  • 在原型继承中实现实例方法/变量

    读完后我一直在玩原型继承http javascript crockford com prototypal html并且在理解如何以使用经典继承的方式使用它方面存在一些问题 也就是说 原型继承的所有函数和变量本质上都会变成静态 除非它们被子对
  • 编写阿拉伯语和英语混合的文本文件

    我正在尝试在文本文件中写入包含阿拉伯语和英语的句子 但问题是两种语言都有 RTL 和 LTR 方向 因此输出文本文件不保存单词的顺序 并且某些单词出现在彼此之前 这是错误的 当我从记事本或任何文本编辑器更改文本方向时问题已解决 有什么方法可
  • 从 XML 填充参数列表

    我需要将 ID 列表拉入 powershell 参数验证集中 如下所示 function Do Stuff Cmdletbinding param ValidateSet Seattle NewYork London Atlanta Str
  • 评估 Javascript 中的表达式树

    我的输入由嵌套逻辑表达式对象组成 Ex var obj OR AND false true true OR true false false AND true true true 这相当于 false true true true fals
  • 语法定向翻译是什么意思?

    谁能简单地解释一下 语法定向翻译 是什么意思 我开始阅读这个主题龙书但无法理解 这维基文章也没有帮助 简而言之 语法定向翻译 意味着用语法识别器 解析器 驱动整个编译 翻译 过程 从概念上讲 编译程序 将其从源代码翻译为机器代码 的过程从生
  • 通过 Mongoose、Node.js、MongodB 中的特定属性查找嵌入文档

    对于这个应用程序 我使用 Node js MongoDB Mongoose 和 Express 所以我有一个包含枢轴数组的参数对象 我想从枢轴读取某些数据 如下所述 in models js var Pivot new Schema val
  • Firebase 无法与 Firebase 服务器通信

    我正在使用 Firebase PhoneAuth 并收到以下错误 由于配置无效 Firebase 安装无法与 Firebase 服务器 API 通信 请更新您的 Firebase 初始化流程 并在初始化 Firebase 时设置有效的 Fi
  • 如何使用 Javascript 获取表的当前行索引?

    我可以在 Javascript 中获取表的当前行索引吗 我们可以删除具有当前索引的表行吗 rowIndex 属性返回表中行的位置 function myFunction x console log Row index is x rowInd
  • 在 pandas 中转换读取 csv 的数据

    我正在将 csv 文件读入 pandas 数据帧 csv 文件包含多个列 列 A 包含字符串 20 989 98766 加载文件时是否可以只读取字符串的最后 5 个字符 98766 df pd read csv test data2 csv
  • 延迟解析非常大的 xml

    我有一个巨大的 xml 文件 40 GB 我想从中提取一些字段而不将整个文件加载到内存中 有什么建议么 基于 SAXParser 教程的 XMLEventReader 快速示例here 由 Rinat Tainov 发布 我确信它可以做得更
  • Google 应用程序脚本 - onChange 或 OnEdit

    我有一个谷歌应用程序脚本 可以更改电子表格中 onLoad 事件中 A1 中的值 这会引发一连串的变化 当单元格 F200 由于对单元格 A1 进行编辑而发生更改时 我想检测该事件 如何设置触发器来检测此更改 当用户打开他或她有权编辑的电子
  • IOS的文件系统加密?

    我知道在Mac OS上 我们可以使用Macfuse在用户空间中编写文件系统 我们可以创建一个盒子加密 我不知道IOS上有一个框架 像FUSE Macfuse这样的库 我可以编写我的文件系统来加密 解密文件 可能安装在目录 文件夹上 谁能给我
  • DocumentDb 错误“跨分区查询仅支持聚合的‘VALUE ’”

    我很困惑 我将以下 SQL 查询发送到我的 documentDb 实例 query SELECT SUM c clicks SUM c opens MAX c ts COUNT c FROM c WHERE c clicks gt 0 我收
  • 如何使用 Javascript 找出两个日期之间的差异

    我想获得特定日期的扩孔天数 所以我试图用今天的日期检测特定日期 但这在这里不起作用是我的code如果日期是下个月 27 我怎样才能得到剩余的天数 var date2 new Date var date1 27 5 2012 var diff
  • 从 CMRotationMatrix 获取俯仰、偏航、滚转

    我有一个 CMRotationMatrix rot 我想从矩阵中获取俯仰 偏航 滚转 我有什么想法可以做到这一点吗 Thanks 使用四元数比使用欧拉角更好 可以使用以下公式从四元数导出横滚角 俯仰角和偏航角值 roll atan2 2 y