как упомянуто в проблеме. Надеюсь это поможет :)
ыло интересно, удалось ли кому-нибудь определить вертикальные плоскости перед устройством в режиме реального времени, используя 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 в горизонтальной плоскости.