Я пытаюсь воспроизвести объект multiball этого приложения (вы можете скачать его, чтобы увидеть самостоятельно). Нажмите «e», если хотите эмулировать объект на своем компьютере (это программа для планшета). Вот видео в качестве примера , хотя я настоятельно рекомендую вам скачать редактор, чтобы иметь лучшее представление.
В основном у меня есть 3 параметра: (притяжение, трение и скорость) массовая пружина действует на 2D-план, при касании экрана мяч «вращается» вокруг точки контакта, насколько я понял, равновесие - это точка контакта палец на экране.
Если кто-нибудь может объяснить мне, как я могу воспроизвести этот эффект, я буду очень благодарен.
Основываясь исключительно на просмотре нескольких секунд видео, не копаясь во внутренностях программного обеспечения, кажется правдоподобным, что мяч движется по экрану в соответствии с уравнениями движения для невынужденного двумерного затухающего гармонического осциллятора. Сдача и – координаты шара, а быть положением равновесия пружины (которое, как вы сказали, является положением, в котором ваш палец касается экрана), уравнения движения
Также необходимо указать начальные условия. Я предполагаю, что когда вы нажимаете на экран, симулятор решает приведенные выше уравнения с положением равновесия является положением вашего пальца, а начальное положение и скорость — положением и скоростью мяча в момент касания экрана.
Наконец, последний ингредиент, который нам нужен, — это граничные условия, чтобы сказать, что делает мяч, когда он достигает края экрана. Я подозреваю, что код использует отражающие граничные условия, поэтому, например, в момент, когда координата достигает минимального или максимального допустимого значения , скорость в знак изменения направления.
Чтобы на самом деле закодировать это, в общем случае вы можете использовать стандартные алгоритмы для интегрирования дифференциальных уравнений, такие как метод Рунге-Кутты . Или реализации этих методов на любом языке программирования, который вы используете. Для этой конкретной задачи, которая является линейной, вы можете использовать аналитическое решение (явную формулу, которая дает движение), например, см. Уравнение 72 заметок о волнах и колебаниях Ричарда Фицпатрика.
Андрей
Дж.Смит
Химиомеханика
Дж.Смит