如何将相机朝它所面对的方向缩放?
How can I zoom a camera in the direction it is facing?
我正在 swift 使用 scenekit 制作 3d 游戏。我有一个捏合手势识别器,这样用户可以在捏合时缩放 in/out。
我可以轻松访问当前的 x、y、z 坐标以及围绕每个轴的旋转。
我的问题实际上是想出将我的相机移到哪里。
起初我花了一些时间用三角函数来解决这个问题,但我很难想出一个适用于所有情况的通用解决方案。我现在相信解决方案在于矩阵。但是,我不确定实现它们的准确方法。
例如,在每次调用我的捏合处理程序函数时调用旋转矩阵显然是不好的,会让我的相机疯狂旋转。
为方便起见,我为 SCNNode 和场景矩阵链接了苹果参考:
不要移动相机,只需更改其 xFov
和 yFov
属性:
在此处查看答案:
请注意,更改相机的 FOV 会影响视角,并且物体在某些时候会显得非常扭曲。将相机移近这些物体可以解决此问题。
我正在 swift 使用 scenekit 制作 3d 游戏。我有一个捏合手势识别器,这样用户可以在捏合时缩放 in/out。
我可以轻松访问当前的 x、y、z 坐标以及围绕每个轴的旋转。
我的问题实际上是想出将我的相机移到哪里。
起初我花了一些时间用三角函数来解决这个问题,但我很难想出一个适用于所有情况的通用解决方案。我现在相信解决方案在于矩阵。但是,我不确定实现它们的准确方法。
例如,在每次调用我的捏合处理程序函数时调用旋转矩阵显然是不好的,会让我的相机疯狂旋转。
为方便起见,我为 SCNNode 和场景矩阵链接了苹果参考:
不要移动相机,只需更改其 xFov
和 yFov
属性:
在此处查看答案:
请注意,更改相机的 FOV 会影响视角,并且物体在某些时候会显得非常扭曲。将相机移近这些物体可以解决此问题。