Я нашел ответ на https://physics.stackexchange.com/questions/26795/how-to-calculate-the-amount-of-night-time-during-a-flight .
но я застрял на части:
из которого
можно получить (после некоторых утомительных вычислений).
После выбора произвольного времени t у вас есть два уравнения, на которые вы ссылаетесь, и два неизвестных: и . Проблема в том, что уравнения нельзя решить напрямую, поэтому требуется итеративный подход. Например,
Давно я не занимался сферическим тригоном, но решение на Physics SE считаю неэффективным. Похоже, что они вычисляют высоту солнца в нескольких точках (несколько раз t) вдоль пути, поэтому два уравнения с двумя неизвестными нужно решать несколько раз — это неэффективно. Должна быть возможность определить уравнение большого круга через точку отправления и назначения. По сути, вам нужно рассчитать долготу пересечения экватора и наклон. Это, вероятно, нужно решать итеративно, но это нужно решить только один раз. Тогда для любого момента времени t положение и можно рассчитать напрямую, и высоту солнца можно рассчитать напрямую.
StephenG - Помощь Украине