加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift – 如何更改SCNNode对象的Pivot

发布时间:2020-12-14 05:26:04 所属栏目:百科 来源:网络整理
导读:我一直在玩SCNNode对象一段时间了,我迷失了Pivot.如何更改SCNNode的枢轴(SCNBox作为条形图)并将枢轴放在条形边缘之一上? 节点 pivot 是变换矩阵,其变换在其变换属性生效之前应用于节点.例如,从Xcode中的默认SceneKit游戏模板看一下这个位: let boxNode = S
我一直在玩SCNNode对象一段时间了,我迷失了Pivot.如何更改SCNNode的枢轴(SCNBox作为条形图)并将枢轴放在条形边缘之一上?
节点 pivot是变换矩阵,其变换在其变换属性生效之前应用于节点.例如,从Xcode中的默认SceneKit游戏模板看一下这个位:
let boxNode = SCNNode()
boxNode.geometry = SCNBox(width: 1,height: 1,length: 1,chamferRadius: 0.02)

如果设置boxNode的位置,则该点对应于立方体的中心,如果旋转它(如模板在动画中所做的那样),它将围绕其中心旋转.

要更改定位点,请将数据透视表设置为平移变换:

boxNode.pivot = SCNMatrix4MakeTranslation(0.5,0.5,0.5)

现在,当您设置该点的位置对应于立方体的右上角时,并且当您旋转立方体时,它会围绕该角旋转.

更一般地,枢轴相对于节点自己的变换变换节点的内容.假设你想模拟地球自转轴的precession.您可以通过创建两个动画来完成此操作:一个动画旋转以围绕其自己的Y轴旋转节点,另一个动画旋转以相对于包含节点的空间移动该轴.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读