如何用glm计算vec4交叉积?

Kim*_*imi 4 math vectormath

为什么会抛出编译错误:没有匹配函数来调用'cross(glm :: vec4&,glm :: vec4&)'

glm::vec4 a;
glm::vec4 b;
glm::vec4 c = glm::cross(a, b);
Run Code Online (Sandbox Code Playgroud)

但它适用于vec3?

Nic*_*las 8

没有4D 矢量交叉积的东西 ; 该操作仅针对3D矢量定义.嗯,从技术上讲,有一个维矢量交叉产品,但不知怎的,我不认为你正在寻找那个.

由于4D向量交叉积在数学上不合理,因此GLM不提供计算它的函数.

  • 实际上叉积存在于任何维度,2元3D叉积只是它的一个特例。在 N 维中,叉积需要 N-1 个向量,并且在数学上定义为 N-1 个向量的楔积的霍奇对偶。它可以以矩阵形式相对容易地编写和计算。 (4认同)