如何找到仅与第一平面相交的,距屏幕中心的射线与相机之间的距离?

时间:2019-07-23 10:32:51

标签: android unity3d arcore sceneform

我想在第一个检测到的平面上放置一个模型,并且它应与与第一个检测到的平面相交的相机射线平移。我已经计算出第一个检测到的平面和相机之间的距离。

Camera camera = arSceneView.getScene().getCamera();
            Vector3 distance = Vector3.subtract(camera.getWorldPosition(), vector3CirclePosition);
            float abs = Math.abs(distance.y);
            float newAngleInRadian = (float) (Math.toRadians(90f) - (float) camera.getLocalRotation().x);
            float zCoordinate = (float) (abs / Math.cos(newAngleInRadian));
            Log.i("1", "zCoordinate::" + zCoordinate + "::" + abs);
            Vector3 cameraPos = arFragment.getArSceneView().getScene().getCamera().getWorldPosition();
            Vector3 cameraForward = arFragment.getArSceneView().getScene().getCamera().getForward();
            Vector3 position = Vector3.add(cameraPos, cameraForward.scaled(zCoordinate));
            redNodeCenter.setWorldPosition(position);

0 个答案:

没有答案