首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SCNNode旋转多轴

SCNNode旋转多轴
EN

Stack Overflow用户
提问于 2019-01-31 21:55:40
回答 1查看 150关注 0票数 0

Question已发布,但从未应答。

类似于This Question,我试图将SCNNode.rotation理解为一个4D向量。先前的问题利用了仅操纵1个轴的示例,即,

代码语言:javascript
复制
SCNNode.rotation = (0, 0, 1, degToRad(45)) //Rotate about z-axis by 45 degrees

这是有道理的;但是,如果我想将X轴旋转20度,Y轴旋转45度,然后Z轴旋转78度,该怎么办?

代码语言:javascript
复制
SCNNode.rotation = ??

我会提供我尝试过的代码,但我在概念上不理解4D旋转向量的概念。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-31 22:31:34

每个节点都有一个4x4矩阵的变换。因此,所有的旋转操作都反映在变换的变化中。

在这种情况下,如果更改rotation、eulerAngles和orientation中的任何一个,都会得到相同的值。

如果旋转三个轴,我建议使用eulerAngles。

node.eulerAnges = SCNVector3(x:degToRad(20),y:degToRad(45), z:degToRad(78))

设置后,返回并检查旋转值:

SCNVector4(x: -0.16975601, y: 0.5943193, z: 0.786109, w: 1.448788)

这意味着有一个轴通过点(-0.16975601,0.5943193,0.786109)和原点(0,0,0),节点围绕它旋转1.448788 (82度)。

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

https://stackoverflow.com/questions/54462140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档