当前位置: 首页 > 知识库问答 >
问题:

[ARCore][SceneForm]world手机旋转后的位置

邬良才
2023-03-14

我试图在摄像机前创建一个节点。

然而,当我先旋转手机(例如沿Y轴旋转90°),然后在位置(Cameron aPosition. x,Cameron aPosition. y,Cameron aPosition. z-远程节点)上创建节点时,它会在相机的旧位置前面创建节点,就好像手机没有旋转。

据我所知,坐标系没有随着手机移动。如何让前面要创建的节点成为摄像机的新位置?

非常感谢你!

共有1个答案

包子航
2023-03-14

如果旋转摄影机,则摄影机的世界位置不会更改,只会更改其旋转。

为了考虑旋转,您应该使用AR帧中的摄影机姿势或使用Sceneform的摄影机从屏幕中心创建光线,并沿该光线定位节点。

 类似资料:
  • 在HelloSceneform中,在替换这些行时。。。 ... 使用这些行,然后启动应用程序。 这导致以下效果:即使子节点位于父节点之上,旋转电话也会导致子节点移动到父节点的后面。 当子节点的中心或局部位置的值不同于0时,会发生这种情况。 这个问题在7月份首先报告给ARCore,然后在8月底报告给Sceneform,仍然被两个团队完全忽略。这样ARCore对我来说是完全不可用的。任何解决这个问题的

  • 我目前正在研究示例sceneform应用程序,我注意到当我运行它时,当我用一个手指拖动它和用两个手指旋转它时,我可以翻译模型。 我要做的是两个手指在屏幕上和移动时要做的平移,以及只有一个手指左/右移动的旋转。

  • 我正在试着翻译场景表单1.15。要与ARCore 1.18一起使用的0的增强图像示例。0和场景窗体1.16。0。(请注意,GitHub上的Sceneform 1.16.0存储库仅附带gltfio加载程序示例)。 我的目标是使用GLTFIO库加载动画GLTFs/GLBs以在图像上显示。(在Sceneform 1.16.0的早期版本中提供的Android Studio插件机制无法实现此功能)。 通过这

  • 假设我使用大小为8的字符数组来表示图像的碰撞掩码。字符的每一位代表一个像素。实际上,对于64x64矩阵,我将使用长[64]阵列。 因此,框将显示为: 45度的示例输出应该是这样的,尽管旋转可以是任何角度。这个形状对于45度旋转可能不准确,因为我是用手做的。 另一个例子是向右旋转10度?这些值可能是错误的,因为从数学上讲,我不知道它将如何精确旋转,但我认为可以安全地假设,如果每个位的覆盖率超过旧形状

  • 不是每次触摸屏幕都放置一个模型的新实例(就像在quickstart&codelab中那样),而是尝试让每次触摸都将模型重新定位到那个位置,同时仍然保留拖动和缩放交互。 有什么想法吗?

  • 假设我有三个锚,来自阿拉片段的命中结果。 锚定=命中结果。createAnchor(); 如何使用Sceneform绘制三角形并应用自定义纹理?