anchor.diff:      });
     }
   
  +  void handleRotationAnimation() {
  +    setState(() {
  +      _rotation = _rotationAnimation.value;
  +    });
  +  }
  +
     void onScaleStart(ScaleStartDetails details) {
  +    _rotationBefore = _rotation;
       _scaleBefore = scaleStateAwareScale();
       _normalizedPosition = details.focalPoint - _position;
       _scaleAnimationController.stop();
       _positionAnimationController.stop();
  +    _rotationAnimationController.stop();
     }
   
     void onScaleUpdate(ScaleUpdateDetails details) {
  
positive.code:       ..fling(velocity: 0.4);
    }
  
    @override
    void initState() {
      super.initState();
      _position = Offset.zero;
      _scale = null;
      _scaleAnimationController = AnimationController(vsync: this)
        ..addListener(handleScaleAnimation);
  
      _positionAnimationController = AnimationController(vsync: this)
        ..addListener(handlePositionAnimate);
    }
  
    @override
    void dispose() {
      _positionAnimationController.dispose();
      _scaleAnimationController.dispose();
      super.dispose();
    }
  
  
negative.code:     setState(() {
        _scale = newScale;
        _position = clampPosition(delta * details.scale);
        _rotation = _rotationBefore + details.rotation;
        _rotationFocusPoint= details.focalPoint;
      });
    }
  
  