Da wikipedia:
o produto vetorial é uma operação binária em dois vetores em um espaço euclidiano tridimensional que resulta em outro vetor perpendicular ao plano que contém os dois vetores de entrada.
Dado que a definição é definida apenas em três ( ou sete, um e zero ) dimensões, como calcular o produto vetorial de dois vetores 2D?
Eu vi duas implementações. Um retorna um novo vetor (mas só aceita um único vetor), o outro retorna um escalar (mas é um cálculo entre dois vetores).
Implementação 1 (retorna um escalar):
float CrossProduct(const Vector2D & v1, const Vector2D & v2) const
{
return (v1.X*v2.Y) - (v1.Y*v2.X);
}
Implementação 2 (retorna um vetor):
Vector2D CrossProduct(const Vector2D & v) const
{
return Vector2D(v.Y, -v.X);
}
Por que as implementações variadas? Para que eu usaria a implementação escalar? Para que eu usaria a implementação do vetor?
O motivo de minha pergunta é porque estou escrevendo uma classe Vector2D e não sei qual método usar.