47. Traslaciones horizontales

Una traslación horizontal mueve el gráfico de una función hacia la derecha o hacia la izquierda modificando su entrada.

47.1 Introducción

Una traslación horizontal desplaza el gráfico de una función sobre el eje X. La forma de la curva se conserva, pero sus puntos aparecen más a la derecha o más a la izquierda.

Este tipo de transformación es muy útil para retrasar señales, mover trayectorias, ajustar gráficos y controlar en qué momento ocurre un comportamiento.

47.2 Forma general

Si tenemos una función base f(x), una traslación horizontal se escribe cambiando la entrada de la función.

g(x) = f(x - h)

Cuando h es positivo, el gráfico se desplaza hacia la derecha. Cuando h es negativo, se desplaza hacia la izquierda.

47.3 Por qué aparece x - h

La expresión puede parecer invertida al principio. Si usamos f(x - 3), el gráfico se mueve 3 unidades hacia la derecha.

Esto ocurre porque la función transformada necesita que x valga 3 unidades más para producir el mismo valor que antes.

f(0) en la función original aparece en x = 3 para g(x) = f(x - 3)

47.4 Función base

Usaremos una función cuadrática simple para observar el desplazamiento.

function cuadratica(x) {
  return x * x;
}

console.log(cuadratica(-2));
console.log(cuadratica(0));
console.log(cuadratica(2));

47.5 Desplazar hacia la derecha

Para mover una función hacia la derecha, se resta una cantidad dentro de la entrada.

g(x) = f(x - 2)
function cuadratica(x) {
  return x * x;
}

function derecha(x) {
  return cuadratica(x - 2);
}

console.log(derecha(0));
console.log(derecha(2));
console.log(derecha(4));

El mínimo de la parábola, que antes estaba en x = 0, ahora aparece en x = 2.

47.6 Desplazar hacia la izquierda

Para mover una función hacia la izquierda, se suma una cantidad dentro de la entrada.

g(x) = f(x + 2)
function cuadratica(x) {
  return x * x;
}

function izquierda(x) {
  return cuadratica(x + 2);
}

console.log(izquierda(-4));
console.log(izquierda(-2));
console.log(izquierda(0));

El mínimo de la parábola pasa de x = 0 a x = -2.

47.7 Comparación de valores

Una tabla ayuda a ver cómo cambia el valor de la función al desplazarla horizontalmente.

function cuadratica(x) {
  return x * x;
}

function derecha(x) {
  return cuadratica(x - 2);
}

for (let x = -1; x <= 5; x++) {
  console.log({
    x,
    original: cuadratica(x),
    desplazada: derecha(x)
  });
}

47.8 Crear una función de traslación horizontal

Podemos escribir una función reutilizable que reciba otra función y devuelva una versión desplazada.

function trasladarHorizontal(funcion, h) {
  return function(x) {
    return funcion(x - h);
  };
}

function cuadratica(x) {
  return x * x;
}

const movidaDerecha = trasladarHorizontal(cuadratica, 3);
const movidaIzquierda = trasladarHorizontal(cuadratica, -3);

console.log(movidaDerecha(3));
console.log(movidaIzquierda(-3));

47.9 Interpretación con puntos

Si un punto de la función original es (x, y), al desplazar la función horizontalmente cambia la coordenada X, pero se conserva la coordenada Y.

(x, y) pasa a (x + h, y)

Por ejemplo, el punto (0, 0) de la función x² pasa a (2, 0) si se desplaza 2 unidades hacia la derecha.

47.10 Desplazar una lista de puntos

Si ya tenemos una serie de puntos calculados, también podemos trasladarlos directamente modificando sus coordenadas X.

function desplazarPuntosHorizontal(puntos, h) {
  return puntos.map(function(punto) {
    return {
      x: punto.x + h,
      y: punto.y
    };
  });
}

const puntos = [
  { x: -1, y: 1 },
  { x: 0, y: 0 },
  { x: 1, y: 1 }
];

console.log(desplazarPuntosHorizontal(puntos, 2));

47.11 Diferencia entre transformar la función y transformar puntos

Hay dos formas de pensar una traslación horizontal: modificar la entrada de la función o mover puntos ya calculados.

Enfoque Ejemplo Uso frecuente
Transformar la función g(x) = f(x - h) Definir una nueva función matemática
Transformar puntos xNuevo = x + h Dibujar o mover datos ya calculados

47.12 Traslación horizontal de una onda

En funciones periódicas, una traslación horizontal puede interpretarse como un desfase.

g(x) = sin(x - h)

Esto permite retrasar o adelantar una onda sin cambiar su amplitud ni su periodo.

47.13 Desfase en JavaScript

El siguiente ejemplo compara una onda original con otra desplazada horizontalmente.

function onda(x) {
  return Math.sin(x);
}

function ondaDesfasada(x, desfase) {
  return Math.sin(x - desfase);
}

function redondear(valor) {
  return Math.round(valor * 1000) / 1000;
}

const x = Math.PI / 2;

console.log(redondear(onda(x)));
console.log(redondear(ondaDesfasada(x, Math.PI / 2)));

47.14 Retrasar una animación

Una traslación horizontal puede usarse para hacer que un evento ocurra más tarde. En una función de tiempo, desplazar hacia la derecha equivale a retrasar.

function progreso(tiempo) {
  return tiempo * tiempo;
}

function progresoRetrasado(tiempo, retraso) {
  const t = Math.max(0, tiempo - retraso);
  return progreso(t);
}

console.log(progresoRetrasado(1, 2));
console.log(progresoRetrasado(2, 2));
console.log(progresoRetrasado(3, 2));

47.15 Ventanas de cálculo

También se puede usar una traslación horizontal para centrar una función en un punto de interés.

function errorCuadratico(valor, objetivo) {
  return (valor - objetivo) * (valor - objetivo);
}

console.log(errorCuadratico(10, 10));
console.log(errorCuadratico(12, 10));
console.log(errorCuadratico(7, 10));

Esta función tiene su mínimo cuando el valor coincide con el objetivo. Es una parábola trasladada horizontalmente.

47.16 Traslaciones horizontales en gráficos

Cuando se dibuja una función en pantalla, una traslación horizontal puede aplicarse en unidades matemáticas o directamente en píxeles.

Tipo de desplazamiento Qué cambia Ejemplo
Matemático La entrada de la función f(x - 2)
Visual La coordenada de pantalla xPantalla + 80

47.17 Aplicaciones en programación

  • Retrasar animaciones o señales dependientes del tiempo.
  • Mover una curva en un gráfico sin recalcular su forma.
  • Construir funciones de error centradas en un valor objetivo.
  • Desfasar ondas para crear patrones o movimientos alternados.
  • Alinear datos con diferentes puntos de inicio.

47.18 Errores comunes

  • Creer que f(x - 2) mueve el gráfico hacia la izquierda.
  • Confundir mover la entrada de la función con mover puntos ya dibujados.
  • Aplicar el desplazamiento horizontal a la salida en vez de aplicarlo a la entrada.
  • No distinguir entre unidades matemáticas y píxeles de pantalla.
  • Olvidar que en funciones de tiempo un desplazamiento hacia la derecha representa retraso.

47.19 Qué debes recordar de este tema

  • Una traslación horizontal mueve el gráfico sobre el eje X.
  • f(x - h) desplaza el gráfico h unidades hacia la derecha.
  • f(x + h) desplaza el gráfico h unidades hacia la izquierda.
  • Modificar la función y mover puntos son enfoques relacionados, pero no idénticos.
  • En programación, las traslaciones horizontales sirven para desfase, retraso y alineación.

47.20 Conclusión

Las traslaciones horizontales permiten controlar dónde aparece una función sobre el eje X. Aunque el signo dentro de la función puede parecer contrario a la intuición, entenderlo ayuda a trabajar con gráficos, animaciones, ondas y funciones dependientes del tiempo.