anchor.diff:          _newDirection += rightDirection;
           break;
       }
  -    if (_newDirection.length > 1.001) {
  -      mainDirection = _newDirection.scaleLength(1);
  +    
  +    if (_newDirection.length > _MAX_LENGTH_WITH_PRECISION) {
  +      mainDirection = _newDirection.scaleLength(_MAX_LENGTH_FOR_MAIN_DIRECTION);
       } else {
         mainDirection = _newDirection;
       }
  
positive.code:    */
    speedUP() {
      if (_speedOverEqualMaxSpeed() && _accelerationDirection == 1) {
        _accelerationDirection = 0;
      } else {
        _accelerationDirection = 1;
      }
    }
  
  
negative.code:    */
    slowDown() {
      if (_speedUnderEqualMinSpeed() && _accelerationDirection == -1) {
        _accelerationDirection = _NO_ACCELERATION_DIRECTION;
      } else {
        _accelerationDirection = _SLOW_DOWN_DIRECTION;
      }
    }
  
  