叉乘的集合意义是已知道N维空间中的N-1个基向,可以求出与这N-1个基向量正交的另一个基向量吧.
有的书上说叉乘只在3维上有定义,就是vec1和vec2相乘得:
(vec1.y * vec2.z - vec1.z * vec2.y,
vec1.z * vec2.x - vec1.x * vec2.z,
vec1.x * vec2.y - vec1.y * vec2.x )
其实(我觉得)如果是2维的话那就是一个向量,求它的垂直向量就是叉乘了.
4维向量的叉乘应该是3个向量相乘.按照某些网上的说法来说是这样定义的:
V1 x V2 x V3 =
¦i. j. k. l. ¦
¦x1 y1 z1 w1 ¦
¦x2 y2 z2 w2 ¦
¦x3 y3 z3 w3 ¦
其中i,j,k,l是4维空间中的4个基向量.
但我通过程序代码实现后发现测试不对.叉乘我是这么写的:
inline Vector4 Vector_Util::cross_product(const Vector4& vec1, const Vector4& vec2, const Vector4& vec3)
{
/*
V1 x V2 x V3 =
¦i. j. k. l. ¦
¦x1 y1