У меня шары подпрыгивают, и каждый раз, когда они сталкиваются, их вектор скорости уменьшается на Коэффициент реституции.
Прямо сейчас CoR моих шаров для моих шаров составляет 0,80. Так что после многих отскоков мои шары «перестали» катиться, потому что их скорость стала смехотворно малой.
На какой стадии уместно проверить, достаточно ли мало значение скорости, чтобы просто назвать его нулем (поэтому у меня нет сумасшедшего дрожания шаров, реагирующих на их микроскорости). Ранее я читал на некоторых форумах, что люди иногда используют константу эпсилона, какое-то небольшое число и проверяют это.
Должен ли я определить константу эпсилона и сделать что-то вроде:
if Math.abs(velocity.x) < epsilon then velocity.x = 0
Каждый раз, когда я обновляю скорость и положение шаров? Это то, что обычно делается? Было бы разумно поместить это в мои сеттеры классов Vector для x и y? Или я должен делать это вне моего векторного класса, когда я вычисляю скорости.
Кроме того, что было бы разумным значением эпсилона, если бы я использовал числа с плавающей точкой для своего вектора скорости?