加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – SceneKit – 获取相机的方向

发布时间:2020-12-14 04:48:41 所属栏目:百科 来源:网络整理
导读:我需要找出相机正在查看的方向,例如如果它朝向Z,Z-,X或X-. 我尝试过使用eulerAngles,但是偏航的范围是0 – 90 – 0 – -90 – 0这意味着我只能检测相机是朝向Z还是X,而不是朝向那些轴的正方向或负方向. 解决方法 您可以创建一个SCNNode,将其放在worldFront属
我需要找出相机正在查看的方向,例如如果它朝向Z,Z-,X或X-.

我尝试过使用eulerAngles,但是偏航的范围是0 – > 90 – > 0 – > -90 – > 0这意味着我只能检测相机是朝向Z还是X,而不是朝向那些轴的正方向或负方向.

解决方法

您可以创建一个SCNNode,将其放在worldFront属性中以获取具有x,y和z方向的向量.

你能做到的另一种方式就是这个项目是如何做到的:

// Credit to https://github.com/farice/ARShooter

func getUserVector() -> (SCNVector3,SCNVector3) { // (direction,position)
        if let frame = self.sceneView.session.currentFrame {
            let mat = SCNMatrix4(frame.camera.transform) // 4x4 transform matrix describing camera in world space
            let dir = SCNVector3(-1 * mat.m31,-1 * mat.m32,-1 * mat.m33) // orientation of camera in world space
            let pos = SCNVector3(mat.m41,mat.m42,mat.m43) // location of camera in world space

            return (dir,pos)
        }
        return (SCNVector3(0,-1),SCNVector3(0,-0.2))
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读