You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ARCore平面检测后无需点击在指定位置放置3D模型的实现疑问

解决方案:将3D模型放置在屏幕角落对应的平面位置

你现在的代码是通过屏幕中心坐标做hitTest来放置模型的,要改成角落位置其实很简单,只需要把hitTest用的屏幕坐标从中心换成角落即可,具体步骤如下:

1. 替换屏幕中心坐标为角落坐标

在你的addObject方法里,把获取屏幕中心的逻辑替换成获取角落坐标的方法。这里以右上角为例(你可以根据需求换成其他角落):

首先新增一个获取角落坐标的方法:

private android.graphics.Point getScreenCorner() {
    View sceneView = arFragment.getArSceneView();
    // 右上角:x取屏幕宽度减100(避免太贴边缘),y取100
    return new android.graphics.Point(sceneView.getWidth() - 100, 100);
    
    // 其他角落的坐标示例,按需切换:
    // 左上角:return new android.graphics.Point(100, 100);
    // 左下角:return new android.graphics.Point(100, sceneView.getHeight() - 100);
    // 右下角:return new android.graphics.Point(sceneView.getWidth() - 100, sceneView.getHeight() - 100);
}

然后在addObject方法里,把原来获取屏幕中心的代码替换成调用这个新方法:

// 替换前:android.graphics.Point pt = getScreenCenter();
android.graphics.Point pt = getScreenCorner();

2. 原理说明

ARCore的frame.hitTest(x, y)是根据屏幕坐标来检测相机视野内对应的平面位置的。你之前用屏幕中心坐标,模型就会放在中心对应的平面上;换成角落坐标后,就会检测该角落位置对应的平面,然后把模型锚定在那里。

设置100的偏移量是为了避免太靠近屏幕边缘——如果坐标完全贴边,可能该位置不在相机当前视野内,或者没有被检测到的平面覆盖,导致hitTest找不到有效平面,模型就无法生成。你可以根据实际需求调整这个偏移值。

3. 完整修改后的addObject方法

private void addObject(Uri model) {
    Frame frame = arFragment.getArSceneView().getArFrame();
    android.graphics.Point pt = getScreenCorner(); // 替换为角落坐标
    List<HitResult> hits;
    if (frame != null) {
        hits = frame.hitTest(pt.x, pt.y);
        for (HitResult hit : hits) {
            Trackable trackable = hit.getTrackable();
            if (trackable instanceof Plane && ((Plane) trackable).isPoseInPolygon(hit.getHitPose())) {
                modelLoader1.loadModel(hit.createAnchor(), model);
                break;
            }
        }
    }
}

private android.graphics.Point getScreenCorner() {
    View sceneView = arFragment.getArSceneView();
    // 这里用右上角示例,可自行替换为其他角落
    return new android.graphics.Point(sceneView.getWidth() - 100, 100);
}

这样修改后,当ARCore检测到处于追踪状态的平面时,就会自动在屏幕角落对应的平面位置生成你的3D模型了。

内容的提问来源于stack exchange,提问作者Enrique Cruz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:35:15