Swift SCNAction,旋转为四元数

问题描述 投票:-1回答:1

我要控制的SceneKit场景中有一个planeNode。为此,我想不断更新方向。由于欧拉角的奇异性,我使用四元数。到目前为止,我直接更新planeNode.orientation,它工作正常。唯一的问题是,由于更新速率的原因,它在方向之间略有跳跃,这看起来不太好。我尝试使用SCNActions,但问题是Euler Angles仅支持rotateTorotaterotateTo四元数有什么方法吗?

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

swift rotation quaternions scnnode scnaction
1个回答
0
投票

我通过使用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)}
© www.soinside.com 2019 - 2024. All rights reserved.