drawSmileyFace method

void drawSmileyFace(
  1. Canvas canvas,
  2. double radius,
  3. Offset center,
  4. Size size,
)

Implementation

void drawSmileyFace(Canvas canvas, double radius, Offset center, Size size) {
  // Draw the body
  final paint = Paint()..color = Colors.lightGreen;
  canvas.drawCircle(center, radius, paint);

  // Draw the mouth
  final smilePaint = Paint()
    ..style = PaintingStyle.stroke
    ..strokeWidth = 5;

  var startPoint = Offset(25.0, size.height / 2 + 10.0);
  var firstControlPoint = Offset(size.width / 4, size.height / 2 + 35.0);
  var secondControlPoint = Offset(3 * size.width / 4, size.height / 2 + 35.0);
  var endPoint = Offset(size.width - 25.0, size.height / 2 + 10.0);

  var path = Path();
  path.moveTo(startPoint.dx, startPoint.dy);
  path.cubicTo(firstControlPoint.dx, firstControlPoint.dy,
      secondControlPoint.dx, secondControlPoint.dy, endPoint.dx, endPoint.dy);
  canvas.drawPath(path, smilePaint);

  // Draw the eyes
  canvas.drawCircle(
      Offset(center.dx - radius / 2, center.dy - radius / 2 + 10.0),
      8,
      Paint());
  canvas.drawCircle(
      Offset(center.dx + radius / 2, center.dy - radius / 2 + 10.0),
      8,
      Paint());
}