Eigen C++:将二维极坐标转换为笛卡尔坐标的最佳方法

问题描述

我目前在做:

Eigen::Vector2d polar(2.5,3 * M_PI / 4);
Eigen::Vector2d cartesian = polar.x() * Vector2d(cos(polar.y()),sin(polar.y()));

但我不确定这是否是使用 Eigen 的正确方法,或者是否有更好的内置方法

谢谢!

解决方法

如果您想坚持使用 Eigen,这对我来说是正确的。

通常,尽管极坐标表示有角度,但为了减少将来可能犯的错误(例如将多个角度相加而不处理事实上 0 == 2*PI)。也许你可以用结构来代替:

Eigen::Vector2d