anchor.diff:        computeNextScaleState();
         return;
       }
  +    // get magnitude from gesture velocity
  +    final double magnitude = details.velocity.pixelsPerSecond.distance;
  +
  +    // animate velocity only if there is no scale change and a significant magnitude
  +    if(_scaleBefore / _scale == 1.0 && magnitude >= 400.0 ){
  +      final Offset direction = details.velocity.pixelsPerSecond / magnitude;
  +      animatePosition( _position, clampPosition(_position + direction * 100.0), magnitude);
  +    }
  +
     }
   
     Offset clampPosition(Offset offset, [double scale]) {
  
positive.code: class _PhotoViewImageWrapperState extends State<PhotoViewImageWrapper>
      with TickerProviderStateMixin {
    Offset _position;
    Offset _normalizedPosition;
    double _scale;
    double _scaleBefore;
  
negative.code: 
    void onScaleStart(ScaleStartDetails details) {
      _scaleBefore = scaleStateAwareScale();
      _positionBefore = _position;
      _normalizedPosition = details.focalPoint - _position;
      _scaleAnimationController.stop();
      _positionAnimationController.stop();
  