Математика
Если я с известной угловой скоростью двигаюсь вокруг Земли по круговой орбите известного наклонения, можно ли, зная координаты проекции моего текущего положения на земную поверхность, вычислить координаты проекции точки, в которой я окажусь через известное время?
Мне удалось это посчитать, привязавшись к нулевой точке и задав в ней начало декартовой системы координат (ну, или что-то вроде этого), но решение моё мне не нравится. Оно лишено элегантности, и к тому же приходится хранить для программы два лишних параметра (два - потому что вращение Земли тоже хочется учесть).
Это я, сидя без работы, поставил Линукс и решил поизучать Perl, а в качестве объекта приложения сил выбрал вот эту замечательную штуку.
Математики, ау!
Мне удалось это посчитать, привязавшись к нулевой точке и задав в ней начало декартовой системы координат (ну, или что-то вроде этого), но решение моё мне не нравится. Оно лишено элегантности, и к тому же приходится хранить для программы два лишних параметра (два - потому что вращение Земли тоже хочется учесть).
Это я, сидя без работы, поставил Линукс и решил поизучать Perl, а в качестве объекта приложения сил выбрал вот эту замечательную штуку.
Математики, ау!
no subject
no subject
no subject
no subject
Потом, решить-то я решил, но решение довольно громоздкое. Жажду элегантности. :)
no subject
Тогда, если твоя угловая скорость v, а угол наклона траектории к экватору α, то смещение по долготе будет просто
Δφ = Δt × (v × cosα + vt)
(t - время, vt - угловая скорость вращения Земли).
Ну а по широте, соответственно, Δθ = Δφ × tgα
Что-то уж больно просто :)
no subject
Огромное тебе спасибо. Сравню со своим методом и расскажу, что получилось.
(Чёрт, а я там такого нагромоздил в программе, теперь надо всё менять... :)
Ещё раз спасибо!
no subject
no subject
Или я где-то чего-то не понимаю?
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Пусть w - угловая скорость спутника,
W - угловая скорость Земли,
q - широта,
j - долгота,
a - наклонение орбиты спутника.
Решение имеет вид
q = arcsin(sin(w t + y ) sina )
j = arctg(tg(w t + y ) cosa ) - W t + F
где константы F , y определяются из начальных условий. Например, если при t = 0 были координаты j 0, q 0, то
y = arcsin(sinq 0 / sina )
F = j 0 - tgy cosa
...Тут при переносе из Word-а греческие буквы заменились на латинские, не очень подходящие, но разобраться можно.
И еще: поскольку значения функции arctgx заключены между –90° и 90° , а долгота изменяется в пределах от –180° до 180° , то в программе нужно вовремя к долготе добавлять или вычитать 180° . Разберетесь?
no subject
Разобрался, и всё получается. Это очень похоже на моё собственное решение, разве что моё не так стройно. Например, вращение Земли у меня вычитается как-то намного более неуклюже, чем у Вас.
Но мне не дают покоя F и y, определяемые из начальных условий. Неужели и в ЦУПе, расчитывая орбиты "Союзов", всё время плясали от Байконура? F и y и есть те два лишних, на мой взгляд, параметра, которые мне приходится протаскивать в программе. Неужели нельзя определить положение через время дельта-t, просто отталкиваясь от текущих координат, скорости и наклонения? Ведь через каждую точку можно провести только одну плоскость, пересекающую шар в центре под определённым уголом к экватору?
no subject
Здесь ведь задаются именно текущие координаты j0, q0 и вычисляются координаты j, q через промежуток времени t! А величины y и F ведь не надо задавать дополнительно, это просто промежуточные величины, вычисляемые через текущие координаты; без y и F вполне можно бы обойтись, подставив их в первые два уравнения, но тогда все выглядело бы более громоздко.
Начальный момент t=0 - это вовсе не момент запуска, а исходная точка отсчета, т.е., по-Вашему, текущий момент времени. А t, отсчитываемое от него, это Ваше дельта-t.
no subject
Теперь только надо понять, что делать, если угол под тангенсом окажется равен ровно 90° или -90°. Надеюсь, что справлюсь.
Ещё раз большущее спасибо.
no subject
no subject
Сел рисовать алгоритм. Спасибо!