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

точкам, к которым она прикреплена. Первый шаг, необходимый для вычисления этой силы, - найти длину пружины в данный момент. Это делается в строках 38-39. В отличие от метода IsDisplaced (), метод CalculateReactions () не может обойтись квадратом длины и вынужден вычислять квадратный корень.

Замечание

Вероятно, вы заметили, что метод, просчитывающий действия пружин, называется CalculateReactions (), а не Update (), как аналогичные по назначению методы других классов в платформе физического моделирования. Это решение основывается на моей личной точке зрения. Поскольку пружина никогда не отображается на экране, и единственное, что она делает - прикладывает силы к другим объектам, я посчитал, что она существенно отличается от других моделируемых объектов, и методу нужно дать другое имя.

Далее метод CalculateReactions () вычисляет магнитуду вектора, определяющего длину пружины в данный момент. В строке 47 он находит разность между этой длиной и длиной пружины в состоянии покоя. Эта разность умножается на жесткость пружины в соответствии с формулой F = —кх, где х - изменение длины пружины относительно равновесного состояния.

Гасящая сила вычисляется в строках 61-71. Вычисленная величина силы, которую развивает пружина, может оказаться меньше, чем величина гасящей силы. Так ли это, зависит от значений жесткости пружины (к) и коэффициента затухания (Ь). Если коэффициент затухания велик по сравнению с жесткостью пружины, то сила затухания может превзойти силу, развиваемую пружиной. Однако это невозможно с физической точки зрения. Поэтому оператор if в строках 74-77 гарантирует, что гасящая сила не превысит силы, развиваемой пружиной. Это в значительной степени гарантирует устойчивость моделируемой системы масс и пружин.

В строках 80-81 метод CalculateReactions () находит итоговую силу, прикладываемую пружиной к материальным точкам, к которым эта пружина прикреплена. В строках 84-86 величина этой силы преобразуется в вектор. Метод CalculateReactions () заканчивается прикладыванием этой силы (в противоположных направлениях) к обеим материальным точкам в качестве импульсной силы.

Вот, собственно говоря, и все, что нам понадобится для моделирования пружин в программе. Однако, как уже говорилось выше, придется сделать еще кое-что, чтобы пружины оставались устойчивыми.

Класс doth

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

Новости
Авторы Max Payne раскритиковали крупные игры
Глава по коммуникации студии Remedy Томас Пуха заявил, что в нынешних реалиях игрового рынка его команде пришлось реорганизовать производство.
Ubisoft выпустит эксклюзивную фигурку Father’s Calling
Компания Ubisoft сообщила, что коллекционная фигурка Father’s Calling, представляющая собой лидера организации «Врата Эдема» из Far Cry 5, поступит в продажу 22 марта 2018 года по цене 3999 рублей.