Не хочу вас расстраивать, но клавишу Fn нельзя сэмулировать.
Из википедии.
Однако из-за того, что ОС не знает о наличии клавиши Fn, ей обычно нельзя через ПО назначить другую функцию, в отличие от всех остальных стандартных клавиш.
Все, я понял.
Почему то рассматривал решение только для зеленой точки.
Для всех точек, которые находятся "за горизонтом":
1. Через начало координат, точку за горизонтом и точку на орбите создаем плоскость, что бы было нагляднее.
2. Находим координаты точки на поверхности сферы по касательной (в этой плоскости). Рассчитываем расстояние от точки на орбите к этой точке.
3. Считаем длину части окружности от точки на поверхности к искомой точке.
4. Суммируем 2 полученных длины.
Сложно написать, это нужно представить.
Что-бы правильно посчитать расстояние. Если координаты красной точки посчитаны от другого центра координат, то естественно результат не будет правильным.
Вот в этом и загвоздка.
Если почитать википедию , то там есть фраза "Если остаток равен нулю, говорят, что a нацело делится на b", то есть нет остатка. Я отталкивался от этого.
А если условия вопроса некорректны (r и l - антье), то решать через систему уравнений с антье. Что гораздо интересней. Хотя я могу и ошибаться насчет этого.