anchor.diff:    @override
     Widget build(BuildContext context) {
       final Size screenSize = MediaQuery.of(context).size;
  -    _begin = new Point(screenSize.width * 0.5, screenSize.height * 0.2);
  -    _end = new Point(screenSize.width * 0.1, screenSize.height * 0.4);
  +    if (_screenSize == null || _screenSize != screenSize) {
  +      _screenSize = screenSize;
  +      _begin = new Point(screenSize.width * 0.5, screenSize.height * 0.2);
  +      _end = new Point(screenSize.width * 0.1, screenSize.height * 0.4);
  +    }
   
       final MaterialPointArcTween arc = new MaterialPointArcTween(begin: _begin, end: _end);
       return new RawGestureDetector(
  
positive.code:     final Paint paint = new Paint();
  
      if (arc.center != null)
        drawPoint(canvas, arc.center, Colors.blue[400]);
  
      paint
        ..color = Colors.green[500].withOpacity(0.25)
  
negative.code:   @override
    Widget build(BuildContext context) {
      final Size screenSize = MediaQuery.of(context).size;
      if (_screenSize == null || _screenSize != screenSize) {
        _screenSize = screenSize;
        _begin = new Rect.fromLTWH(
          screenSize.width * 0.5, screenSize.height * 0.2,
          screenSize.width * 0.4, screenSize.height * 0.2
        );
        _end = new Rect.fromLTWH(
          screenSize.width * 0.1, screenSize.height * 0.4,
          screenSize.width * 0.3, screenSize.height * 0.3
        );
      }
  
      final MaterialRectArcTween arc = new MaterialRectArcTween(begin: _begin, end: _end);
      return new RawGestureDetector(
  