【问题标题】:SceneKit: Apply multiple rotations to SCNNode but keep the original axes constantSceneKit:对 SCNNode 应用多个旋转但保持原始轴不变
【发布时间】:2020-04-24 08:28:21
【问题描述】:

在我的场景中,每个 SCNNode 都有 3 个与之关联的值,分别用于滚动、俯仰和偏航。

当我加载 SCNNode 时,我想依次应用这 3 个旋转。但是,这 3 个值假设节点的轴始终是恒定的,我遇到了问题,因为节点的轴在每次旋转后都会发生变化。

例如,如果 z 轴最初指向用户(屏幕外)并且 y 轴最初指向上方并且我应用了 90 度滚动旋转,那么 z 轴仍将指向屏幕外但现在 y 轴将指向左侧。这将使随后的偏航旋转不正确。

有没有办法让节点相对于一组恒定的轴旋转?

【问题讨论】:

  • 重要的是你想要的最终结果。最好是如果您可以更改操作顺序,即先偏航,然后滚动或俯仰。另一件事是执行操作,例如滚动并保存该值,然后从您想要的轴执行另一个操作并保存该值。您的要求是将一个值叠加在另一个值上我是对的,对我来说返回起始轴没有意义我宁愿说更改操作。

标签: swift scenekit arkit


【解决方案1】:

我需要的是 SCNNode 方法 rotate(by:aroundTarget:)

https://developer.apple.com/documentation/scenekit/scnnode/2867399-rotate

【讨论】:

    猜你喜欢
    • 2018-03-22
    • 2020-04-07
    • 2020-04-08
    • 2013-03-24
    • 1970-01-01
    • 2017-08-31
    • 2014-10-07
    • 2019-07-11
    • 2017-10-29
    相关资源
    最近更新 更多