问题描述
我目前在做:
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