drawArea method

void drawArea(
  1. Canvas canvas,
  2. Size size,
  3. List<List<int>> values,
  4. List<List<Offset>> xPoints,
  5. List<List<Offset>> yPoints,
  6. List<int> yValues,
)

Implementation

void drawArea(
    Canvas canvas,
    Size size,
    List<List<int>> values,
    List<List<Offset>> xPoints,
    List<List<Offset>> yPoints,
    List<int> yValues) {
  Path path = Path();

  for (int j = 0; j < names.length; j++) {
    path.reset();
    path.moveTo(30, size.height - 30);

    for (int i = 0; i < values[j].length; i++) {
      var value = values[j][i];
      var pos = yValues.indexOf(value);
      path.lineTo(xPoints[i][2].dx, yPoints[pos][2].dy);
    }

    path.lineTo(
        xPoints[labels.length - 1][2].dx,
        size.height -
            30); //o preenchimento final terá o último marker das labels
    path.close();

    final paint = Paint()
      ..color = colors[j].withOpacity(0.4)
      ..style = PaintingStyle.fill;

    canvas.drawPath(path, paint);
  }
}