在ARCore中检测垂直平面

我想知道是否有人使用ARCore SDK实时识别了设备之前的垂直平面。

通过使用线方程定义墙,我设法获得了不错的结果:

z = Multiplier * x + Constant (For every y)

用“每y个”注释表示要忽略y轴(如在房间的2d映射中从上方看墙壁),以便计算定义墙壁的线。

乘数是两点之间的旋转:

let angleDeg = Float((360 - angle + 360) % 360) * Float.pi / 180.0;

所有的计算是:

let angle: Int = Int((atan2(pointA.z - pointB.z, pointA.x - pointB.x) * 180) / Float.pi) % 360

yRotation = Float((360 - angle + 360) % 360) * Float.pi / 180.0

if pointA.x == pointB.x {

multiplier = Float.infinity

} else {

multiplier = (pointA.z - pointB.z) / (pointA.x - pointB.x)

}

constant = pointA.z - multiplier * pointA.x

}

现在,我在用户四处走动并采样许多点云点时触发该计算。

结果很好,但不如ARCore的水平面检测准确。

回答:

现在是ARCore的一部分,发布于1.2.0版本,适用于Android

以上是 在ARCore中检测垂直平面 的全部内容, 来源链接: utcz.com/qa/409973.html

回到顶部