15.1 Una multiplicación con resultado vectorial
El producto vectorial o producto cruz de a y b se escribe a × b. A diferencia del producto escalar, su resultado es un vector perpendicular al plano que contienen los operandos.
Su módulo mide cuánto se separan angularmente y cuánto abarcan juntos. Su sentido se determina mediante una orientación convenida.
15.2 Definición geométrica
Si θ es el menor ángulo entre dos vectores:
El seno vale cero para vectores paralelos y alcanza su máximo para vectores perpendiculares. Por eso el producto mide la parte de un vector transversal al otro.
15.3 Cálculo por componentes
Para a = (ax, ay, az) y b = (bx, by, bz):
(a × b)y = azbx − axbz
(a × b)z = axby − aybx
function cruz(a, b) {
return {
x: a.y * b.z - a.z * b.y,
y: a.z * b.x - a.x * b.z,
z: a.x * b.y - a.y * b.x
};
}
console.log(cruz({ x: 1, y: 0, z: 0 }, { x: 0, y: 1, z: 0 }));15.4 Regla de la mano derecha
En un sistema de mano derecha, orientamos los dedos de la mano derecha desde a hacia b por el giro más corto. El pulgar extendido señala el sentido de a × b.
Para la base estándar:
Invertir cualquiera de estos órdenes cambia el signo.
15.5 El orden importa
La operación es anticonmutativa. Ambos resultados tienen igual módulo y dirección, pero sentidos contrarios. No podemos intercambiar operandos como en el producto escalar.
const cruz = (a, b) => ({
x: a.y * b.z - a.z * b.y,
y: a.z * b.x - a.x * b.z,
z: a.x * b.y - a.y * b.x
});
const a = { x: 2, y: 1, z: 0 };
const b = { x: 0, y: 3, z: 1 };
console.log("a × b", cruz(a, b));
console.log("b × a", cruz(b, a));15.6 Perpendicularidad del resultado
El vector c = a × b cumple:
Estas igualdades sirven para comprobar una implementación. Cuando los datos son aproximados se evalúan con tolerancia.
15.7 Casos nulos
- Si alguno de los operandos es el vector nulo, el producto es nulo.
- Si son paralelos con el mismo sentido, sen 0° = 0.
- Si son paralelos con sentidos opuestos, sen 180° = 0.
- El producto de un vector consigo mismo es nulo.
Un resultado nulo no define una normal única al plano: si los vectores son paralelos, existen infinitos planos que los contienen.
15.8 Área orientada
El módulo |a × b| es el área del paralelogramo construido con ambos vectores. El área del triángulo correspondiente es la mitad.
área del triángulo = ½|a × b|
El vector completo agrega una orientación perpendicular al área.
const a = { x: 3, y: 0, z: 0 };
const b = { x: 1, y: 4, z: 0 };
const c = { x: 0, y: 0, z: a.x * b.y - a.y * b.x };
const areaParalelogramo = Math.hypot(c.x, c.y, c.z);
console.log(areaParalelogramo, areaParalelogramo / 2);15.9 Producto vectorial en 2D
Si a = (ax, ay, 0) y b = (bx, by, 0), las componentes x e y del producto son cero:
Un valor positivo indica que el giro más corto de a hacia b es antihorario; uno negativo indica giro horario. Esto se usa para orientación de puntos y geometría computacional.
15.10 Normal de una superficie
Dos direcciones no paralelas contenidas en una superficie plana permiten obtener una normal mediante el producto vectorial. Normalizar el resultado produce una normal unitaria.
Intercambiar el orden de las direcciones invierte la normal. En gráficos 3D, el orden de los vértices de un triángulo determina qué cara se considera frontal.
15.11 Aplicación física: momento de una fuerza
El momento o torque de una fuerza respecto de un punto se representa mediante:
r va desde el punto de referencia hasta el punto de aplicación. El módulo es rF sen θ y el sentido indica el eje de giro. Aquí lo presentamos como aplicación vectorial; su dinámica se estudiará al abordar rotaciones.
15.12 Unidades
Las unidades de los operandos se multiplican. Dos desplazamientos en metros producen un vector de área en m². Posición en metros por fuerza en newtons produce N·m.
Aunque N·m tiene la misma expresión dimensional que el joule, torque y energía representan conceptos distintos y no se intercambian simplemente por compartir unidades.
15.13 Laboratorio del producto vectorial
Modificá a y b, rotá la vista arrastrando y observá el vector a × b. El paralelogramo muestra el área asociada.
El resultado es perpendicular a ambos operandos.
15.14 Implementación robusta
Una función puede devolver producto, módulo y estado de degeneración. La tolerancia debe escalar con los módulos de entrada:
function analizarCruz(a, b, epsilon = 1e-10) {
const producto = {
x: a.y * b.z - a.z * b.y,
y: a.z * b.x - a.x * b.z,
z: a.x * b.y - a.y * b.x
};
const modulo = Math.hypot(producto.x, producto.y, producto.z);
const escala = Math.hypot(a.x, a.y, a.z) * Math.hypot(b.x, b.y, b.z);
return { producto, modulo, degenerado: modulo <= epsilon * escala };
}
console.log(analizarCruz({ x: 1, y: 2, z: 3 }, { x: 2, y: 4, z: 6 }));15.15 Errores frecuentes
- Confundir producto vectorial con producto escalar.
- Intercambiar operandos sin invertir el signo.
- Equivocarse en el signo de la componente y.
- Aplicar la regla de la mano izquierda en un sistema de mano derecha.
- Normalizar un resultado nulo.
- Confundir el módulo del producto con el vector completo.
- Olvidar que un vector normal depende del orden de los lados.
- Interpretar N·m como energía sin considerar el contexto.
15.16 Ejercicio integrador
Sean a = (2, −1, 3) m y b = (1, 4, −2) m.
- Calculá a × b.
- Comprobá que el resultado es perpendicular a ambos.
- Calculá el área del paralelogramo y del triángulo.
- Obtené b × a.
- Construí la normal unitaria con el sentido de a × b.
Ver solución y código
a × b = (−10, 7, 9) m². Sus productos escalares con a y b valen cero. El módulo y área del paralelogramo es √230 ≈ 15,17 m²; el área triangular es ≈ 7,58 m². b × a = (10, −7, −9) m².
const a = { x: 2, y: -1, z: 3 };
const b = { x: 1, y: 4, z: -2 };
const c = {
x: a.y * b.z - a.z * b.y,
y: a.z * b.x - a.x * b.z,
z: a.x * b.y - a.y * b.x
};
const modulo = Math.hypot(c.x, c.y, c.z);
const normal = { x: c.x / modulo, y: c.y / modulo, z: c.z / modulo };
const punto = (u, v) => u.x*v.x + u.y*v.y + u.z*v.z;
console.log({ c, modulo, areaTriangulo: modulo / 2, normal });
console.log("Comprobaciones:", punto(c, a), punto(c, b));15.17 Ideas para recordar
- El producto vectorial produce un vector perpendicular a los operandos.
- Su módulo es |a||b| sen θ.
- Su sentido sigue la regla de la mano derecha.
- El orden importa: a×b = −(b×a).
- El resultado es nulo para vectores paralelos o algún operando nulo.
- Su módulo representa un área de paralelogramo.
- En 2D, la componente z determina orientación horaria o antihoraria.
- Permite construir normales y representar momentos de fuerza.
En el próximo tema estudiaremos el producto triple y el volumen orientado.