bash.im ithappens.me zadolba.li
9567

Нелогично, но работает отлично

15 июля 2012, 07:15

Сколько раз замечал, что наиболее удобный для компьютера способ решения задачи не есть самый удобный и понятный для человека.

Надо рисовать на карте трассу спутника. Если верить формуле, трасса начинается на каком-то значении долготы, вырисовывает загогулины, причём иногда весьма интересные, и завершается на той же долготе плюс 360 градусов. Проблема состоит в том, что при рисовании надо ловить переходы через границу карты, завершать рисование справа и начинать рисовать трассу на карте слева. Сколько было визуальных глюков вокруг перехода через эту границу… Проблема исчезла, когда стали рисовать трассу три раза — со сдвигом −360, 0 и 360 градусов. Ненужное отсекалось само, нужные куски при рисовании стыковались сами. И не надо точки разрыва трассы искать.

Тот же спутник. Надо считать номера витков, то есть ловить, когда трасса пересекает экватор. Легко сказать — можно при длинном прогнозе движения и на полвитка ошибиться. Тогда вообще не понять, к какому узлу тянуть и сколько витков прибавить. Ввёл лишнее уравнение в дифуры, заставил интегрировать ещё и угловую скорость. Потом оставалось только поделить полученное значение на два пи и получить желаемый номер витка.