6
计算2D向量的叉积
从维基百科: 叉积是在三维欧几里得空间中对两个向量的二进制运算,其结果是另一个向量垂直于包含两个输入向量的平面。 假设定义仅以三个(或七个,一和零)维定义,那么一个如何计算两个2d向量的叉积? 我已经看到了两种实现。一个返回一个新向量(但仅接受单个向量),另一个返回标量(但是两个向量之间的计算)。 实现1(返回一个标量): float CrossProduct(const Vector2D & v1, const Vector2D & v2) const { return (v1.X*v2.Y) - (v1.Y*v2.X); } 实现2(返回向量): Vector2D CrossProduct(const Vector2D & v) const { return Vector2D(v.Y, -v.X); } 为什么要采用不同的实现方式?我将把标量实现用于什么?矢量实现将用于什么? 我问的原因是因为我自己在编写Vector2D类,却不知道使用哪种方法。