Найти тему
Статьи
Улучшение расчетной модели. Интегрирование с адаптивным шагом.
Расчетная модель орбитального движения научилась выполнять расчеты и делать первичный анализ полученных цифр, однако к ее быстродействию есть вопросы. Сейчас численное интегрирование идет с постоянным временным шагом. Не важно при этом, являются взаимодействия интенсивными (к примеру, пролет на "гравипраще" спутника рядом с массивным объектом (Юпитер, например), так что за считанные минуты скорость спутника увеличивается на километры в секунду) или медленным (вековой дрейф обледеневшего булыжника в облаке Оорта)...
4 года назад
Построение интерфейса. И зачем нужны шаблонизаторы?
Приложение для моделирования орбит постепенно насыщается новыми деталями. В нем появляется пользовательский интерфейс, который позволяет перейти от жестко заданной в скрипте последовательности действий при старте программы на хотя бы ограниченный выбор того, что мы будем вычислять, анализировать и выводить на экран. Рассмотрим на примере задачи отрисовки траекторий в относительном движении. Для этого сначала нужно выбрать объект, служащий опорной точкой, затем - выбрать любое количество объектов,...
4 года назад
Гравизахват.
Модель постепенно совершенствуется и обрастает фичами, сейчас она готовится к тому, чтобы решить задачу трех тел хотя бы для одного из канонических случаев - точек Лагранжа. Эти особые точки возникают в системе, состоящей из более массивного тела, вокруг которого вращается менее массивное. Главная особенность этих точек - возможность пребывания спутников и станций в окрестности точки Лагранжа с минимальными расходами энергии. Лежащие впереди орбиты и находящиеся позади точки L4 и L5 интересны еще...
4 года назад
JS. Орбитальная модель. Возможности
В предыдущих примерах (блок орбитальной модели , блок ориентации) мы постепенно настраивали модель движения объекта в центральном поле тяготения и описывали способы оценки положение движущейся точки относительно других точек в пространстве. Теперь попытаемся объединить эти знания и получим первые представления о том, как будет восприниматься движущийся по низкой околоземной орбите спутник. Сейчас разрабатываемый код лежит на гитхабе. Если интересно - то можно порыться, модули решают следующие задачи: Впрочем, самое интересное происходит непосредственно в index...
4 года назад
Блок ориентации
Мы подготовили модель орбитального движения и проверили ее на примере спутника Земли, получив хорошую сходимость с теоретическим расчетом. Теперь мы можем оценивать траектории ИСЗ вокруг Земли по самым разным орбитам. Но у нас нет инструментов для оценки видимости спутника относительно наблюдателя. Воспользуемся основами векторной алгебры и научимся определять расстояния и углы между произвольными линиями, плоскостями и точками. Создадим еще один модуль - Vect3D и уже опробованными нами приемом унаследуем от класса Array класс Vect3D...
4 года назад
JS. Орбитальное движение
После того, как мы собрали небольшое приложение для решения достаточно абстрактной задачи, перейдем к такой теме, как основы небесной механики. С ней связаны задачи исследования движения спутников, выполнение орбитальных маневров, оценка области видимости ИСЗ с поверхности Земли, исследование движения спутников в точках Лагранжа. А заодно посмотрим на реализацию новых вычислительных алгоритмов и способов визуализации. Начнем с математической модели. В нашей задаче основными являются гравитационные силы, вычисляемые по закону Всемирного тяготения...
4 года назад
Js. Решатель
Завершим начатый пример и напишем функции для численного решения уравнений. Начнем с выбора уравнения, которое мы будем исследовать ,и для которого сначала выведем график - чтобы проверить полученные корни как по доступным онлайн-калькуляторам, так и по пересечению графика с осью абсцисс. Попробуем кубическое уравнение - формула Кардано достаточно громоздка, чтобы это уравнение не хотелось решать точным аналитическим методом, но она есть, а это значит, что у нас имеется критерий правильности решения...
4 года назад
Графический модуль
После того, как мы расширили функционал массива, можно приступать к созданию модуля отрисовки. Его задача - принять массивы данных, масштабировать их к области отрисовки экрана и затем выводить на элемент canvas. Начнем с того, что в ранее намеченном (и пока пустом graphics.js) создадим заготовку для класса графики. Вот так: Здесь handler - ссылка на элемент canvas, в котором будет происходить отрисовка, context - контекст отрисовки, на котором выполняются команды по выводу графики. Пустые пока что...
4 года назад
JS и математика
Когда говорят JavaScript, то обычно подразумевают разработку различных онлайн-формочек, которые показывают одну красивую картинку за другой, предлагают купить какую-нибудь безделушку или забронировать гостиничный номер (увы и ах, но сейчас не очень актуально)...
4 года назад