updateVelocity method

double updateVelocity({
  1. required double currentVelocity,
  2. required double deltaTime,
  3. required double currentPosition,
  4. required double targetPosition,
})

根据当前位置、目标位置和帧间隔计算新速度。

Implementation

double updateVelocity({
  required double currentVelocity,
  required double deltaTime,
  required double currentPosition,
  required double targetPosition,
}) {
  final velocityDecayFactor = 1 - _dampingCoefficient * deltaTime;
  final springIncrease =
      _stiffnessOverMass * (targetPosition - currentPosition) * deltaTime;
  return currentVelocity * velocityDecayFactor + springIncrease;
}