姿势在ARCore中是什么意思?

问题描述 投票:0回答:1

摘自文档https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/Pose我看到Pose意味着有一个不变的锚点。但是我不确定在下面的代码中如何在两点之间画一条线:

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的信息,因为文档让我更加困惑吗?

java arcore sceneform
1个回答
0
投票

思考姿势的一种方法是,它与单词的英语含义大致相似-它告诉您对象在世界上的位置以及所面向的方向。

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

[要在场景中显示该对象时,需要说出要在场景中放置对象的位置,并且需要根据场景的坐标指定位置。

Pose是您这样说,但是从数学上讲-这是您对对象中每个点所做的​​变换,以使该点出现在场景中的正确位置。

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

使用围绕原点的四元数旋转并进行平移来定义转换。

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

© www.soinside.com 2019 - 2024. All rights reserved.