anchor.diff:      PaintHolder<PieChartData> holder,
     ) {
       final data = holder.data;
  -    final shouldDrawSeparators =
  -        data.sectionsSpace != 0 && data.sections.length > 1;
  -
       final viewSize = canvasWrapper.size;
  -
  -    if (shouldDrawSeparators) {
  -      canvasWrapper.saveLayer(
  -          Rect.fromLTWH(0, 0, viewSize.width, viewSize.height), Paint());
  -    }
   
       final center = Offset(viewSize.width / 2, viewSize.height / 2);
   
  
positive.code:       ..arcTo(centerRadiusRect, endRadians, -sweepRadians, false)
        ..moveTo(startLine.from.dx, startLine.from.dy)
        ..close();
    }
  
    /// firstly the sections draw close to eachOther without any space,
    /// then here we clear a line with given [PieChartData.width]
    void _removeSectionsSpace(
      CanvasWrapper canvasWrapper,
      PaintHolder<PieChartData> holder,
      double centerRadius,
    ) {
      final data = holder.data;
      final viewSize = canvasWrapper.size;
      const extraLineSize = 1;
      final center = Offset(viewSize.width / 2, viewSize.height / 2);
  
      var tempAngle = data.startDegreeOffset;
      data.sections.asMap().forEach((index, section) {
        final previousIndex = index == 0 ? data.sections.length - 1 : index - 1;
        final previousSection = data.sections[previousIndex];
  
        final maxSectionRadius = math.max(section.radius, previousSection.radius);
  
        final startAngle = tempAngle;
        final sweepAngle = 360 * (section.value / data.sumValue);
  
        final sectionsStartFrom = center +
            Offset(
              math.cos(radians(startAngle)) * (centerRadius - extraLineSize),
              math.sin(radians(startAngle)) * (centerRadius - extraLineSize),
            );
  
        final sectionsStartTo = center +
            Offset(
              math.cos(radians(startAngle)) *
                  (centerRadius + maxSectionRadius + extraLineSize),
              math.sin(radians(startAngle)) *
                  (centerRadius + maxSectionRadius + extraLineSize),
            );
  
        _sectionsSpaceClearPaint.strokeWidth = data.sectionsSpace;
        canvasWrapper.drawLine(
            sectionsStartFrom, sectionsStartTo, _sectionsSpaceClearPaint);
        tempAngle += sweepAngle;
      });
      canvasWrapper.restore();
    }
  
    /// Calculates layout of overlaying elements, includes:
  
negative.code: 
      _sectionStrokePaint = Paint()..style = PaintingStyle.stroke;
  
      _centerSpacePaint = Paint()..style = PaintingStyle.fill;
    }
  
  