ウィキペディアから:
外積は、3次元ユークリッド空間内の2つのベクトルに対する二項演算であり、2つの入力ベクトルを含む平面に垂直な別のベクトルになります。
定義が3次元(または7次元、1次元、ゼロ次元)でのみ定義されているとすると、2つの2次元ベクトルの外積をどのように計算しますか?
私は2つの実装を見てきました。1つは新しいベクトルを返し(ただし、単一のベクトルのみを受け入れます)、もう1つはスカラーを返します(ただし、2つのベクトル間の計算です)。
実装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クラスを作成していて、どのメソッドを使用するかわからないためです。