-
Anonymous
Результаты использования Eigen для вычисления матрицы на C++ различаются на платформах Linux и Windows.
Сообщение
Anonymous »
Я использую Eigen для вычисления матрицы вращения и запускаю один и тот же код C++ на платформах Linux и Windows следующим образом:
Код: Выделить всё
void testEigen()
{
Eigen::AngleAxisd xRot(0.0, Eigen::Vector3d::UnitX());
Eigen::AngleAxisd yRot(-M_PI/2, Eigen::Vector3d::UnitY());
Eigen::AngleAxisd zRot( M_PI/2, Eigen::Vector3d::UnitZ());
Eigen::Quaternion q = xRot * yRot * zRot;
auto _rotationMatrix = q.matrix();
// for (size_t i = 0; i < 3; i++)
// {
// for (size_t j = 0; j < 3; j++)
// {
// if (std::abs(_rotationMatrix(i, j)) < 1e-13)
// {
// _rotationMatrix(i, j) = 0.0;
// }
// if (std::abs((std::abs(_rotationMatrix(i, j)) - 1.0)) < 1e-13)
// {
// _rotationMatrix(i, j) = _rotationMatrix(i, j) < 0 ? -1.0 : 1.0;
// }
// }
// }
TRACE(4, "angle axisd x: "
Подробнее здесь: [url]https://stackoverflow.com/questions/79274002/the-results-of-using-eigen-to-calculate-matrix-in-c-are-different-on-linux-and[/url]
1733984076
Anonymous
Я использую Eigen для вычисления матрицы вращения и запускаю один и тот же код C++ на платформах Linux и Windows следующим образом:
[code]void testEigen()
{
Eigen::AngleAxisd xRot(0.0, Eigen::Vector3d::UnitX());
Eigen::AngleAxisd yRot(-M_PI/2, Eigen::Vector3d::UnitY());
Eigen::AngleAxisd zRot( M_PI/2, Eigen::Vector3d::UnitZ());
Eigen::Quaternion q = xRot * yRot * zRot;
auto _rotationMatrix = q.matrix();
// for (size_t i = 0; i < 3; i++)
// {
// for (size_t j = 0; j < 3; j++)
// {
// if (std::abs(_rotationMatrix(i, j)) < 1e-13)
// {
// _rotationMatrix(i, j) = 0.0;
// }
// if (std::abs((std::abs(_rotationMatrix(i, j)) - 1.0)) < 1e-13)
// {
// _rotationMatrix(i, j) = _rotationMatrix(i, j) < 0 ? -1.0 : 1.0;
// }
// }
// }
TRACE(4, "angle axisd x: "
Подробнее здесь: [url]https://stackoverflow.com/questions/79274002/the-results-of-using-eigen-to-calculate-matrix-in-c-are-different-on-linux-and[/url]