Что означает поза в ARCore? - PullRequest
0 голосов
/ 24 октября 2019

Из документации https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/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, поскольку документация оставила меня в замешательстве?

1 Ответ

1 голос
/ 29 октября 2019

Один из способов думать о позе - это то, что она примерно похожа на английское значение слова - оно говорит вам, где находится объект в мире и в каком направлении он смотрит.

Если вы представляетесоздавая объект в пустом трехмерном месте, а объект состоит из набора точек, тогда каждая из этих точек будет иметь местоположение в вашем пустом трехмерном месте, то есть каждая точка будет иметь координаты топора, y, z.

Когда вы хотите отобразить этот объект в сцене, вам нужно сказать, где в сцене вы хотите разместить его, и вам нужно указать местоположение в терминах координат сцены.

Поза - это то, как вы говорите это, но математически - это преобразование, которое вы делаете для каждой точки вашего объекта, чтобы эта точка появлялась в правильном месте сцены.

Вы можете увидеть это в документации, которую вы связали, когда они говорят,

Преобразование определяется с помощью поворота кватерниона относительно начала координат, за которым следует перевод.

Вращение кватерниона позаботится о том, чтобы ваш объект находился на сцене в правильном направлении, а перевод помещает результат в правильное место на сцене.

...