【问题标题】:Not getting how the property rotation works in SceneKit不了解 SceneKit 中的属性旋转是如何工作的
【发布时间】:2014-10-13 00:53:43
【问题描述】:

当你为一个对象指定一个旋转时,你会做这样的事情:

_earthNode.rotation = SCNVector4Make(1, 0, 0, M_PI/2);

我没有得到的是如何为每个轴指定特定的旋转?因为假设我想从 x 上的 PI、y 上的 PI/2 和 z 上的 PI/4 旋转我的节点,我该怎么做?我以为我可以做这样的事情:

_earthNode.rotation = SCNVector4Make(1, 0.5, 0.25, M_PI);

但它并没有改变任何东西......
这个属性是如何工作的?

【问题讨论】:

    标签: objective-c scenekit


    【解决方案1】:

    Scene Kit 中的旋转向量被指定为旋转轴(前 3 个分量)后跟角度(第 4 个分量),称为 axis-angle representation

    您尝试指定的格式(沿每个轴的不同角度)称为Euler angles(除非我记错了)。


    在两种表示之间进行转换只是一点三角函数。快速在线搜索“欧拉角到轴角”可以找到this page,它显示了谁在 Java 中执行此操作。

    【讨论】:

      【解决方案2】:

      SCNNode 有一个 eulerAngles 属性,可让您做到这一点

      【讨论】:

      • 啊,一些新的 10.10 添加。不错!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 2015-10-31
      • 2017-08-31
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多