start method

void start({
  1. required double startValue,
  2. required double targetValue,
  3. required double initialVelocity,
})

初始化一次从 startValuetargetValue 的弹簧运动。

Implementation

void start({
  required double startValue,
  required double targetValue,
  required double initialVelocity,
}) {
  currentPosition = startValue;
  _initialPosition = startValue;
  _targetPosition = targetValue;
  velocity = initialVelocity;
  _initialVelocity = initialVelocity;
  _springOperator = MiuixSpringOperator(
    dampingRatio: MiuixSpringDefaults.criticalDampingRatio,
    naturalPeriod:
        initialVelocity.abs() > MiuixSpringDefaults.highVelocityThreshold
            ? MiuixSpringDefaults.slowerSpringPeriodForHighVelocity
            : MiuixSpringDefaults.standardSpringPeriod,
  );
}