ios - 如何将相机坐标转换为场景的坐标空间?
问题描述
我试图在我制作的场景中找到相机的坐标,但我最终得到了不同系统中的坐标。诸如 ( 之类的坐标0.0134094329550862
,它大约1cm
在场景坐标系中,同时移动更多。
我这样做是为了获取坐标:
let cameraCoordinates = self.sceneView.pointOfView?.worldPosition
self.POSx = Double((cameraCoordinates?.x)!)
self.POSy = Double((cameraCoordinates?.y)!)
self.POSz = Double((cameraCoordinates?.z)!)
解决方案
这就是我找到相机坐标及其方向的方法。
func getUserVector() -> (SCNVector3, SCNVector3) {
if let frame = self.sceneView.session.currentFrame {
let mat = SCNMatrix4(frame.camera.transform)
let dir = SCNVector3(-1 * mat.m31, -1 * mat.m32, -1 * mat.m33)
let pos = SCNVector3(mat.m41, mat.m42, mat.m43)
return (dir, pos)
}
return (SCNVector3(0, 0, -1), SCNVector3(0, 0, -0.2))
}
推荐阅读
- python - 如何解决下载谷歌驱动器文件时抛出的错误
- apache-spark - 防止 SparkHistoryServer 重定向到 HTTP
- rest - TRESTRequest:是否可以在 POST 请求中使用自定义媒体类型?
- machine-learning - 迁移学习 - Val_loss 奇怪的行为
- ios - 有没有办法为不同的组提供推送通知
- python-3.x - 如何遍历要从字符串转换为矩阵的列表?
- sql - 我想要给定输入的累积行
- openedge - 如果计数超过 5,如何仅显示结果
- excel - 运行时错误 5:从 VBA 集合中删除某些项目
- sql - SQL查询中根据表值添加条件