anchor.diff:  
       _sectionStrokePaint = Paint()..style = PaintingStyle.stroke;
   
  -    _sectionsSpaceClearPaint = Paint()
  -      ..style = PaintingStyle.fill
  -      ..color = const Color(0x00000000)
  -      ..blendMode = BlendMode.srcOut;
  -
       _centerSpacePaint = Paint()..style = PaintingStyle.fill;
     }
   
  
positive.code:         return;
        }
  
        final startRadians = radians(tempAngle);
        final sweepRadians = radians(sectionDegree);
        final endRadians = startRadians + sweepRadians;
  
        final startLineDirection =
            Offset(math.cos(startRadians), math.sin(startRadians));
        final startLineFrom = center + startLineDirection * centerRadius;
        final startLineTo = startLineFrom + startLineDirection * section.radius;
        final startLine = Line(startLineFrom, startLineTo);
  
        final endLineDirection =
            Offset(math.cos(endRadians), math.sin(endRadians));
        final endLineFrom = center + endLineDirection * centerRadius;
        final endLineTo = endLineFrom + endLineDirection * section.radius;
        final endLine = Line(endLineFrom, endLineTo);
  
        final sectionPath = _generateSectionPath(startLine, endLine, startRadians,
            endRadians, sectionRadiusRect, centerRadiusRect);
  
        _sectionPaint.color = section.color;
        _sectionPaint.style = PaintingStyle.fill;
        canvasWrapper.drawPath(sectionPath, _sectionPaint);
  
        if (section.borderSide.width != 0.0 &&
            section.borderSide.color.opacity != 0.0) {
          canvasWrapper.saveLayer(
              Rect.fromLTWH(0, 0, viewSize.width, viewSize.height), Paint());
          canvasWrapper.clipPath(sectionPath);
  
          _sectionStrokePaint.strokeWidth = section.borderSide.width * 2;
          _sectionStrokePaint.color = section.borderSide.color;
          canvasWrapper.drawPath(
            sectionPath,
            _sectionStrokePaint,
          );
          canvasWrapper.restore();
        }
        tempAngle += sectionDegree;
      }
  
      if (shouldDrawSeparators) {
        _removeSectionsSpace(canvasWrapper, holder, centerRadius);
      }
    }
  
    /// Generates a path around a section
    Path _generateSectionPath(
      Line startLine,
      Line endLine,
      double startRadians,
      double endRadians,
      Rect sectionRadiusRect,
      Rect centerRadiusRect,
    ) {
      final sweepRadians = endRadians - startRadians;
      return Path()
        ..moveTo(startLine.from.dx, startLine.from.dy)
        ..lineTo(startLine.to.dx, startLine.to.dy)
        ..arcTo(sectionRadiusRect, startRadians, sweepRadians, false)
  
negative.code:     for (var i = 0; i < data.sections.length; i++) {
        final section = data.sections[i];
        final sectionDegree = sectionsAngle[i];
  
        if (sectionDegree == 360) {
          _sectionPaint.color = section.color;
  