Хит-тестирование на PointCloud (не Point или Plane) вокруг пикселя - PullRequest
0 голосов
/ 11 июня 2019

Я хочу найти все точки в PointCloud, которые ближе к пикселю на экране.Как наведение лучей вокруг этого пикселя и возвращение точек PointCloud (вместо отслеживаемых по дуге объектов Point / Plane).

Я пробовал использовать Frame.hitTest(xPx,yPx), но это работает только на отслеживаемых точках, а не на точках PointCloud,и поэтому результаты очень ограничены с этим.Нужны все точки pointcloud вокруг пикселя (например, приведение луча луча радиуса "r" из этого пикселя в pointcloud)

    if (pointCloudIdsArray.length > 0) {
    for (int i = 0; i < pointCloudIdsArray.length; i++) {
        String idString = Integer.toString(pointCloudIdsArray[i]);
        float xMeters = pointCloudArray[i * 4];
        float yMeters = pointCloudArray[i * 4 + 1];
        float zMeters = pointCloudArray[i * 4 + 2];
        float confidenceoTo1 = pointCloudArray[i * 4 + 3];
        double distanceFromCamera = Math.sqrt(xMeters * xMeters + yMeters * yMeters + zMeters * zMeters);
        if (distanceFromCamera > farthestPoint) {
            farthestPoint = distanceFromCamera;
        }
}

У меня есть координаты мира Pointcloud из кадра.Нужно найти те, которые ближе к пикселю на текущем экране.Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 12 июня 2019

Мне удалось найти ответ на этот вопрос.Объект Camera из arome sceneform делает это довольно легко:

public Vector3 worldToScreenPoint (Vector3 point)
...