render method

  1. @override
void render(
  1. Canvas canvas
)

Implementation

@override
void render(Canvas canvas) {
  super.render(canvas);

  double r = size.x / 2;

  // Cola
  final tailPath = Path()
    ..moveTo(r, size.y)
    ..lineTo(r * 1.3, 3 * r)
    ..lineTo(r * 1.3, size.y + r)
    ..close();
  canvas.drawPath(tailPath, paint);

  canvas.drawLine(
    Offset(2 * r, size.y),
    Offset(0 * r, 2 * r),
    paint..strokeWidth = r / 4,
  );
  canvas.drawLine(
    Offset(2 * r, 2 * r),
    Offset(0 * r, size.y),
    paint..strokeWidth = r / 4,
  );
  // Cuerpo
  canvas.drawLine(
    Offset(r, 1.5 * r),
    Offset(r, size.y),
    paint..strokeWidth = r,
  );
  canvas.drawLine(
    Offset(r, 2 * r),
    Offset(r, size.y - (r / 4)),
    Paint()
      ..color = const Color.fromARGB(97, 197, 226, 101)
      ..strokeWidth = r / 2,
  );
  // Cabeza
  canvas.drawCircle(Offset(r, r), r, paint);
  // Ojos
  final leftEyePosition = Offset(r * 1 / 2, r);
  final rightEyePosition = Offset(r * 3 / 2, r);
  canvas.drawCircle(
    leftEyePosition,
    (1 / 8) * size.x,
    Paint()..color = Color.fromARGB(255, 255, 255, 255),
  );
  canvas.drawCircle(
    leftEyePosition,
    (1 / 16) * size.x,
    Paint()..color = Color.fromARGB(255, 0, 0, 0),
  );
  canvas.drawCircle(
    rightEyePosition,
    (1 / 8) * size.x,
    Paint()..color = Color.fromARGB(255, 255, 255, 255),
  );
  canvas.drawCircle(
    rightEyePosition,
    (1 / 16) * size.x,
    Paint()..color = Color.fromARGB(255, 0, 0, 0),
  );
  // Nariz
  final nosePosition = Offset(r, r * 1.2);
  canvas.drawCircle(nosePosition, r / 10,
      Paint()..color = const Color.fromARGB(69, 0, 0, 0));
}