Skip to content
Snippets Groups Projects
Select Git revision
  • 4b98c7ce337851e28c8fab87937d33baf193d689
  • master default protected
  • 27-improve-app-metadata
  • 6-fix-display-grid
  • Release_1.9.1_39 protected
  • Release_1.9.0_38 protected
  • Release_1.8.2_37 protected
  • Release_1.8.1_36 protected
  • Release_1.8.0_35 protected
  • Release_1.7.0_34 protected
  • Release_1.6.0_33 protected
  • Release_1.5.0_32 protected
  • Release_1.4.3_31 protected
  • Release_1.4.2_30 protected
  • Release_1.4.1_29 protected
  • Release_1.4.0_28 protected
  • Release_1.3.1_27 protected
  • Release_1.3.0_26 protected
  • Release_1.2.1_25 protected
  • Release_1.2.0_24 protected
  • Release_1.1.0_23 protected
  • Release_1.0.21_22 protected
  • Release_1.0.20_21 protected
  • Release_1.0.19_20 protected
24 results

hole_painter.dart

Blame
  • hole_painter.dart 1.04 KiB
    import 'dart:math';
    
    import 'package:flutter/material.dart';
    
    class HolePainter extends CustomPainter {
      @override
      void paint(Canvas canvas, Size size) {
        final paint = Paint();
        paint.color = Colors.blue;
        paint.style = PaintingStyle.fill;
    
        final center = Offset(size.height / 2, size.width / 2);
    
        final circleBounds = Rect.fromCircle(center: center, radius: 20);
    
        final topPath = Path()
          ..moveTo(-1, -1)
          ..lineTo(-1, (size.height / 2) + 1)
          ..arcTo(circleBounds, -pi, pi, false)
          ..lineTo(size.width + 1, (size.height / 2) + 1)
          ..lineTo(size.width + 1, -1)
          ..close();
        final bottomPath = Path()
          ..moveTo(-1, size.height)
          ..lineTo(-1, (size.height / 2) - 1)
          ..arcTo(circleBounds, pi, -pi, false)
          ..lineTo(size.width + 1, (size.height / 2) - 1)
          ..lineTo(size.width + 1, size.height + 1)
          ..close();
    
        canvas.drawPath(topPath, paint);
        canvas.drawPath(bottomPath, paint);
      }
    
      @override
      bool shouldRepaint(CustomPainter oldDelegate) {
        return false;
      }
    }