【发布时间】:2020-10-28 14:32:35
【问题描述】:
我试图让我的代码检测水平面以找到地板。我的地板是起点设备下方最大的水平面。我目前的算法正在寻找最大的水平面并将其识别为地板,但它也将天花板视为水平面——它不应该这样做。我一直在寻找解决这个问题的方法,但没有骰子。
感谢任何帮助。
这是我的代码:
var areas = [Float]()
for grid1 in grids {
let a = grid1.planeGeometry.width * grid1.planeGeometry.height
areas.append(Float(a))
}
for grid2 in grids {
let area = grid2.planeGeometry.width * grid2.planeGeometry.height
if (Float(area)==areas.max()) {
grid2.floored(state: true)
} else {
grid2.floored(state: false)
}
}
编辑
为了澄清地板的定义,它是从设备的初始起点检测到的最大、最低的平面。因此,例如,如果分别检测到两个平面(例如地毯和地板本身)并且尺寸相同,则较低的平面将是地板。但是,如果地毯覆盖的空间更大,那就是地板。
【问题讨论】:
标签: swift augmented-reality arkit realitykit