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是对的,但它并没有真正定义。所以澄清一下:我正在寻找的是叉积的长度(基本上是向量之间角度的正弦,如果我理解正确的话)。
叉积的结果是向量,而不是浮点数。无论如何,二维叉积没有意义。在 2D 中,结果向量必须垂直于
a
和 b
并且它们已经定义了平面,因此结果必须在第三维中。