Как узнать вращение ориентированной ограничительной рамки вокруг оси Y в системе координат? - PullRequest
0 голосов
/ 24 октября 2018

У меня есть ориентированная ограничительная рамка в мировой системе координат.Я хочу узнать его вращение вокруг оси Y в системе координат камеры.

Так ориентированная ограничительная рамка представлена ​​нормированными осями и размерами.

class BoundingBox3D {
public:
    Eigen::Vector3f centroid;
    Eigen::Vector3f size_along_obb_axes;
    // define OBB local coordinate system for the orientation
    Eigen::Vector3f x_axis; 
    Eigen::Vector3f y_axis;
    Eigen::Vector3f z_axis;
}

Кстати, нормализованные оси также составляют столбцы его матрицы вращения относительно мировой системы координат.

У меня есть матрица преобразования системы координат мира в камеру, с помощью которой я преобразую каждую осьв систему координат камеры.Я строю матрицу вращения, используя преобразованные оси в качестве столбцов, и получаю углы Эйлера из матрицы вращения следующим образом:

this->rot_mat << this->transformed_x_axis[0], this->transformed_y_axis[0], this->transformed_z_axis[0],
                         this->transformed_x_axis[1], this->transformed_y_axis[1], this->transformed_z_axis[1],
                         this->transformed_x_axis[2], this->transformed_y_axis[2], this->transformed_z_axis[2];

this->heading_rad = this->rot_mat.eulerAngles(0, 1, 2); //x, y, z  angles in radians

Это правильно?Есть ли лучший способ добиться этого?

...