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

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

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

Author24 — интернет-сервис помощи студентам
Вопрос, скорее, по вышмату, но все же:
Необходимо составить алгоритм движения, при котором тело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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2018, 23:42
Ответы с готовыми решениями:

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

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

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

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

4
6219 / 2467 / 725
Регистрация: 11.04.2015
Сообщений: 3,987
Записей в блоге: 43
29.03.2018, 00:20 2
Цитата Сообщение от 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  [ТС] 3
Скорость определяется вторым телом. Т.е по сути, чтобы поддерживать постоянное расстояние, необходимо двигаться с постоянной скоростью, равной скорости движущего на тело1 тела2. У тела два скорость постоянна
0
6219 / 2467 / 725
Регистрация: 11.04.2015
Сообщений: 3,987
Записей в блоге: 43
29.03.2018, 11:51 4
Цитата Сообщение от Facelam Посмотреть сообщение
У тела два скорость постоянна
Постоянна линейная скорость или угловая? То есть за одинаковые промежутки времени тело должно отмерять дуги одинаковой длины или одинаковые углы радиус-вектора?

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

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

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

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

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

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

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

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

Расстояние между объектами измерять линейно не стоит, в случае если надо держать одинаковую длину дуги. Придется разбить все расстояние на мелкие дуги и уже каждую отдельно заменить хордой.
0
0 / 0 / 0
Регистрация: 10.09.2017
Сообщений: 18
29.03.2018, 22:26  [ТС] 5
Да, я не уточнил очень важный момент, что постоянной будет длинна хорды
0
29.03.2018, 22:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2018, 22:26
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru