¿Por qué el argumento de periapsis no sería siempre 90?

Estoy ayudando a unos estudiantes de secundaria a escribir un simulador de nave espacial. Como parte de eso, hoy estoy tratando de entender la mecánica orbital, principalmente usando esta excelente guía: http://www.braeunig.us/space/orbmech.htm

Pero de los seis elementos orbitales que dice que son necesarios, hay uno que no entiendo: el argumento del periápside. Se define como el ángulo entre el nodo ascendente y el punto del periapsis. Pero, ¿cómo podría este ángulo ser otra cosa que no sea 90°? Tengo verdaderos problemas para imaginar eso.

Más al punto, supongo, es: ¿qué hago con este parámetro para calcular realmente una posición (en el espacio 3D) en una órbita? Actualmente estoy haciendo esto:

public Vector3 PointAtAngle(float radians) {
    float r = RadiusAtAngle(radians);

    // Start by finding the orbital point in the XZ plane
    // (i.e., the plane against which the inclination is measured),
    // around a focus of zero, and aligned on the X axis.
    Vector3 p = new Vector3(r * Mathf.Cos(radians), 0, r * Mathf.Sin(radians));

    // Then rotate this by the inclination around the Z axis.
    p.Set(p.x * Mathf.Cos(i), p.x * Mathf.Sin(i), p.z);

    // Rotate around the Y axis according to the longitude of ascending node.
    float cosYRot = Mathf.Cos(omega);
    float sinYRot = Mathf.Sin(omega);
    p.Set(p.x * cosYRot - p.z * sinYRot, p.y, p.x * sinYRot + p.z * cosYRot);

    // Finally, add the focus to shift to whatever we're orbiting around.
    return focus + p;
}

Aquí, RadiusAtAngle solo calcula la distancia desde el punto de enfoque desde el ángulo, el semieje mayor (a) y la excentricidad (e). Estoy bastante seguro de eso. Luego hago un poco de trigonometría para encontrar un punto alrededor del origen en el plano XZ (eclíptica), lo giro hacia arriba (alrededor del eje Z) por la inclinación (i) y lo giro alrededor del eje Y por la longitud del nodo ascendente (omega). Y finalmente, agregue el punto de enfoque.

Todo parece funcionar muy bien, y ajustando a, e, i y omega, puedo hacer cualquier órbita que pueda imaginar. Pero esto es probablemente una falta de imaginación de mi parte. ¿Cómo entra en juego este argumento del periápside?

Parece que estás midiendo tu ángulo (el parámetro de radianes en el código) usando un círculo unitario estándar. En su lugar, deberías estar midiendo desde el argumento del periapsis. Le recomendaría que estudie esta imagen, ya que es más 3D que el arte ASCII de braeunig (ciertamente maravilloso): en.wikipedia.org/wiki/Argument_of_periapsis

Respuestas (1)

El periapsis es el punto en el que el satélite está más cerca del cuerpo central.

El nodo ascendente es donde la órbita cruza el plano ecuatorial del cuerpo central (esto se puede definir de varias formas, pero por el momento nos quedaremos con el ecuador).

Ahora, no hay razón para que el periápside no pueda estar en ningún punto de la órbita, así que analicemos algunos casos.

1) periapsis coincide con el nodo ascendente - esto significa que cuando el satélite cruza el ecuador (hacia arriba) también se encuentra en el punto más cercano a la tierra.

2) el periapsis está un poco después del nodo ascendente; en este caso, el satélite está cerca de la tierra cuando cruza el ecuador, pero aún se está acercando. Este es el caso cuando el argumento de periapsis está entre 0 y pi radianes (0-180 grados)

3) el periapsis está antes del nodo ascendente; en este caso, cuando el satélite pasa el ecuador, ya ha estado en su punto más cercano y actualmente se está alejando de la tierra. Este es el caso cuando el argumento de periapsis está entre pi y 2pi (180-360 grados).

Una buena manera de probar la implementación de su argumento del código periapsis sería tener una órbita con una excentricidad distinta de cero y una inclinación cero (si ve la órbita desde arriba, pi/2 si desde el lado). De esta manera, el valor cambiante del argumento del perigeo cambiará donde se encuentra el punto más cercano de la órbita.