我正在寻找一些用于一些 2D 和 3D 线性几何操作的库(2D 线之间、3D 线和平面之间的交点,诸如此类),我遇到了看起来又酷又快、可扩展、易于包含的Eigen ,多平台等。
我习惯于考虑具有 x,y,z 属性和特征数据类型的向量中的 2/3D 几何,但我找不到它们:
#include "Eigen/Core"
...
Eigen::Vector2d p1;
double x = p1[0];
double y = p1[1];
为了我个人的方便,我想继承 Vector2d 添加一些舒适的方法,如
Vec2D::x() { return this[0]; }
Vec2D::set(double x, double y) { this[0]=x; this[1]=y; }
....
或者类似的方法。我不是一个有 C++ 经验的程序员,所以我问这是否是正确的方法,以及如何处理模板..