import 'package:flutter/material.dart'; import 'dart:math' as math; /// Painter pour dessiner des petits points blancs semi-transparents sur un fond /// Utilisé pour créer un effet visuel subtil sur les fonds dégradés class DotsPainter extends CustomPainter { /// Opacité des points (0.0 à 1.0) final double opacity; /// Seed pour le générateur aléatoire (pour consistance du pattern) final int seed; /// Densité des points (nombre de pixels par point) /// Plus la valeur est élevée, moins il y a de points final int density; const DotsPainter({ this.opacity = 0.5, this.seed = 42, this.density = 1500, }); @override void paint(Canvas canvas, Size size) { final paint = Paint() ..color = Colors.white.withOpacity(opacity) ..style = PaintingStyle.fill; final random = math.Random(seed); final numberOfDots = (size.width * size.height) ~/ density; for (int i = 0; i < numberOfDots; i++) { final x = random.nextDouble() * size.width; final y = random.nextDouble() * size.height; final radius = 1.0 + random.nextDouble() * 2.0; canvas.drawCircle(Offset(x, y), radius, paint); } } @override bool shouldRepaint(covariant DotsPainter oldDelegate) { return oldDelegate.opacity != opacity || oldDelegate.seed != seed || oldDelegate.density != density; } }