java - ARCore 中的 Pose 是什么意思?

标签 java arcore sceneform

来自文档 https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/Pose 我看到 Pose 意味着有一个不可变的 anchor 。但我不太确定它在以下代码中如何工作,其中在两点之间绘制一条线:

Pose point1;
                    // draw first cube
                    Pose point0 = getPose(anchors.get(0));
                    drawObj(point0, cube, viewmtx, projmtx, lightIntensity);
                    checkIfHit(cube, 0);
                    // draw the rest cube
                    for(int i = 1; i < anchors.size(); i++){
                        point1 = getPose(anchors.get(i));
                        log("onDrawFrame()", "before drawObj()");
                        drawObj(point1, cube, viewmtx, projmtx, lightIntensity);
                        checkIfHit(cube, i);
                        log("onDrawFrame()", "before drawLine()");
                        float distanceCm = ((int)(getDistance(point0, point1) * 1000))/10.0f;
                        drawLine(point0, point1, viewmtx, projmtx);

谁能解释一下有关 Pose 的更多信息,因为文档让我更加困惑?

最佳答案

理解姿势的一种方式是,它与该词的英文含义大致相似 - 它告诉您一个物体在世界上的位置以及它面向的方向。

如果您想象在空白 3D 位置中创建一个对象,并且该对象由一组点组成,那么每个点都将在您的空白 3D 位置中拥有一个位置 - 即每个点都有一个 x,y ,z 坐标。

当您想要在场景中显示该对象时,您需要说明要将其放置在场景中的位置,并且需要根据场景坐标指定位置。

姿势就是你所说的,但从数学上来说 - 它是你对对象中的每个点进行的变换,以使该点出现在场景中的正确位置。

您可以在链接的文档中看到这一点,他们说

The transformation is defined using a quaternion rotation about the origin followed by a translation.

四元数旋转负责确保您的对象在场景中面向正确的方向,并且平移将结果放置在场景中的正确位置。

关于java - ARCore 中的 Pose 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58535816/

相关文章:

android - 在 ARCore Android 中将对象放置在相机前面

java - ARCore – 禁用 ModelRenderable 的移动

java - 删除开放 JDK

java - 如何传递对抽象类的引用 - Java

java - 清理链表元素使用的内存

java - 学习编程的教育游戏?

java - 有没有办法用 ARCore 相机设置自动对焦?

swift - 我可以使用 ARKit 一次跟踪 4 张以上的图像吗?

android - 如何将YUV_420_888图像转换为位图

unity-game-engine - AR 应用程序的多边形数量限制是什么?