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 是正确的,并没有真正定义。所以要澄清一下:我正在寻找的是十字产品的长度(基本上是矢量之间角度的正弦,如果我理解正确的话)。
答案 0 :(得分:4)
此问题已经考虑过了,请参阅此feature request。
答案 1 :(得分:0)
叉积的结果是向量,而不是浮点数。无论如何,2D中的交叉产品没有意义。在2D中,结果向量必须与a
和b
垂直,并且它们已经定义了平面,因此结果必须在第3维。