Detrás de cada punto, figura y animación hay coordenadas, vectores, ángulos y transformaciones. En este tema descubrirás para qué sirve cada herramienta y cómo todas colaboran para construir una escena interactiva.
Un gráfico 2D parece una colección de colores y formas, pero un programa no comprende palabras como “a la derecha”, “más grande” o “gira un poco”. Necesita valores precisos. La matemática convierte esas instrucciones visuales en números y operaciones que la computadora puede ejecutar.
No es necesario dominar matemática avanzada para comenzar. La mayor parte del trabajo cotidiano utiliza aritmética, geometría elemental, vectores, trigonometría y algunas ideas de álgebra lineal. Lo importante es comprender qué problema resuelve cada concepto.
Todo elemento visible posee propiedades numéricas. Un personaje puede estar en la posición (120, 80), medir 40 píxeles, apuntar a 30 grados y avanzar 3 píxeles por cuadro. El programa combina esos valores para decidir dónde y cómo dibujarlo.
Una posición 2D se describe con dos coordenadas: x indica el desplazamiento horizontal e y el vertical. Juntas forman un punto.
En muchas pantallas, el origen (0, 0) se encuentra en la esquina superior izquierda. El valor de x aumenta hacia la derecha y el de y hacia abajo. Esta orientación difiere del plano cartesiano tradicional y debe tenerse presente al programar.
La geometría permite construir objetos mediante puntos, segmentos y figuras. Un botón puede ser un rectángulo; una pelota, un círculo; y una nave, una combinación de triángulos y polígonos.
| Concepto | Pregunta que responde | Aplicación |
|---|---|---|
| Punto | ¿Dónde está? | Posición de un objeto o un clic |
| Distancia | ¿Qué tan separados están? | Alcance, proximidad y colisiones |
| Recta o segmento | ¿Cómo se conectan? | Rayos, trayectorias y bordes |
| Figura | ¿Qué forma y tamaño tiene? | Dibujo y detección de colisiones |
| Área y perímetro | ¿Cuánto ocupa o mide? | Distribución y cálculo de superficies |
Un vector también contiene dos componentes, pero representa un desplazamiento en lugar de una posición fija. El vector (3, −2) puede interpretarse como avanzar 3 unidades a la derecha y 2 hacia arriba.
Los vectores permiten controlar velocidad, dirección, aceleración, empujes, rebotes y fuerzas. Son una de las herramientas más utilizadas en animaciones y videojuegos.
Los ángulos expresan orientación. Las funciones seno y coseno convierten un ángulo en una dirección. Si un objeto apunta a un ángulo θ y avanza con rapidez v, su desplazamiento puede calcularse así:
Esta relación permite mover un personaje hacia donde mira, distribuir elementos sobre una circunferencia y rotar puntos. En JavaScript, las funciones trigonométricas trabajan con radianes.
Una transformación modifica todos los puntos que forman un objeto. La traslación cambia su posición, la rotación su orientación y el escalado su tamaño. Aplicarlas al objeto completo evita recalcular manualmente cada vértice.
Modifica la posición, el ángulo, la escala y la velocidad. La figura combina todos estos conceptos: las coordenadas fijan su centro, la geometría define su forma, el ángulo la orienta y un vector determina su desplazamiento.
También puedes arrastrar la figura directamente sobre el lienzo. Al cambiar el ángulo, observa que la flecha del vector gira con ella; al pulsar Animar, la posición se actualiza sumando ese vector en cada cuadro.
Una escena interactiva necesita además responder a encuentros y cambios en el tiempo. La detección de colisiones determina si dos figuras se superponen. La interpolación calcula valores intermedios para producir movimientos suaves. Las curvas de Bézier describen trayectorias y contornos mediante puntos de control.
| Necesidad | Herramienta matemática | Ejemplo |
|---|---|---|
| Saber si dos objetos se tocan | Distancias e intersecciones | Pelota contra una pared |
| Pasar suavemente de A hasta B | Interpolación | Menú que se despliega |
| Dibujar una trayectoria suave | Curvas de Bézier | Camino de una animación |
| Combinar varias transformaciones | Matrices | Cámara y objetos jerárquicos |
Este código calcula el vector correspondiente a un ángulo y actualiza una posición. Resume la relación entre trigonometría, vectores y movimiento.
const posicion = { x: 100, y: 80 };
const anguloGrados = 30;
const velocidad = 4;
const anguloRadianes = anguloGrados * Math.PI / 180;
const movimiento = {
x: Math.cos(anguloRadianes) * velocidad,
y: Math.sin(anguloRadianes) * velocidad
};
posicion.x += movimiento.x;
posicion.y += movimiento.y;
console.log(posicion);
La posición inicial indica dónde está el objeto. El vector indica cuánto y hacia dónde se mueve. La suma produce su nueva posición.
Antes de buscar una fórmula, conviene formular preguntas concretas:
Estas preguntas suelen revelar el concepto matemático necesario y evitan utilizar fórmulas sin comprender su propósito.
La matemática de los gráficos 2D no es un conjunto aislado de fórmulas. Es un lenguaje que permite describir dónde están los objetos, qué forma tienen, hacia dónde se mueven y cómo cambian. Cada concepto del curso ampliará una parte de este lenguaje y la conectará con ejemplos visuales.
En el próximo tema estudiaremos el plano cartesiano y los sistemas de coordenadas, la base sobre la que ubicaremos todos los elementos de una escena.