【问题标题】:Rotating and moving static object in ArCore在 ArCore 中旋转和移动静态对象
【发布时间】:2019-12-15 17:58:28
【问题描述】:

我正在使用 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);

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

这就是它目前的样子。我想将箭头向下和向左移动并向前倾斜。然后它应该能够左右旋转。感谢您的帮助。

【问题讨论】:

    标签: java android augmented-reality arcore


    【解决方案1】:

    用下面的代码解决了:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-19
      • 2018-08-02
      • 1970-01-01
      • 2013-04-02
      • 2021-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多