当前位置: 首页 > 面试题库 >

在ARCore中检测垂直平面

盛嘉
2023-03-14
问题内容

我想知道是否有人使用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



 类似资料:
  • 问题内容: 如何实现垂直平面检测(即对于墙壁)? 问题答案: 编辑: 自ARKit 1.5(iOS 11.3)起,现在支持。只需使用。我出于历史目的保留了以前的帖子。 TL; DR 垂直平面检测还不是ARKit中的功能。这表明该功能可能正在开发中,将来可能会添加。如果它只是一个布尔值,则表明它是最终值。 确认书 我在WWDC17与苹果工程师的对话证实了这种怀疑。 说明 您可能会争辩说,为此创建一个

  • ARCore场景表单示例项目“hello场景表单”很酷,工作非常好。 问题是需要移动手机以获得一个放置锚的表面。太慢了。 我的应用程序不需要在垂直平面(墙)上显示任何东西,只需要在地板上显示。我是否可以跳过“移动手机”步骤,或者至少加快速度? 我试过: 认为如果我不需要寻找垂直面,那么一切都会更快。。。。。似乎还不够快。 谢谢

  • 我正在看Android的新ARCore库。它有检测水平表面的方法,但没有检测垂直表面或墙壁的方法。 我实际上试图使示例应用程序检测墙壁,但我有很多问题。 在ARCore中是否有一种本机或非本机检测垂直表面的方法?

  • 问题内容: 如何使用flexbox在容器内水平和垂直居中div。在下面的示例中,我希望每个数字都彼此相邻(按行),并水平居中。 问题答案: 我认为您想要以下内容。 你的元素应该是块级(而非)如果你想要的高度和顶部/底部填充,以正常工作。 另外,在上,将宽度设置为而不是。 您的属性很好。 如果您希望垂直居中于视口中,请为和分配100%的高度,然后将页边距清零。 请注意,需要一个高度才能看到垂直对齐效

  • 如何使用FlexBox在容器内水平和垂直地居中div。在下面的例子中,我希望每一个数字在彼此下面(在行中),水平居中。 null null http://codepen.io/anon/pen/zlxbo

  • 我正在工作的一个项目和面临一个问题与ARCORE。我在我的项目中使用了ARCore定位,我使用纬度和经度来设置对象的位置。但当我在设备中看到它时,对象位置在AR中是不同的。 它的主要问题是它检测表面和放置图像根据它,如果有任何可能禁用表面检测,那么它的工作是完美的。