关于场景工具包翻译如何工作的问题,以及加速计

时间:2015-10-22 02:57:39

标签: ios swift scenekit cmmotionmanager

  1. 我过去做了一点点3D图形。当您移动或旋转场景套件时,它会自动更新其翻译矩阵,还是您必须自己制作?
  2. 是"位置"和" eulerAngles"这两个属性都是......绝对的。
    • 例如,如果我在sprite kit中并将转换设置为(1,0),它将在相对于原点的那一点。
    • 如果我将z旋转设置为90,它将旋转90度。
    • 如果我修改翻译(使用+ =)x,它将开始排成一行。
    • 如果增加zRotation,它将旋转。在场景工具包中,如果我对翻译和欧拉角度值做类似的事情他们会做同样的事情吗?
  3. 此外,加速度计的测量结果究竟是什么,它就像一段时间内的运动量一样?所以基本上它是设备所处的两个同时点之间的差值。
  4. 是的,这个问题肯定是广泛的,但是它们更好地放在这里,然后分散在三个小帖子中。

1 个答案:

答案 0 :(得分:2)

是的,让我看看能否提供帮助

  1. 翻译矩阵?它有一个TRANSFORM矩阵,包括平移,缩放和旋转,是的,当你改变其中一个时它会自动更新,反之亦然。

  2. 如果我理解得很好,是的,就像在SpriteKit中一样。它们与父坐标相关。位置(1,0,0)将意味着节点(其中心,除非您更改其枢轴(spriteKit中的anchorPoint))将沿其父节点的X轴与其父节点的距离为1。 同样适用于旋转,如果NodeA在X轴上旋转30度,并且在NodeA中添加了一个旋转20度的NodeB,那么NodeA在X处可以看到旋转50度。

    < / LI>
  3. 加速度计测量设备三轴上特定时刻给设备的加速力。它的单位不是[m ^ 2 / s]而是[Gravity / s](约为[10m ^ 2 / s])。一个重要的细节是,这个措施也包括重力加速度。 因此,如果您尝试使用与地面正交的设备测量加速度,您可以预期(0,0,-1)(或0,0,1,如果颠倒)。 将设备放在地面上它将是(0,1或-1,0)(取决于屏幕是朝向地面还是天花板)

  4. 对于每个滴答(加速度计的更新速率),它计算当时对设备施加的加速度。这不是delta本身,但如果存储值,则可以很容易地计算出来。