hci*_*olo 7 pivot scenekit swift
我一直在玩SCNNode对象一段时间了,我迷失了Pivot.如何更改SCNNode的枢轴(SCNBox作为条形图)并将枢轴放在条形边缘之一上?
ric*_*ter 15
节点pivot是变换矩阵,其反转在其transform属性生效之前应用于节点.例如,从Xcode中的默认SceneKit游戏模板看一下这个位:
let boxNode = SCNNode()
boxNode.geometry = SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0.02)
Run Code Online (Sandbox Code Playgroud)
如果你设置boxNode's position,那个点对应于立方体的中心,如果你旋转它(就像模板在动画中那样),它会围绕它的中心旋转.
要更改锚点,请将其pivot设置为平移变换:
boxNode.pivot = SCNMatrix4MakeTranslation(0.5, 0.5, 0.5)
Run Code Online (Sandbox Code Playgroud)
现在,当您设置该position点对应于立方体的右上角时,并且当您旋转立方体时,它会围绕该角旋转.
更一般地,枢轴相对于节点自己的变换变换节点的内容.假设你想模拟地球旋转轴的进动.您可以通过创建两个动画来完成此操作:一个动画pivot可以围绕自己的Y轴旋转节点,另一个动画rotation可以相对于包含节点的空间移动该轴.