如何使用ARCore测量距离?

是否可以计算两个`HitResult``s 之间的距离?

或者我们如何使用ARCore计算真实距离(例如米)?

回答:

在Java ARCore中,世界单位是米(我只是意识到我们可能不会对此进行记录… aaa,看起来像不行。 糟糕

,提交了错误)。通过减去两个Poses 的平移分量,可以得到它们之间的距离。您的代码如下所示:

首次命中为hitResult

startAnchor = session.addAnchor(hitResult.getHitPose());

第二击为hitResult

Pose startPose = startAnchor.getPose();

Pose endPose = hitResult.getHitPose();

// Clean up the anchor

session.removeAnchors(Collections.singleton(startAnchor));

startAnchor = null;

// Compute the difference vector between the two hit locations.

float dx = startPose.tx() - endPose.tx();

float dy = startPose.ty() - endPose.ty();

float dz = startPose.tz() - endPose.tz();

// Compute the straight-line distance.

float distanceMeters = (float) Math.sqrt(dx*dx + dy*dy + dz*dz);

假设这些命中结果不在同一帧上发生,那么创建一个Anchor至关重要,因为每次调用时都可以重塑虚拟世界Session.update()。通过使用锚点而不是仅使用Pose保持该位置,其Pose将更新以在这些重塑过程中跟踪物理特征。

以上是 如何使用ARCore测量距离? 的全部内容, 来源链接: utcz.com/qa/408025.html

回到顶部