import 'dart:math' as math; import 'package:flutter/material.dart'; class Page4 extends StatelessWidget { const Page4({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('Circles'), ), body: SizedBox( width: double.infinity, child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, crossAxisAlignment: CrossAxisAlignment.center, children: [ CustomPaint( painter: _MyPainter(), size: const Size(50, 50), ), CustomPaint( painter: _MyPainter2(), size: const Size(50, 50), ), CustomPaint( painter: _MyPainter3(), size: const Size(50, 50), ), CustomPaint( painter: _MyPainter4(), size: const Size(50, 50), ), ], ), ), ); } } class _MyPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { final paint = Paint() ..color = Colors.black ..strokeWidth = 5 ..style = PaintingStyle.stroke; canvas.drawArc( Rect.fromLTWH(0, 0, size.width, size.height), 0, math.pi / 2, false, paint, ); } @override bool shouldRepaint(covariant _MyPainter oldDelegate) => true; } class _MyPainter2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { final paint = Paint() ..color = Colors.black ..strokeWidth = 5 ..style = PaintingStyle.stroke; canvas.drawArc( Rect.fromLTWH(0, 0, size.width, size.height), 0, math.pi, false, paint, ); } @override bool shouldRepaint(covariant _MyPainter2 oldDelegate) => true; } class _MyPainter3 extends CustomPainter { @override void paint(Canvas canvas, Size size) { final paint = Paint() ..color = Colors.black ..strokeWidth = 5 ..style = PaintingStyle.stroke; canvas.drawArc( Rect.fromLTWH(0, 0, size.width, size.height), 0, 3 * math.pi / 2, false, paint, ); } @override bool shouldRepaint(covariant _MyPainter3 oldDelegate) => true; } class _MyPainter4 extends CustomPainter { @override void paint(Canvas canvas, Size size) { final paint = Paint() ..color = Colors.black ..strokeWidth = 5 ..style = PaintingStyle.stroke; canvas.drawArc( Rect.fromLTWH(0, 0, size.width, size.height), 0, 2 * math.pi, false, paint, ); } @override bool shouldRepaint(covariant _MyPainter4 oldDelegate) => true; }