我正在使用scenekit快速制作3D游戏。我有一个捏手势识别器,以便用户可以在捏时放大/缩小。
我可以轻松访问当前的x,y,z坐标以及围绕每个轴的旋转。
我的问题实际上是找出将相机移动到哪里的问题。 起初我花了一些时间用trig来解决这个问题,但是我很难想出一个适用于所有情况的通用解决方案。我现在相信解决方案就在于矩阵。但是,我不确定实现它们的确切方法。 例如,在每次调用我的捏合处理函数时调用旋转矩阵显然会很糟糕,让我的相机像疯了一样旋转。
为方便起见,我已经为SCNNode和场景矩阵链接了苹果参考:
Scenekit矩阵和向量: https://developer.apple.com/library/mac/documentation/SceneKit/Reference/SceneKit_Functions/
谢谢!
答案 0 :(得分:1)
请勿移动相机,只需更改其xFov
和yFov
属性:
答案 1 :(得分:0)
在此处查看答案:SceneKit camera, how to compensate for euler rules (orientation) changes
请注意,更改相机的FOV会影响视角,对象在某些时候会显得非常扭曲。将相机移近这些物体可以解决这个问题。