# Lecciones: escena limpia y esquema de luz · versión 16

## Organización

- `js/leccion-escena.js`: aislamiento visual y cálculos del esquema opcional.
- `css/leccion-escena.css`: desplegable y ocultación temporal de rótulos.
- `js/escena.js`: consulta qué objetos ocultar durante cada pase de dibujo.
- `tests/leccion-escena.cjs`: geometría de sombra y restauración de visibilidad.

El recorrido de fases y el de eclipses muestran los cuerpos relevantes: Sol,
Tierra y Luna. Las estrellas siguen disponibles como fondo, pero no sus dibujos
ni nombres de constelación. Los planetas restantes, sus ejes, órbitas y lunas,
los marcadores geográficos y los rótulos de lugares se ocultan temporalmente.
La órbita lunar permanece en la vista Tierra/Luna cuando está activada.

Esto no modifica las casillas guardadas. La visibilidad de las mallas se restaura
al terminar cada dibujo, también si el renderizador produce un error. Los cuerpos
ocultos tampoco interceptan clics ni desplazan la cámara por colisión. Al cerrar
la lección, o al elegir otro destino, reaparece la exploración normal. La lección
«Mi primera observación» conserva sus referencias geográficas.

## Esquema opcional

«Ver cómo llega la luz» está cerrado inicialmente. En las fases muestra la
proyección de la órbita sobre el plano eclíptico, orientada con el Sol a la
izquierda, usando la posición de la Luna para el instante seleccionado. Es una
vista explicativa: los radios y separaciones del dibujo no están a escala.

En el eclipse lunar, el dibujo representa una sección que contiene el eje de
sombra y el centro de la Luna. Los conos se calculan con las tangentes a esferas
ideales del Sol y la Tierra. Para distancia Sol–Tierra D y distancia detrás de
la Tierra z:

- α = asin((Rsol − Rtierra) / D)
- β = asin((Rsol + Rtierra) / D)
- radio de umbra = max(0, Rtierra / cos(α) − z × tan(α))
- radio de penumbra = Rtierra / cos(β) + z × tan(β)

La distancia axial y el desplazamiento perpendicular del centro lunar proceden
de las posiciones astronómicas; nunca de los cuerpos agrandados del visor.
La sección transversal conserva esas proporciones. La distancia longitudinal
está comprimida y el Sol se representa sin escala, tal como indica el esquema.
Se usa Rtierra = 6371 km, Rluna = 1737,4 km y Rsol = 695700 km.

El texto de contacto es una interpretación geométrica sencilla de esa sección,
no una efeméride de contactos. No incorpora aumento atmosférico de sombra,
refracción, relieve lunar ni variaciones meteorológicas de color. El eclipse
sobre la esfera 3D sigue usando el modelo de iluminación ya existente.

Referencia educativa: [NASA · Why Do Eclipses Happen?](https://science.nasa.gov/eclipses/geometry/).

## Verificación automatizada

Las pruebas comprueban que la umbra se estrecha, la penumbra se ensancha, el cono
termina en su vértice, las rotaciones globales no cambian la sección y el máximo
histórico del 14 de marzo de 2025 sitúa la Luna dentro de la umbra geométrica.
También ejecutan el método real de dibujo con un renderizador simulado: se
ocultan solo los cuerpos ajenos a la lección y se recuperan los valores previos,
incluso cuando un objeto ya era invisible o se simula un fallo de WebGL.
