来自维基百科:
叉积是在three-dimensional
空间中对两个向量进行的二元运算,得到另一个垂直于包含两个输入向量的平面的向量。
假设定义只在三维(or seven, one and zero)维度上定义,如何计算两个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类,不知道该使用哪个方法。
https://stackoverflow.com/questions/243945
复制相似问题