特征2D交叉积

时间:2015-10-08 06:21:14

标签: c++ vector geometry eigen eigen3

Eigen可以做2D交叉产品吗?

我试图替换此代码:

Eigen::Vector2f a, b;
float result = a.x()*b.y() - b.x()*a.y();

有了这个:

Eigen::Vector2f a, b;
float result = a.cross(b);

然而,这给了我以下错误:

error C2338: THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE

更新

当然 Avi Ginsburg 是正确的,并没有真正定义。所以要澄清一下:我正在寻找的是十字产品的长度(基本上是矢量之间角度的正弦,如果我理解正确的话)。

2 个答案:

答案 0 :(得分:4)

此问题已经考虑过了,请参阅此feature request

答案 1 :(得分:0)

叉积的结果是向量,而不是浮点数。无论如何,2D中的交叉产品没有意义。在2D中,结果向量必须与ab垂直,并且它们已经定义了平面,因此结果必须在第3维。