Я нашел решение. Я не прошел через весь источник, но имел некоторый опыт работы с интеграторами Physicsjs (https://coderwall.com/p/ntb6bg/metres-seconds-and-newtons-in-physicsjs). Я начал думать, что они могут быть причиной моей проблемы.
Таким образом, по-видимому, интеграл по вертям по умолчанию используется для моделирования Physicsjs. Я использовал его раньше, и это здорово. Но интегратор верблов использует предыдущую позицию для вычисления следующей позиции (нет простого положения, это немного сложнее, чем это), поэтому ее изменение вручную закручивает. ЧТО Я не знаю, как «исправить», или если это возможно. Но есть и другой способ.
В моем случае то, что у меня есть, представляет собой простое моделирование ньютоновских моделей без фантастических вещей или сумасшедших значений (я использую здесь технические термины ...), поэтому интегратор эйлеров работал просто отлично, и поскольку он не использует предыдущее положение для вычисления следующий он идеально подходит для «teletransport» мои объекты без потери скорости, направление и т.д.
Только не забудьте загрузить интегратор:
void function (define) { 'use strict'; define( [ 'physicsjs', 'physicsjs/behaviors/attractor', 'physicsjs/behaviors/body-collision-detection', 'physicsjs/behaviors/sweep-prune', 'physicsjs/bodies/circle', 'physicsjs/integrators/improved-euler' ], physicsModule ); // function physicsModule(physics) { return physics; } }(define);
И не забудьте добавить интегратор к моделированию:
void function (define) { 'use strict'; define( [ 'physics' ], simulationModule ); // function simulationModule(physics) { var simulation = physics(); simulation.add(physics.behavior('body-collision-detection')); simulation.add(physics.behavior('sweep-prune')); simulation.add(physics.integrator('improved-euler')); return simulation; } }(define);
Интересные взять. Я буду смотреть в него. Спасибо. – slacktracer