java - 如何将 AR 对象旋转到位?

标签 java android arcore quaternions

我尝试使用 quaternion.axisAngle 就地旋转 AR 对象,但它不起作用。

我只是想让一个物体原地旋转,like this .

这是我的代码。

//Right Rotation
ImageButton.OnTouchListener controll_BtnRigntRoation = new ImageButton.OnTouchListener() {
    @Override
    public boolean onTouch(View controllRightDown, MotionEvent event) {
        if (controllRightDown == mRightRoation) {
            ma.initModel();
            for (int i=0; i<ma.infoArray.size(); i++) {
                if (ma.infoArray.get(i).getNode().isSelected()) {
                    int finalI = i;
                    ma.arFragment.getArSceneView().getScene().addOnUpdateListener(frameTime -> {
                        Quaternion r1 = Quaternion.axisAngle(new Vector3(0, 0, 1), frameTime.getStartSeconds()* 180); //y 방향으로는 안됨..
                        ma.infoArray.get(finalI).getNode().setLocalRotation(r1);
                    });
                }
            }
        }
        return false;
    }
};

请帮助我。

最佳答案

您很可能想要使用可变形节点 - 这将允许您执行我认为您正在寻找的旋转类型:

使用示例:

           var newAnchorNode:AnchorNode = AnchorNode(newAnchor)
           anchorNode.setParent(arFragment.getArSceneView().getScene());
           var transNode = TransformableNode(arFragment.transformationSystem)

           //Rotate the node - i.e set the direction it is 'looking'
           transNode.setLookDirection(Vector3(0f, xPoint, yPoint), topDirection)

           //Set it's parent to the anchor you created and set
           //the renderable
           transNode.setParent(anchorNode);
           transNode.setRenderable(renderable);

关于java - 如何将 AR 对象旋转到位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62062831/

相关文章:

android - Codenvy 与 Gradle for Android

android - 通知未打开正确的 Activity

android - 我的自定义 selinux 策略似乎被 android 系统忽略了

java - ARCore – 禁用 ModelRenderable 的移动

java - Sceneform:将 WebRTC 媒体流渲染到 ExternalTexture

java - Play 2.2.1 : ambiguous implicit values for object PlayMagicForJava

Java:可以访问父类(super class)字段和方法的策略模式?

java - 将 Java FX 表单数据添加到 ArrayList

Java多客户端聊天应用程序-发送消息问题

java - 如何使用 Frame ARCore 获取翻译?