11.1 Del ángulo a una posición
Hasta ahora describimos un punto de una circunferencia mediante el radio r y la posición angular θ. Para mostrarlo en una gráfica, almacenarlo como parte del estado o calcular distancias necesitamos convertir esa descripción a coordenadas x e y.
El vector que va desde el centro hasta el punto tiene módulo r y forma un ángulo θ con el eje x positivo. Sus componentes se obtienen mediante coseno y seno.
11.2 Circunferencia centrada en el origen
Si el centro está en (0, 0), las coordenadas del punto son:
El ángulo debe expresarse en radianes al usar las funciones trigonométricas de JavaScript. Para r = 2 m y θ = π/3:
11.3 Centro desplazado
Si la circunferencia tiene centro C = (xc, yc), sumamos esas coordenadas:
Los términos r cos θ y r sin θ son componentes relativas al centro. Sumar el centro traslada toda la circunferencia sin modificar su radio ni su orientación angular.
Proyección horizontal del radio.
Proyección vertical del radio.
11.4 Posiciones notables
| Ángulo | cos θ | sin θ | Posición relativa |
|---|---|---|---|
| 0 | 1 | 0 | (r, 0) |
| π/2 | 0 | 1 | (0, r) |
| π | −1 | 0 | (−r, 0) |
| 3π/2 | 0 | −1 | (0, −r) |
| 2π | 1 | 0 | (r, 0) |
Los valores calculados en una computadora pueden quedar extremadamente cerca de cero sin ser exactamente cero debido a la aritmética de punto flotante.
11.5 Verificar que el punto está en la circunferencia
Restamos el centro y calculamos la distancia:
Al sustituir las ecuaciones paramétricas aparece r²(cos²θ + sin²θ) = r². Esta identidad demuestra que la distancia al centro permanece constante.
En un programa comparamos con una tolerancia, no mediante igualdad exacta, porque seno, coseno y raíces introducen pequeñas aproximaciones numéricas.
11.6 El ángulo como parámetro
Las expresiones x(θ) e y(θ) son ecuaciones paramétricas: el parámetro θ determina simultáneamente ambas coordenadas. Al variar θ de 0 a 2π, el punto recorre una vuelta.
Si θ aumenta, el recorrido es antihorario en un sistema cartesiano con y hacia arriba. Si θ disminuye, el recorrido es horario.
Ángulos que difieren en 2πk producen las mismas coordenadas, porque seno y coseno son periódicos.
11.7 Incorporar el tiempo
Si conocemos θ(t), lo sustituimos en las ecuaciones:
Para rotación uniforme, θ(t) = θ0 + ωt:
y(t) = yc + r sin(θ0 + ωt)
El signo de ω determina el sentido, mientras que su módulo determina qué tan rápido se recorre la circunferencia.
11.8 Coordenadas de pantalla
En el sistema cartesiano habitual, x crece hacia la derecha e y hacia arriba. En Canvas y SVG, x también crece hacia la derecha, pero y suele crecer hacia abajo.
| Coordenada | Expresión |
|---|---|
| Pantalla x | xpx = px + q(x − xorigen físico) |
| Pantalla y | ypx = py − q(y − yorigen físico) |
El signo menos en y invierte el eje para que una coordenada física positiva aparezca hacia arriba. También podemos trabajar directamente con la convención de pantalla, pero debemos documentarla y mantenerla.
11.9 Recuperar radio y ángulo desde x e y
Dado un punto y el centro, definimos dx = x − xc y dy = y − yc. Entonces:
atan2 usa los signos de ambas componentes para identificar el cuadrante correcto. Una función arco tangente aplicada solo al cociente dy/dx pierde información, falla cuando dx = 0 y confunde cuadrantes.
En JavaScript se escribe Math.atan2(dy, dx): primero y, luego x. El resultado pertenece normalmente al intervalo [−π, π].
11.10 Posición no es desplazamiento
Las coordenadas (x, y) indican posición. El vector desplazamiento entre dos instantes es la resta de posiciones finales e iniciales. Su módulo es la cuerda entre ambos puntos, no la longitud del arco recorrido.
Después de una vuelta, las coordenadas finales coinciden con las iniciales y el desplazamiento vectorial es cero, aunque la distancia recorrida sea 2πr.
11.11 Precisión y tolerancias
En JavaScript, Math.cos(Math.PI / 2) no tiene por qué devolver exactamente cero. Para verificar la circunferencia podemos comparar el error:
La tolerancia debe guardar relación con la escala. Una alternativa estable es comprobar la distancia mediante Math.hypot(dx, dy) y comparar su diferencia con r.
11.12 Actividad interactiva: del ángulo a la pantalla
Modificá el centro, el radio y el ángulo. El gráfico muestra ejes físicos y las proyecciones horizontal y vertical.
Conversor polar-cartesiano
La escala visual se adapta; los resultados se expresan en coordenadas físicas.
Sumamos al centro las componentes r cos θ y r sin θ para obtener la posición.
11.13 Implementación con JavaScript
function posicionCircular({ centro, radioM, anguloRad }) {
return {
x: centro.x + radioM * Math.cos(anguloRad),
y: centro.y + radioM * Math.sin(anguloRad)
};
}
function coordenadasPolares(punto, centro) {
const dx = punto.x - centro.x;
const dy = punto.y - centro.y;
return {
radioM: Math.hypot(dx, dy),
anguloRad: Math.atan2(dy, dx)
};
}
const centro = { x: 1, y: 0.5 };
const punto = posicionCircular({
centro,
radioM: 2,
anguloRad: Math.PI / 3
});
console.log(punto); // aproximadamente { x: 2, y: 2.232 }Las funciones reciben y devuelven coordenadas físicas. La conversión a píxeles pertenece a la capa de visualización, lo que evita mezclar unidades del modelo con unidades de pantalla.
11.14 Ejemplos resueltos
Ejemplo 1: centro en el origen
r = 4 m y θ = 5π/6:
Ejemplo 2: centro desplazado
C = (−2, 3) m, r = 5 m y θ = π:
Ejemplo 3: recuperar datos
Desde C = (1, 1), un punto está en P = (−2, 5). Entonces dx = −3 y dy = 4:
11.15 Errores frecuentes
- intercambiar seno y coseno con la referencia angular usual;
- olvidar sumar las coordenadas del centro;
- pasar grados a
Math.sinoMath.cos; - usar
Math.atan(dy/dx)en lugar deMath.atan2(dy, dx); - invertir los argumentos de
atan2; - ignorar que el eje y de pantalla apunta hacia abajo;
- confundir el arco con el desplazamiento recto entre extremos;
- exigir igualdades exactas con números de punto flotante.
11.16 Ejercicios propuestos
- Calculá la posición para C = (0, 0), r = 3 m y θ = 2π/3.
- Calculá P para C = (2, −1), r = 4 m y θ = 3π/2.
- Verificá que P = (6, 5) pertenece a una circunferencia de centro (2, 2) y radio 5 m.
- Desde C = (−1, 2), hallá radio y ángulo de P = (2, 2).
- Escribí x(t) e y(t) para C = (1, 3), r = 2 m, θ0 = π/2 y ω = −1 rad/s.
- Explicá por qué θ y θ + 4π producen las mismas coordenadas.
- Convertí la posición física (2, 3) m a pantalla si el origen físico aparece en (300, 250) px y la escala es 40 px/m.
Ver soluciones y explicaciones
- P = (−1,5; 3√3/2) m ≈ (−1,5; 2,598) m.
- P = (2, −5) m.
- dx = 4, dy = 3 y √(4² + 3²) = 5 m; sí pertenece.
- dx = 3, dy = 0; r = 3 m y θ = 0 rad.
- x(t) = 1 + 2 cos(π/2 − t); y(t) = 3 + 2 sin(π/2 − t).
- Seno y coseno repiten sus valores cada 2π; 4π son dos períodos completos.
- xpx = 300 + 40·2 = 380 px; ypx = 250 − 40·3 = 130 px.
11.17 Ideas para recordar
- x = xc + r cos θ e y = yc + r sin θ.
- El ángulo se mide desde el eje x positivo y debe pasarse en radianes a JavaScript.
- Las ecuaciones mantienen constante la distancia al centro.
- Al sustituir θ(t) obtenemos la posición cartesiana en función del tiempo.
- En pantalla suele ser necesario invertir la coordenada y.
Math.atan2(dy, dx)recupera el ángulo conservando el cuadrante.- El vector entre extremos no es la longitud del arco recorrido.
En el próximo tema construiremos las direcciones radial y tangencial y sus vectores unitarios.