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

Есть математическая модель затухающих колебаний. Всё работает как надо исключая изменение длины нити. Должна быть прямая зависимость, а получается бред. (до 1.99 всё идет правильно, но на 1.3 и 1.4 бывают неожиданные результаты). При 1м время до состояния покоя 22секунды, а 2м дают 9секунд, причем должно быть увеличение времени. А чаще всего получаются просто никак не связанные зависимости


Ответы (1 шт):

Автор решения: MBo

Вы на каждом шаге анимации находите текущий угол, и сравниваете его с пределом:

amp = abs(L_pixel * math.sin(self.theta)) 
....
elif not self.stopped and amp < amp_thresh

Если случайно на очередном шаге попали возле нуля, то считаете, что нужно остановиться.

А остановиться на самом деле нужно только тогда, когда в нижнем положении угловая скорость близка к нулю, или когда максимальная амплитуда ниже предела (смотрите в момент смены знака omega)

→ Ссылка