41. Funciones trigonométricas

Las funciones trigonométricas permiten relacionar ángulos con posiciones, ondas y movimientos periódicos. Son fundamentales en gráficos, animaciones, simulaciones y videojuegos.

41.1 Introducción

Las funciones trigonométricas nacen del estudio de los triángulos y los círculos, pero en programación aparecen constantemente: rotaciones, oscilaciones, ondas, movimiento circular, cámaras, partículas y gráficos.

Las funciones más usadas son seno, coseno y tangente.

41.2 Ángulos y radianes

En matemáticas se pueden medir ángulos en grados o radianes. En JavaScript, las funciones trigonométricas usan radianes.

180° = π radianes 360° = 2π radianes

Por eso, antes de usar grados con Math.sin, Math.cos o Math.tan, debemos convertirlos a radianes.

41.3 Convertir grados a radianes

radianes = grados · π / 180
function gradosARadianes(grados) {
  return grados * Math.PI / 180;
}

console.log(gradosARadianes(0));
console.log(gradosARadianes(90));
console.log(gradosARadianes(180));

41.4 Seno

El seno de un ángulo se usa para obtener una componente vertical en el círculo unitario. Sus valores están entre -1 y 1.

sin(0°) = 0 sin(90°) = 1 sin(180°) = 0 sin(270°) = -1
function senoGrados(grados) {
  return Math.sin(grados * Math.PI / 180);
}

console.log(senoGrados(0));
console.log(senoGrados(90));
console.log(senoGrados(270));

41.5 Coseno

El coseno de un ángulo se usa para obtener una componente horizontal en el círculo unitario. También produce valores entre -1 y 1.

cos(0°) = 1 cos(90°) = 0 cos(180°) = -1 cos(270°) = 0
function cosenoGrados(grados) {
  return Math.cos(grados * Math.PI / 180);
}

console.log(cosenoGrados(0));
console.log(cosenoGrados(90));
console.log(cosenoGrados(180));

41.6 Tangente

La tangente relaciona seno y coseno:

tan(x) = sin(x) / cos(x)

La tangente puede crecer mucho cerca de ángulos donde el coseno se acerca a cero.

function tangenteGrados(grados) {
  return Math.tan(grados * Math.PI / 180);
}

console.log(tangenteGrados(0));
console.log(tangenteGrados(45));
console.log(tangenteGrados(80));

41.7 Animación interactiva: Círculo unitario

Presioná ▶ / ⏸ para ver cómo gira el ángulo y cómo se construyen geométricamente el seno, el coseno y la tangente en el círculo unitario.

Ángulo

Seno 0.000
Coseno 1.000
Tangente 0.000

41.8 Tabla de valores importantes

Ángulo Radianes Seno Coseno
0 0 1
90° π/2 1 0
180° π 0 -1
270° 3π/2 -1 0
360° 0 1

41.9 Movimiento circular

Para ubicar un punto sobre un círculo usamos coseno para la coordenada x y seno para la coordenada y.

x = centroX + cos(ángulo) · radio y = centroY + sin(ángulo) · radio
function puntoEnCirculo(anguloGrados, radio, centroX, centroY) {
  const angulo = anguloGrados * Math.PI / 180;

  return {
    x: centroX + Math.cos(angulo) * radio,
    y: centroY + Math.sin(angulo) * radio
  };
}

console.log(puntoEnCirculo(0, 100, 200, 200));
console.log(puntoEnCirculo(90, 100, 200, 200));

41.10 Oscilación

El seno y el coseno sirven para crear movimientos que suben y bajan suavemente.

y = centro + sin(tiempo) · amplitud
function posicionOscilante(tiempo, centro, amplitud) {
  return centro + Math.sin(tiempo) * amplitud;
}

console.log(posicionOscilante(0, 100, 20));
console.log(posicionOscilante(Math.PI / 2, 100, 20));
console.log(posicionOscilante(Math.PI, 100, 20));

41.11 Dirección a partir de un ángulo

En videojuegos y simulaciones, podemos convertir un ángulo en un vector de dirección.

function direccionDesdeAngulo(grados) {
  const radianes = grados * Math.PI / 180;

  return {
    x: Math.cos(radianes),
    y: Math.sin(radianes)
  };
}

console.log(direccionDesdeAngulo(0));
console.log(direccionDesdeAngulo(90));
console.log(direccionDesdeAngulo(45));

41.12 Precisión numérica

Al trabajar con números decimales, JavaScript puede devolver valores muy pequeños en lugar de cero exacto.

const valor = Math.cos(Math.PI / 2);

console.log(valor);
console.log(Math.abs(valor) < 0.000001);

Por eso, al comparar resultados trigonométricos, suele usarse una tolerancia.

41.13 Periodicidad

Las funciones trigonométricas se repiten. En seno y coseno, el patrón se repite cada radianes o 360°.

sin(x) = sin(x + 2π) cos(x) = cos(x + 2π)

41.14 Aplicaciones en programación

  • Movimiento circular de objetos.
  • Rotaciones y direcciones.
  • Animaciones oscilantes.
  • Ondas, vibraciones y ciclos.
  • Gráficos, partículas, cámaras y videojuegos.

41.15 Comparación de funciones

Función Uso frecuente Rango típico
Seno Componente vertical u oscilación [-1, 1]
Coseno Componente horizontal u oscilación desplazada [-1, 1]
Tangente Pendientes y relaciones angulares No está acotada

41.16 Errores comunes

  • Pasar grados directamente a Math.sin, Math.cos o Math.tan.
  • Olvidar convertir grados a radianes.
  • Comparar valores decimales esperando cero exacto.
  • Confundir seno y coseno al calcular coordenadas circulares.
  • Usar tangente cerca de ángulos donde el coseno se acerca a cero sin controlar valores extremos.

41.17 Qué debes recordar de este tema

  • JavaScript usa radianes en sus funciones trigonométricas.
  • Math.sin calcula seno, Math.cos coseno y Math.tan tangente.
  • Para convertir grados a radianes usamos grados · π / 180.
  • Seno y coseno producen valores entre -1 y 1.
  • Coseno suele usarse para la coordenada x y seno para la coordenada y en un círculo.
  • Las funciones trigonométricas son periódicas.

41.18 Conclusión

Las funciones trigonométricas son herramientas fundamentales para representar ángulos, ciclos y movimientos periódicos. En programación aparecen cada vez que trabajamos con rotación, dirección, ondas u oscilaciones.

En el próximo tema veremos con más detalle seno, coseno y tangente.