Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 10.09.2017
Сообщений: 18

Движение двух тел по эллипсу

28.03.2018, 23:42. Показов 3447. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос, скорее, по вышмату, но все же:
Необходимо составить алгоритм движения, при котором тело1 будет передвигаться по эллипсу, при этом находясь на определенном расстоянии(фиксированном) от тела2, которое движется за телом1.
Пока что ничего лучше, чем использовать формулу для нахождения расстояния между двумя точками (d=sqrt(Xт2-Xт1)^2+(Yт2-Yт1)^2)) с выражением Xт1 и Yт1 не придумал, а как при этом организовать еще и движение по окружности - вообще не приходит пока что ничего (может, с использованием интегралов).
Расстояние d, Хт2 и Yт2 известны
Стрелкой указано направление движения, дугой - необходимое постоянное расстояние.
Миниатюры
Движение двух тел по эллипсу  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.03.2018, 23:42
Ответы с готовыми решениями:

Движение по наклонённому эллипсу
Здравствуйте! Есть такая задача: несколько объектов движется по наклонённому эллипсу, при чём для каждого объекта вой эллипс, но у всех...

Движение двух тел
Под мостом моторная лодка обогнала плот. Плот, пройдя 10 км, не меняя работы двигателя, развернулся и начал двигаться назад. В момент...

Движение спутника. Движение точки по эллипсу в c++ builder
Здравствуйте, есть код программы, который строит движение точки по эллипсу. Для этого использовались только большая полуось 'a' и меньшая...

4
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
29.03.2018, 00:20
Цитата Сообщение от Facelam Посмотреть сообщение
Необходимо составить алгоритм движения, при котором тело1 будет передвигаться по эллипсу
А к скорости движения какие-то требования предъявляются? В принципе по таймеру можно менять координату x и, имея уравнение эллипса вычислять y и размещать объект в этих координатах. А вот если нужно, чтобы, например, скорость движения была равномерной, то тут уже сложнее ))
Цитата Сообщение от Facelam Посмотреть сообщение
Пока что ничего лучше, чем использовать формулу для нахождения расстояния между двумя точками (d=sqrt(Xт2-Xт1)^2+(Yт2-Yт1)^2)) с выражением Xт1 и Yт1 не придумал
Для определения координат второго объекта надо составить уравнение окружности с центром в точке расположения первого объекта и радиусом равным требуемому расстоянию между объектами. Дальше надо решить систему уравнений эллипса и окружности. Решением этой системы будут две точки пересечения этих кривых, в одной из них и нужно располагать второй объект.
0
0 / 0 / 0
Регистрация: 10.09.2017
Сообщений: 18
29.03.2018, 02:24  [ТС]
Скорость определяется вторым телом. Т.е по сути, чтобы поддерживать постоянное расстояние, необходимо двигаться с постоянной скоростью, равной скорости движущего на тело1 тела2. У тела два скорость постоянна
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
29.03.2018, 11:51
Цитата Сообщение от Facelam Посмотреть сообщение
У тела два скорость постоянна
Постоянна линейная скорость или угловая? То есть за одинаковые промежутки времени тело должно отмерять дуги одинаковой длины или одинаковые углы радиус-вектора?

Ну и вопрос по расстоянию между телами. Как его измерять? Это должно быть расстояние угловое, линейное или его надо мерить по дуге эллипса? Судя по приведенной тобой формуле речь идет о линейном расстоянии, то есть одинаковой остается длина хорды.

Если в обоих случаях брать угловые величины, то расчеты, по всей видимости, упростятся за счет использования уравнения эллипса в полярных координатах. При использовании линейных расстояний (длин хорд) расчеты будут иметь среднюю сложность, там самое трудное будет решить систему уравнений. А вот в случае, если необходимо будет вычислять длины дуг, там уже покумекать придется побольше, поскольку длина дуги эллипса, емнип, в элементарных функциях не выражается. Там ее можно выразить в виде интеграла, который потом придется решать методом трапеций или еще чем-то в этом роде. Ну и тут опять-таки вопрос точности, насколько она критична.

Что касается нюансов чисто математических, то, вероятно, их придется выяснять в соответствующем разделе форума, поскольку я математику уже плохо помню. Но общий расклад по алгоритму, как я его себе представляю, попытаюсь изложить.

1. Для начала надо определить все параметры: параметры эллипса, его уравнение и т. д.; начальное положение объекта-2; скорость объекта-2; расстояние между объектами; направление движения; если эллипс задан не в каноническом виде, то помимо длин осей надо определить параметры трансформации(перенос и поворот), поскольку расчеты проще будет выполнить для канонической формы, а потом просто все трансформировать; параметры таймера (на сколько кадров в секунду будем делить движение).

2. Дальше запускаем таймер. В функции таймера из предыдущего положения объекта-2 надо вычислить его следующее положение. Для этого, исходя из скорости движения объекта и количества кадров в секунду вычисляем на сколько он должен переместиться, а из этого уже находим координаты его следующего местоположения.

3. От нового местоположения объекта-2 отмеряем нужное расстояние(расстояние между объектами) и вычисляем новое положение объекта-1.

В принципе это все. По поводу вычисления новых координат, тут все зависит от вопросов, которые я сформулировал в начале поста. Если все считать в угловых величинах, то просто поворачиваешь радиус-вектор в нужном направлении, подставляешь новое значение в уравнение эллипса в полярных координатах и получаешь вторую координату.

Если все-таки за единицу времени объект должен преодолевать равные по длине дуги, то тут можно воспользоваться тем обстоятельством, что за один тик таймера объект будет преодолевать очень небольшие расстояния и на таких расстояниях дуга мало отличается от стягивающей ее хорды, так что тут дугу можно заменить хордой и все малость упростится. Сам поиск новых координат сведется либо к решению системы уравнений эллипса и окружности, что не очень просто, поскольку в общем случае система дает четыре точки и там есть неприятные нюансы при их поиске. Но можно использовать приближенные методы, то есть, например, сначала находить смещение на определенный угол, вычислять расстояние между точками и если новое положение тела отстоит от предыдущего дальше или ближе чем надо, то корректировать положение итеративным методом. Думаю, это было бы проще всего, но опять-таки, лучше посоветоваться с математиками.

Расстояние между объектами измерять линейно не стоит, в случае если надо держать одинаковую длину дуги. Придется разбить все расстояние на мелкие дуги и уже каждую отдельно заменить хордой.
0
0 / 0 / 0
Регистрация: 10.09.2017
Сообщений: 18
29.03.2018, 22:26  [ТС]
Да, я не уточнил очень важный момент, что постоянной будет длинна хорды
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.03.2018, 22:26
Помогаю со студенческими работами здесь

Движение планеты в системе двойной звезды или движение трех тел
программа должна выводить координаты движения звезд и планеты в файл (рисую в gnuplot). во-первых, не понимаю, почему выходит, что все...

Движение по эллипсу
Здравствуйте! Не получается запустить круг по эллипсу (планету вокруг Солнца). По заданию планет несколько, но хотя бы с движением одной...

Движение круга по эллипсу
Всем привет. Нужно нарисовать движение планеты по эллипсу вокруг солнца. Подскажите пожалуйста формулу движения по эллипсу. Я вот придумал...

Движение картинки по эллипсу
нужно что изображение двигалось по форме независимо от того, что мы делаем на форме..) как некая заставка..)

Даны объемы и массы двух тел из разных материалов. Материал какого из тел имеет большую плотность?
Даны объемы и массы двух тел из разных материалов. Материал какого из тел имеет большую плотность?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru