首页 文章

SceneKit - SCNCamera Top-down 视图

提问于
浏览
1

我是来自 2D SpriteKit 的 SceneKit 的新手,并试图弄清楚如何调整相机,使其处于面向世界的顶端。我的位置部分是正确的,但是在旋转时我会卡住。如果我调整X, Y or Z axis, nothing seems to happen, however on the W axis the slightest change (even 0.1`更高或更低)似乎将摄像机移向未知方向。我究竟做错了什么?

cameraNode.position = SCNVector3Make(0, 10, 0)
cameraNode.rotation = SCNVector4Make(0, 0, 0, 0.5)

1 回答

  • 7

    旋转矢量被分解为(x_axis, y_axis, z_axis, angle)

    设置具有零角度的旋转轴是标识(无有效旋转)。使用空旋转轴设置角度实际上不会定义旋转。

    至于为什么角度的微小变化会产生巨大的影响,这是因为它们以弧度表示。

    围绕 x 轴旋转 90°可以如下实现

    node.rotation = SCNVector4Make(1, 0, 0, M_PI_2)
    

    但是如果你发现它更容易,你也可以使用欧拉角(见SCNNode.eulerAngles):

    node.eulerAngles = SCNVector3Make(M_PI_2, 0, 0)
    

相关问题