-1

我要控制的 SceneKit 场景中有一个 planeNode。为此,我想不断更新方向。由于欧拉角的奇点,我正在使用四元数。到目前为止,我正在直接更新planeNode.orientation并且效果很好。唯一的问题是,由于更新率,它在方向之间略有跳跃,这看起来不太好。我尝试使用,SCNActions但问题是我只能通过欧拉角。四元数有什么办法吗?rotateTorotaterotateTo

非常欢迎任何帮助!谢谢!

4

1 回答 1

1

我通过向上使用解决了它,sims_slerp因此没有将方向直接更新到新的设定点方向,而是更新到它的一部分:

let qSlerp = simd_slerp(simd_quatf(quat: self.planeNode.orientation), self.orientationSP!, 0.1)
// UPDATE ORIENTATION TO CLOSEST INTERPOLATION
self.planeNode.orientation = SCNQuaternion(simd_quat: qSlerp)}
于 2020-01-23T07:56:20.537 回答