首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从ARKit中的simdTransform提取旋转值?

如何从ARKit中的simdTransform提取旋转值?
EN

Stack Overflow用户
提问于 2020-12-03 12:51:08
回答 1查看 330关注 0票数 1

我正在使用从iPhone的TrueDepth摄像头捕获的值,在ARKit中为一个ARSCNFaceGeometry设置动画。

摄影机以simd_float4x4格式提供变换数据。这包括节点旋转、位置和缩放。以下是生成的内容的示例:

代码语言:javascript
运行
AI代码解释
复制
simd_float4x4([
            [0.9482585, 0.0065377234, 0.31743154, 0.0],
            [-0.07080679, 0.9789629, 0.1913578, 0.0],
            [-0.3095027, -0.20393308, 0.9287729, 0.0],
            [0.13866597, 0.20701922, -0.57620335, 1.0]
])

我只对对我的FaceGeometry应用旋转感兴趣,并且对它的位置和比例有单独的控制。所以我需要从上面的矩阵中提取相关的旋转值。

我在Apple文档中找不到任何现成的方法来做这件事,它甚至没有解释矩阵的哪些列或行与旋转有关。

我已经完成了以下工作,通过创建一个“虚拟”节点,将simdTransform应用到它,然后访问它的旋转属性,这是有效的。但这感觉很麻烦,因为我在场景中创建对象只是为了执行编程操作。

代码语言:javascript
运行
AI代码解释
复制
let tempNode = SCNNode(geometry: nil)
tempNode.simdTransform = faceTransformArray[index]
ARFaceNode.rotation = tempNode.rotation
tempNode.removeFromParentNode()

有人能提供一个更干净的解决方案吗?

附言:我是个矩阵新手。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-04 12:37:42

3D旋转表示为quaternion,它由描述绕其旋转的轴的3D向量和描述围绕该轴旋转的角度组成。

要从4x4SIMD矩阵中获取四元数,可以从矩阵中初始化simd_quatf

代码语言:javascript
运行
AI代码解释
复制
let m = simd_float4x4([
    [0.9482585, 0.0065377234, 0.31743154, 0.0],
    [-0.07080679, 0.9789629, 0.1913578, 0.0],
    [-0.3095027, -0.20393308, 0.9287729, 0.0],
    [0.13866597, 0.20701922, -0.57620335, 1.0]
])
let q = simd_quatf(m)

SCNNoderotation属性表示为SCNVector4,其中x、y和z属性用于描述轴,w用于描述旋转。simd_quatf具有axis (Float)和angle (SIMD3<Float>)属性,因此要获取向量:

代码语言:javascript
运行
AI代码解释
复制
let sq = SCNVector4(q.axis.x, q.axis.y, q.axis.z, q.angle)

您可以在这里看到结果是相同的:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65126349

复制
相关文章
python:如何从 URL 中快速提取域名?
有时候,我们要从一段很长的 URL 里面提取出域名。例如从https://www.kingname.info/2020/10/02/copy-from-ssh/,我需要获取的是kingname.info。
王图思睿
2021/06/16
9.2K0
如何从内存提取LastPass中的账号密码
简介 首先必须要说,这并不是LastPass的exp或者漏洞,这仅仅是通过取证方法提取仍旧保留在内存中数据的方法。之前我阅读《内存取证的艺术》(The Art of Memory Forensics)时,其中有一章节就有讨论从浏览器提取密码的方法。当你使用标准的用户名/密码方式登录一个网页,通常会发送一个包含了你的用户名及密码的post请求,这些都是以明文方式发送(这里不过多讨论SSL,在SSL内部也是明文发送的)。 本文描述如何找到这些post请求并提取信息,当然如果你捕获到浏览器登录,这些方法就很实用。
FB客服
2018/02/09
5.8K0
如何从内存提取LastPass中的账号密码
ARKit 教学:如何搭配SceneKit来建立一个简单的ARKit Demo设定ARKit SceneKit View从ARSCNView移除物件
增强现实(Argument Reality)来啰!记得宝可梦(Pokemon Go)吗?它当然也是增强现实的代表之一!Apple终于在iOS11将增强现实带进来,也因为iOS11,未来将会有数不清的iPhones和iPads就会搭载AR功能,这将会让ARKit成为世界最大的平台,是的,如果你对建置增强现实的Apps有兴趣,让你就来对地方了。
iOSDevLog
2018/08/22
1.8K0
ARKit 教学:如何搭配SceneKit来建立一个简单的ARKit Demo设定ARKit SceneKit View从ARSCNView移除物件
如何从网站提取数据?
在当今时代,根据数据情况来制定业务决策是许多公司的头等大事。为了推动这些决策,公司全天候跟踪,监视和记录相关数据。幸运的是,很多网站的服务器上存储了大量公共数据,可以帮助企业在竞争激烈的市场中保持领先地位。
用户7850017
2021/01/29
3.1K0
如何从 Debian 系统中的 DEB 包中提取文件?
DEB 包是 Debian 系统中常见的软件包格式,用于安装和管理软件。有时候,您可能需要从 DEB 包中提取特定的文件,以便查看其内容、修改或进行其他操作。本文将详细介绍如何从 Debian 系统中的 DEB 包中提取文件,并提供相应的示例。
网络技术联盟站
2023/06/08
3.6K0
如何从 Debian 系统中的 DEB 包中提取文件?
OpenCV二值分析-从复杂背景提取横纹
这个来自QQ群里面一位网友提问,然后我给它稍微整理一下,然后完成了分析,成功提取了横纹。原图如下:
OpenCV学堂
2021/12/10
8770
OpenCV二值分析-从复杂背景提取横纹
OpenCV二值分析-从复杂背景提取横纹
这个来自QQ群里面一位网友提问,然后我给它稍微整理一下,然后完成了分析,成功提取了横纹。原图如下:
AI算法与图像处理
2021/12/09
1.2K0
OpenCV二值分析-从复杂背景提取横纹
寻找旋转排序数组中的最小值
题意 假设一个旋转排序的数组其起始位置是未知的(比如 0 1 2 4 5 6 7 可能变成是 4 5 6 7 0 1 2)。 你需要找到其中最小的元素。 你可以假设数组中不存在重复的元素。 样例 给出 [4,5,6,7,0,1,2] 返回 0。 代码实现: 顺序查找 public class Solution { /** * @param nums: a rotated sorted array * @return: the minimum number in the arra
一份执着✘
2018/06/04
1.6K0
用于从 JSON 响应中提取单个值的 Python 程序
值提取是一个非常流行的编程概念,它用于各种操作。但是,从 JSON 响应中提取值是一个完全不同的概念。它帮助我们构建逻辑并在复杂数据集中定位特定值。本文将介绍可用于从 JSON 响应中提取单个值的各种方法。在开始值提取之前,让我们重点了解 JSON 响应的含义。
很酷的站长
2023/08/11
2600
用于从 JSON 响应中提取单个值的 Python 程序
Java 如何提取列表中对象某个属性值并去重
在 Java 中,有时候需要从一个对象列表中提取某个属性值,并去除重复的值。本文将介绍两种方式来实现这个操作。
高久峰
2023/10/26
2.3K0
ARKit介绍
Apple在WWDC17上宣布了一个名为ARKit的新iOS框架。它是一个“允许您轻松为iPhone和iPad创建无与伦比的增强现实体验”的框架。该框架随iOS 11一起发布(目前处于测试阶段),并且仅由Apple的A9或A10芯片驱动的iOS设备支持。这意味着它不适用于iPhone 5S或iPad Mini等旧设备。此外,您无法在模拟器中使用它,因此您必须使用最新的测试版更新您的iPhone / iPad(iOS 11 SDK仅适用于Xcode 9)。
iOSDevLog
2018/08/22
2.4K0
ARKit介绍
寻找旋转排序数组中的最小值 II
leecode 154 package main import "fmt" /* 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 注意数组中可能存在重复的元素。 示例 1: 输入: [1,3,5] 输出: 1 示例 2: 输入: [2,2,2,0,1] 输出: 0 */ func main() { fmt.Printf("%+v",findMin([]in
用户7962184
2020/11/20
1K0
图像几何变换(缩放、旋转)中的常用的插值算法
在图像几何变换的过程中,常用的插值方法有最邻近插值(近邻取样法)、双线性内插值和三次卷积法。
chaibubble
2022/05/07
2.3K0
图像几何变换(缩放、旋转)中的常用的插值算法
ARKit中控制.dae动画的播放
4.用时间控制动画--CAAnimation 里的 timeOffset 控制开始时间 duration控制播放时间
2018/05/07
2.2K1
如何从Docker镜像中提取Dockerfile?
今天在技术群摸鱼,有朋友问个docker的问题,替换配置文件不生效,也没有原先的Dockerfile,所以就在想,有没有什么方式可以直接从容器或镜像生成Dockerfile
李俊鹏
2021/05/27
5.9K0
如何使用QueenSono从ICMP提取数据
QueenSono是一款针对ICMP协议的数据提取工具,该工具基于Golang开发,并且只依赖于ICMP协议不受监控这一事实实现其功能。除此之外,该工具也可以用于基本的ICMP检查,或绕过某些身份验证机制,比如说许多公共Wi-Fi在连接到Wi-Fi(如机场Wi-Fi)后用于对用户进行身份验证。
FB客服
2021/10/22
2.6K0
如何提取PPT中的所有图片
1、 首先,我们打开一个含有图片的PPT,点菜单“文件”--“另存为”;在“另存为”对话框中,选择保存类型为“网页”,点保存; 2、打开我们保存文件的目录,会发现一个带有“******.files”的文件夹; 3、双击该文件夹,里面的文件类型很多,再按文件类型排一下序,看一下,是不是所有的图片都在里面了,一般图片为jpg格式的;
P轴
2022/11/18
7K0
如何从两个List中筛选出相同的值
问题 现有社保卡和身份证若干,想要匹配筛选出一一对应的社保卡和身份证。 转换为List<社保卡> socialList,和List idList,从二者中找出匹配的社保卡。 模型 创建社保卡类 /** * @author Ryan Miao */ class SocialSecurity{ private Integer id;//社保号码 private Integer idCard;//身份证号码 private String somethingElse; p
Ryan-Miao
2018/03/14
6.2K0
如何从两个List中筛选出相同的值
到底有多强?苹果的增强现实框架:ARKit
写在前面 其实准备ARKit已经很久了,确切地说当WWDC开始介绍时就开始了。其后参加了苹果的ARKit workShop,加上自己有点事,所以文章一直没发出来,现在再发一篇上手文章,也没什么意义。
郭艺帆
2017/09/05
3.5K0
到底有多强?苹果的增强现实框架:ARKit
153. 寻找旋转排序数组中的最小值
已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2] 若旋转 7 次,则可以得到 [0,1,2,4,5,6,7] 给你一个元素值 互不相同 的数组 nums 示例 1: 输入:nums = [3,4,5,1,2] 输出:1 解释:原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。 示例 2: 输入:n
CaesarChang张旭
2021/06/22
7420
153. 寻找旋转排序数组中的最小值

相似问题

simdTransform在SceneKit和ARKit中是什么?

10

在ARKit 3中从三维骨骼中提取骨旋转

21

旋转ARKIT模型

124

如何从ARKit中获取投影、旋转和平移矩阵?

10

在ARkit中旋转对象

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文