Inicio › Temas › Geometría analítica
📐 Geometría analítica nivel medio
Coordenadas polares
Describir el plano con distancia y ángulo: espirales, rosas y cardioides.
🕹️ Ábrelo en el curso interactivo (simulador y código ejecutable)
La idea
En lugar de dar la posición de un punto por sus desplazamientos horizontal y vertical, las coordenadas polares la dan por su distancia r al origen (el polo) y el ángulo θ que forma con el eje X. Ambas descripciones se convierten una en otra con las relaciones x = r cos θ, y = r sen θ.
Muchas curvas que en cartesianas tienen ecuaciones enrevesadas se vuelven sencillas en polares: la circunferencia centrada en el origen es simplemente r = R, la espiral de Arquímedes es r = aθ, la cardioide r = a(1 + cos θ) y las rosas r = a cos(kθ), con tantos pétalos como indique k (o el doble, si k es par).
Las polares son naturales siempre que hay un centro privilegiado: un radar, una órbita, una antena o un movimiento de rotación. Su generalización tridimensional son las coordenadas cilíndricas y esféricas.
Fórmulas clave
- Polar → cartesianax = r cos θ, y = r sen θ
- Cartesiana → polarr = √(x² + y²), θ = atan2(y, x)
- Espiral de Arquímedesr = a θ
- Cardioider = a (1 + cos θ)
- Rosar = a cos(k θ)
- Área en polaresA = ½ ∫ r² dθ
Dónde se aplica
Las pantallas de radar y los diagramas de radiación de antenas se dibujan en polares. En robótica, un brazo articulado se controla con ángulos, no con coordenadas cartesianas, y hay que convertir entre ambos sistemas (cinemática directa e inversa). En análisis de señales, los números complejos se escriben en forma polar (módulo y fase) para multiplicarlos sin esfuerzo, y en imágenes médicas las tomografías reconstruyen el interior del cuerpo a partir de proyecciones tomadas en ángulos sucesivos.
Con programación (Python)
import math
def a_cartesianas(r, theta):
return r*math.cos(theta), r*math.sin(theta)
def a_polares(x, y):
return math.hypot(x, y), math.atan2(y, x)
print(a_cartesianas(2, math.pi/3))
print(a_polares(-1, 1)) # r = sqrt(2), theta = 135 grados
# Puntos de una cardioide r = 1 + cos(theta)
for k in range(0, 8):
th = 2*math.pi*k/8
r = 1 + math.cos(th)
x, y = a_cartesianas(r, th)
print(f"theta={math.degrees(th):5.0f} r={r:.3f} (x,y)=({x:6.3f},{y:6.3f})")
# Área de la cardioide por suma numérica: A = 1/2 * integral r^2 dtheta
n = 10000
area = sum(0.5*(1+math.cos(2*math.pi*i/n))**2 * (2*math.pi/n) for i in range(n))
print("Área ≈", area, "(exacta: 3π/2 =", 1.5*math.pi, ")")La versión en JavaScript, editable y ejecutable en el navegador, está en la página interactiva del tema.