Da wikipedia:
il prodotto incrociato è un'operazione binaria su due vettori in uno spazio euclideo tridimensionale che risulta in un altro vettore perpendicolare al piano contenente i due vettori di input.
Dato che la definizione è definita solo in tre ( o sette, una e zero ) dimensioni, come si calcola il prodotto incrociato di due vettori 2d?
Ho visto due implementazioni. Uno restituisce un nuovo vettore (ma accetta solo un singolo vettore), l'altro restituisce uno scalare (ma è un calcolo tra due vettori).
Implementazione 1 (restituisce uno scalare):
float CrossProduct(const Vector2D & v1, const Vector2D & v2) const
{
return (v1.X*v2.Y) - (v1.Y*v2.X);
}
Implementazione 2 (restituisce un vettore):
Vector2D CrossProduct(const Vector2D & v) const
{
return Vector2D(v.Y, -v.X);
}
Perché le diverse implementazioni? Per cosa dovrei usare l'implementazione scalare? Per cosa utilizzerei l'implementazione del vettore?
Il motivo per cui lo chiedo è perché sto scrivendo una classe Vector2D da solo e non so quale metodo usare.