# Comparar tamaños y tiempos de luz · actualizado en la versión 22

El desplegable **Compara tamaños** presenta el Sol, los ocho planetas y la Luna en parejas. La opción inicial **Misma escala** usa una escala lineal compartida: un radio dos veces mayor se dibuja dos veces mayor. Los discos pequeños nunca se agrandan de forma silenciosa; una flecha señala los que ocupan menos de dos píxeles de radio. La separación de los discos en el diagrama es didáctica, no una representación de la distancia orbital.

## Dos ventanas para comparar

**Misma escala** mantiene los radios medios en una escala común, incluso cuando un objeto se ve diminuto. **Ver superficies** amplía cada astro por separado para apreciar sus mapas; se avisa que las imágenes usan escalas independientes. Los diámetros, el cociente y el tiempo de luz no cambian al alternar estos modos.

Las ventanas reutilizan los mapas de los cuerpos del visor. Su orientación sigue la fecha seleccionada y la dirección de la cámara espacial, con el norte arriba; la Luna incluye la sombra terrestre y la Tierra conserva las capas de nubes y luces nocturnas. La iluminación es una aproximación calculada: estas imágenes no son fotografías en directo ni copias píxel a píxel del render 3D.

## Archivos y conexión

- `js/comparar.js`: catálogo reutilizado, cálculo de proporciones y luz, dos ventanas y controles.
- `js/comparar-vistas.js`: proyección Canvas 2D de los mapas locales con la orientación y la luz del instante simulado.
- `css/comparar.css`: aspecto compacto y adaptación al ancho disponible.
- `tests/comparar.cjs`: comprobaciones independientes del navegador.

Cargar el módulo después de `planetas-datos.js` y `astronomia.js`. Crear `new SolarComparison(container, {scene})` dentro de una sección vacía y llamar a `update(data)` con el resultado de `SolarPhysics.calculate`. El módulo crea su propio desplegable, cerrado inicialmente. `destroy()` desconecta sus eventos y su observador de tamaño.

## Qué representan los números

Los radios proceden de `SolarPhysics.constants.radiusKm`: radios medios del catálogo existente, 695.700 km para el Sol y 1.737,4 km para la Luna. Los discos son esferas equivalentes: no incluyen achatamiento ni geometría del relieve. Los anillos de Saturno aparecen a su proporción física respecto al radio medio, pero no forman parte de su diámetro. Se muestran diámetros y cocientes de diámetros, no volúmenes. Esto es distinto de los radios ecuatoriales que necesita la geometría achatada del visor 3D. Las fuentes de los radios planetarios ya están en [planetas-v07.md](planetas-v07.md) y `js/planetas-datos.js`.

Las posiciones de los diez cuerpos son heliocéntricas, geométricas y simultáneas, tomadas del mismo resultado de efemérides que usa la escena. Se resta un vector del otro y se multiplica su longitud por la conversión del motor, `SolarPhysics.constants.kmPerAu` (149.597.870,69098932 km por su unidad astronómica). La definición IAU exacta es 149.597.870,7 km: el coeficiente heredado del motor difiere en unos 9 metros por unidad astronómica, aproximadamente 0,000000006 %. Se mantiene aquí para ser coherente con las demás lecturas de la aplicación. La posición lunar utilizada es heliocéntrica (`position.moon`), no la posición relativa a la Tierra (`moonRelative`).

**Tiempo de luz = distancia entre centros / 299.792,458 km/s.** La velocidad de la luz en el vacío es exacta por definición. Una unidad astronómica equivale a aproximadamente 499,004784 segundos de luz. Esta duración expresa la distancia del instante seleccionado: no resuelve la intercepción de una señal con un destino en movimiento, no compensa el tiempo de recepción y no incluye correcciones relativistas. No es una imagen recibida en directo ni una predicción de comunicación de una nave.

Los números de distancia y luz siguen la fecha de la simulación con resolución de un segundo. Las medidas físicas conservan el modelo y los límites temporales del motor astronómico existente. El panel no crea un bucle de animación, no solicita datos por red y no dibuja estando cerrado o con el documento oculto. Los dos canvas se actualizan cuando cambia la orientación, la luz, las capas, el tamaño o el destino; las proyecciones y las texturas se almacenan en caché. El panel se detiene también al cerrar su desplegable superior o salir de pantalla.

## Fuentes primarias consultadas el 20 de septiembre de 2026

- [NIST / CODATA: velocidad de la luz en el vacío](https://physics.nist.gov/cuu/Constants/Value/c.html): 299.792.458 m/s, valor exacto.
- [NASA JPL Solar System Dynamics: unidad astronómica](https://ssd.jpl.nasa.gov/glossary/au.html): 149.597.870.700 m, definición exacta de la IAU.
- [Astronomy Engine](https://github.com/cosinekitty/astronomy): efemérides del motor ya incluido y sus convenciones de vectores.

No se han añadido imágenes externas ni dependencias. Se reutilizan las texturas incluidas del visor, con las fuentes y condiciones de uso que figuran en las referencias del proyecto. No se han descargado nuevos mapas. El Sol usa granulación ilustrativa, no actividad solar en directo.

## Verificación

`node tests/comparar.cjs` comprueba las 100 parejas a tres anchos, el caso extremo Sol/Luna sin ampliación artificial, el radio medio de Júpiter, la escala gráfica compartida, el valor de luz de una ua, las distancias Tierra/Luna en dos fechas reales, simetría, elección del mismo cuerpo, cambio de selección y reposo al cerrar u ocultar el panel.
