如果我以这种方式在 scenekit 节点对象上进行旋转会发生什么:
node.rotation = SCNVector4Make(1, 0, 0, M_PI_2)
是否将 PI/2 添加到现有旋转或是否将对象角度设置为 PI/2?
换句话说,如果我这两次调用两次会发生什么:
它会旋转到 PI/2 还是 PI?
我对 node.eulerAngles 属性有同样的问题
谢谢
关于变换的SCNNode属性都不是“累积的”,就像CALayer的transform一样。要组合转换,您需要使用诸如SCNMatrix4Rotate之类的工具。
SCNNode
CALayer
transform
虽然我永远不会与使用 mnuages 的 SceneKit 中的内容争论(我认为他在 Apple 上工作),但我认为他的字面意思也是如此。
如果您正在寻找累积旋转,如果您知道需要多少旋转,则可在 SceneKit 中使用它。您可以使用两个rotateBy SCNActions。
rotateBy
他们是 :
rotateBy(x:y:z:duration:)
和:
rotate(by:around:duration:)
重复应用这两个将累积地添加到对象的旋转。
2 回答
关于变换的
SCNNode
属性都不是“累积的”,就像CALayer
的transform
一样。要组合转换,您需要使用诸如SCNMatrix4Rotate之类的工具。虽然我永远不会与使用 mnuages 的 SceneKit 中的内容争论(我认为他在 Apple 上工作),但我认为他的字面意思也是如此。
如果您正在寻找累积旋转,如果您知道需要多少旋转,则可在 SceneKit 中使用它。您可以使用两个
rotateBy
SCNActions。他们是 :
rotateBy(x:y:z:duration:)
和:
rotate(by:around:duration:)
重复应用这两个将累积地添加到对象的旋转。