13. Componentes paralela y perpendicular

Respecto de una dirección elegida, todo vector puede separarse en un aporte paralelo y otro perpendicular cuya suma recupera el original.

13.1 Elegir una dirección relevante

Los ejes cartesianos no siempre coinciden con las direcciones más útiles de un problema. Cerca de una rampa interesa distinguir lo que actúa a lo largo de la superficie de lo que actúa perpendicularmente a ella. En una trayectoria importa separar las velocidades tangencial y normal.

Dado un vector a y una dirección no nula d, construiremos dos vectores: a∥, paralelo a d, y a⊥, perpendicular a d.

a = a∥ + a⊥

13.2 Componente paralela

La componente paralela es la proyección vectorial de a sobre d:

a∥ = proyd(a) = [(a·d)/|d|²]d

Si u es la versión unitaria de d, la misma fórmula se escribe (a·u)u.

13.3 Componente perpendicular

Después de extraer el aporte paralelo, el resto es perpendicular:

a⊥ = a − a∥

Esta operación también se denomina rechazo vectorial. El producto escalar a⊥·d debe ser cero, salvo pequeñas diferencias de redondeo.

function separar(a, direccion) {
  const d2 = direccion.x ** 2 + direccion.y ** 2;
  if (d2 === 0) return null;
  const factor = (a.x * direccion.x + a.y * direccion.y) / d2;
  const paralela = { x: factor * direccion.x, y: factor * direccion.y };
  const perpendicular = { x: a.x - paralela.x, y: a.y - paralela.y };
  return { paralela, perpendicular };
}

console.log(separar({ x: 6, y: 4 }, { x: 3, y: 1 }));

13.4 Ejemplo paso a paso

Sea a = (6, 4) y d = (3, 1).

  1. a·d = 22.
  2. |d|² = 10.
  3. Factor paralelo = 22/10 = 2,2.
  4. a∥ = 2,2(3, 1) = (6,6; 2,2).
  5. a⊥ = (6, 4) − (6,6; 2,2) = (−0,6; 1,8).

La reconstrucción da (6, 4) y la comprobación perpendicular es (−0,6)·3 + 1,8·1 = 0.

13.5 Componentes escalares firmadas

Con una dirección unitaria u, la componente escalar paralela es a∥ = a·u. Para el eje perpendicular podemos elegir n = (−uy, ux) y calcular a⊥ = a·n.

a = a∥u + a⊥n

Los signos indican los sentidos respecto de los ejes locales elegidos.

13.6 Relación entre los módulos

Como las dos componentes son perpendiculares, forman un triángulo rectángulo:

|a|² = |a∥|² + |a⊥|²

Esta identidad comprueba la descomposición y se conoce como relación de Pitágoras para componentes ortogonales.

13.7 El signo de la componente paralela

Si a forma un ángulo agudo con d, la componente escalar paralela es positiva. Si el ángulo es obtuso, es negativa y el vector paralelo apunta contra d. Si son perpendiculares, la componente paralela es nula y todo a pertenece al aporte perpendicular.

Casos límite de la separación.
RelaciónComponente paralelaComponente perpendicular
a paralelo a da0
a opuesto a da, con coeficiente firmado negativo0
a perpendicular a d0a
a nulo00

13.8 Distancia de un punto a una recta

Una recta pasa por P y tiene dirección d. Para un punto X, formamos a = X − P. La longitud de su componente perpendicular es la distancia más corta desde X hasta la recta.

distancia(X, recta) = |(X − P)⊥|
function distanciaARecta(punto, puntoRecta, direccion) {
  const a = { x: punto.x - puntoRecta.x, y: punto.y - puntoRecta.y };
  const d2 = direccion.x ** 2 + direccion.y ** 2;
  if (d2 === 0) return null;
  const factor = (a.x * direccion.x + a.y * direccion.y) / d2;
  const perpendicular = {
    x: a.x - factor * direccion.x,
    y: a.y - factor * direccion.y
  };
  return Math.hypot(perpendicular.x, perpendicular.y);
}

console.log(distanciaARecta({ x: 4, y: 5 }, { x: 1, y: 1 }, { x: 3, y: 0 }));

13.9 Movimiento sobre una superficie

Si un objeto está restringido a desplazarse sobre una superficie, podemos conservar la componente tangencial de su velocidad y eliminar la normal que lo introduciría en la superficie:

vdeslizamiento = v − proyn(v)

Aquí n es la normal de la superficie. En 2D, el resultado queda paralelo a la línea de la superficie.

13.10 Velocidad normal y detección de acercamiento

La componente de una velocidad relativa sobre una normal indica si dos objetos se acercan o se separan. El signo depende de la orientación elegida para la normal.

Este valor es útil para filtrar contactos: si los objetos ya se separan, no corresponde aplicar una corrección que vuelva a empujarlos. El tratamiento completo pertenece al estudio de colisiones.

13.11 Componente de la gravedad en una rampa

En una rampa elegimos un unitario tangente t y uno normal n. La gravedad g se separa como (g·t)t + (g·n)n.

El aporte paralelo describe la tendencia a deslizar; el perpendicular expresa cuánto apunta la gravedad contra la superficie. No estamos creando dos gravedades: son componentes de la misma aceleración.

13.12 Laboratorio de separación

Modificá el vector a y el ángulo de la dirección d. La construcción muestra las componentes paralela y perpendicular en cadena.

Unitario u
Componente firmada
a∥
a⊥
a∥ · a⊥

El vector se reconstruye sumando ambas componentes.

13.13 Implementación reusable

Una función práctica puede devolver ambas componentes y los coeficientes necesarios para inspección:

function componentesRespectoDe(a, direccion) {
  const modulo = Math.hypot(direccion.x, direccion.y);
  if (modulo === 0) return null;
  const u = { x: direccion.x / modulo, y: direccion.y / modulo };
  const escalar = a.x * u.x + a.y * u.y;
  const paralela = { x: escalar * u.x, y: escalar * u.y };
  const perpendicular = { x: a.x - paralela.x, y: a.y - paralela.y };
  return { u, escalar, paralela, perpendicular };
}

console.log(componentesRespectoDe({ x: 5, y: 2 }, { x: 1, y: 1 }));

13.14 Errores frecuentes

  • Confundir el vector paralelo con su componente escalar firmada.
  • Calcular la perpendicular proyectando otra vez sobre la misma dirección.
  • Olvidar restar la paralela al vector original.
  • Suponer que la componente paralela siempre tiene coeficiente positivo.
  • Usar una dirección nula.
  • Considerar las componentes como efectos físicos adicionales.
  • No comprobar reconstrucción y ortogonalidad.

13.15 Ejercicio integrador

Un objeto tiene velocidad v = (7, −1) m/s cerca de una superficie cuya dirección tangente es t = (2, 1).

  1. Normalizá la dirección tangente.
  2. Calculá la componente escalar paralela.
  3. Obtené los vectores paralelo y perpendicular.
  4. Comprobá que se reconstruye v y que las componentes son ortogonales.
  5. Calculá el módulo de la velocidad perpendicular.
Ver solución y código

|t| = √5 y u = (2/√5; 1/√5). La componente firmada vale 13/√5. La paralela es (5,2; 2,6) m/s y la perpendicular (1,8; −3,6) m/s. Su suma es (7, −1), su producto escalar es cero y el módulo perpendicular es aproximadamente 4,02 m/s.

const v = { x: 7, y: -1 };
const t = { x: 2, y: 1 };
const mt = Math.hypot(t.x, t.y);
const u = { x: t.x / mt, y: t.y / mt };
const escalar = v.x * u.x + v.y * u.y;
const paralela = { x: escalar * u.x, y: escalar * u.y };
const perpendicular = { x: v.x - paralela.x, y: v.y - paralela.y };
const ortogonalidad = paralela.x * perpendicular.x + paralela.y * perpendicular.y;

console.log({ u, escalar, paralela, perpendicular, ortogonalidad });
console.log("Módulo perpendicular:", Math.hypot(perpendicular.x, perpendicular.y));

13.16 Ideas para recordar

  • Todo vector se separa en aportes paralelo y perpendicular a una dirección no nula.
  • La componente paralela es una proyección vectorial.
  • La perpendicular se obtiene restando la paralela al vector original.
  • Ambas componentes reconstruyen el vector y son ortogonales.
  • Sus módulos cumplen una relación pitagórica.
  • La componente paralela firmada puede ser negativa.
  • La separación resulta útil en rampas, restricciones, distancias y contactos.

En el próximo tema extenderemos el trabajo vectorial a tres dimensiones.