Конгер Д.
Физика для разработчиков компьютерных игр
стр. 323

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

Сам класс spring не слишком сложен. Определение этого класса приведено в листинге 12.5.

В классе spring объявлены пять элементов данных. В первом из них хранится длина пружины в состоянии покоя, то есть не сжатой и не растянутой. В строках 5-6 листинга 12.5 определены элементы данных для хранения характеристик к и b пружин.

Кроме того, в классе spring объявлены указатели на материальные точки, к которым крепятся пружины. Обратите внимание — это указатели на тип point_mass_base. Это позволяет нам прикреплять пружины как к видимым, так и к невидимым материальным точкам. Проще говоря, указатели, объявленные в строках 8-9 листинга 12.5, могут указывать на объекты как класса point_mass, так и класса invisible_point_mass.

В строках 14-32 определены методы чтения и записи значений в элементы данных. Метод IsDisplaced() определяет, растянута пружина или сжата. Метод CalculateReactions () вычисляет силу, прикладываемую пружиной к материальным точкам, к которым она прикреплена. Код этих двух методов приведен в листинге 12.6.

Новости
В PUBG вышла новая карта «Санок»
Bluehole не один месяц тестировала третью карту для PUBG, и сегодня тропическая миниатюрная карта «Санок» наконец-то вышла на общих серверах.
В Warface добавили режим «Королевская битва 2.0»
В Warface разработчики добавили режим «Королевская битва 2.0». Старая версия доработана, количество игроков увеличено с 16 до 32.