有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在ArCore中旋转和移动静态对象

我正在使用ArCore中的相机锚来创建场景中的静态对象

float scaleFactor = 1.0f;

camera.getPose().toMatrix(cameraAnchorMatrix, 0);
// Update and draw the model and its shadow.
Matrix.rotateM(cameraAnchorMatrix, 0, 110, 0f, 1f, 0f);

virtualObject.updateModelMatrix(cameraAnchorMatrix, scaleFactor / 10);
virtualObject.draw(viewmtx, projmtx, colorCorrectionRgba);

然而,旋转对象有时会使其不可见,同时平移对象似乎也不起作用。我也在猜测旋转的值。此外,从顶部可以看到物体,如何使其看起来更自然?(这是一个应该指示方向的箭头。) 如何将对象移动到屏幕的左下角并从左向右旋转

enter image description here

这就是目前的情况。我想将箭头向下向左移动,同时将其向前倾斜。然后它应该能够左右旋转。谢谢你的帮助


共 (1) 个答案

  1. # 1 楼答案

    用以下代码解决了这个问题:

    camera.getPose().compose(Pose.makeTranslation(0.37f, -0.17f, -1f)).extractTranslation().toMatrix(cameraAnchorMatrix, 0);           
    

    这会使对象出现在相机的“后面”,并将其移动到左下角。然后可以使用角度值旋转对象:

     Matrix.rotateM(cameraAnchorMatrix, 0, 230 - directionChange, 0f, 1f, 0f);