我正在试用苹果的ARKit,有一个关于相机转换的问题。转换矩阵中的哪些值表示用户从原点走了多远?呼叫
self.sceneView.session.currentFrame!.camera.transform.columns.0.x 似乎不会产生正确的X翻译。
此外,Y和Z的正确位置是什么
发布于 2017-06-30 13:39:24
4x4转换矩阵的最后一列--本例中为matrix.columns.3 --是平移向量。有关4x4变换矩阵及其工作原理的一些背景信息,请参见this old answer。
发布于 2018-09-01 18:35:34
获取ARCamera翻译的最简单方法如下:
func getCameraTransform(for sceneView: ARSCNView) -> MDLTransform {
guard let transform = sceneView.session.currentFrame?.camera.transform else { return }
return MDLTransform(matrix: transform)
}
let position = SCNVector3(cameraTransform.translation.x,
cameraTransform.translation.y,
cameraTransform.translation.z)发布于 2019-02-18 17:20:15
func session(_ session: ARSession, didUpdate frame: ARFrame)
{
// Do something with the new transform
let currentTransform = frame.camera.transform
let x = currentTransform.columns.3.x
let y = currentTransform.columns.3.y
let z= currentTransform.columns.3.z
}向量的最后一列是平移值。您可以从第3列获取翻译值
https://stackoverflow.com/questions/44834807
复制相似问题