ARKit 上的“transformPoint”方法

问题描述

Android ARCore Pose() 类中有一个方法

pose.inverse().transformPoint()

我正在 IOS 平台 (swift) 上寻找替代方案。 有人知道吗?

非常感谢。

解决方法

ARKit 有两个有用的方法:

第一个帮助将一个点从场景的 3D 世界坐标系投影到渲染器的 2D 像素坐标系。

func projectPoint(_ point: SCNVector3) -> SCNVector3

第二个帮助将点从渲染器的 2D 像素坐标系取消投影到场景的 3D 世界坐标系。

func unprojectPoint(_ point: SCNVector3) -> SCNVector3
,

我想在 ARKit 上这样做 - swift

 public static Vector3f TransformPointToPose(Vector3f point,Pose anchorPose) {
    // Recenter to anchor
    float[] position = new float[3];
    position[0] = point.x;
    position[1] = point.y;
    position[2] = point.z;
    

    position = anchorPose.inverse().transformPoint(position);
    return new Vector3f(position[0],position[1],position[2]);
}

这是 Pose 类 ARCore 中的“transformPoint()”方法

  public float[] transformPoint(float[] var1) {
    float[] var2 = new float[3];
    this.transformPoint(var1,var2,0);
    return var2;
}

所有子函数的管道都是这样的; just a line - 91. line

这些在姿势类

enter image description here

enter image description here

enter image description here

enter image description here