Mat*_*ker 3 rotation scenekit swift
我有一个多次旋转节点的问题.我正在使用滚球进行游戏,虽然我可以沿一个轴或两个轴旋转相同数量的球,但我无法以部分角度旋转.
例:
// Roll right 90 -
SCNNode.pivot = SCNMatrix4MakeRotation(Float(M_PI_2), 0, 1, 0)
// Roll right 180 -
SCNNode.pivot = SCNMatrix4MakeRotation(Float(M_PI_2) * 2, 0, 1, 0)
// Roll up 90 -
SCNNode.pivot = SCNMatrix4MakeRotation(Float(M_PI_2), 1, 0, 0)
// Roll up & right 90 -
SCNNode.pivot = SCNMatrix4MakeRotation(Float(M_PI_2), 1, 1, 0)
Run Code Online (Sandbox Code Playgroud)
所有这些都会奏效,但是如果我需要将球向上滚动180和90,我就会卡住.
即使有某种方法可以将载体添加到一起,这对我有用.
任何帮助非常感谢.
要组合旋转矩阵的效果,请使用矩阵乘法.
要在SceneKit中执行此操作,您可以:
SCNMatrix4Mult.SCNMatrix4Rotate.(这相当于SCNMatrix4MakeRotation+ SCNMatrix4Mult选项;它只是将这些步骤组合到一个函数调用中.)如果转换顺序对您的应用程序很重要,请记住矩阵乘法顺序与转换顺序相反.
| 归档时间: |
|
| 查看次数: |
3916 次 |
| 最近记录: |