drawPoint method

void drawPoint(
  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,
)

vai desenhar o ponto de encontro entre os eixos x e y

Implementation

void drawPoint(
    Canvas canvas,
    Size size,
    List<List<int>> values,
    List<List<Offset>> xPoints,
    List<List<Offset>> yPoints,
    List<int> yValues) {
  xPointValues = [];
  xPointValuesInt = [];
  yPointValuesInt = [];
  Offset endPoint = const Offset(
      0, 0); //armazena os valores finais dos pontos de interceção
  for (int j = 0; j < names.length; j++) {
    xPointValues.add([]);
    yPointValuesInt.add([]);
    Offset pointZero = Offset(30, size.height - 30);
    Offset initialPoint = pointZero;
    for (int i = 0; i < values[j].length; i++) {
      if (values[j].length == labels.length) {
        var value = values[j][i];
        var pos = yValues.indexOf(value);

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

        canvas.drawCircle(
            Offset(xPoints[i][2].dx, yPoints[pos][2].dy), 3.5, paint);

        drawLineLink(canvas, initialPoint,
            Offset(xPoints[i][2].dx, yPoints[pos][2].dy), colors[j]);
        endPoint = Offset(xPoints[i][2].dx, yPoints[pos][2].dy);

        initialPoint = Offset(xPoints[i][2].dx, yPoints[pos][2].dy);
        xPointValues[j].add(Offset(endPoint.dx, endPoint.dy));
        if (names.length == 1) {
          if (yFinalValuesSingleMap.length < values[j].length) {
            yFinalValuesSingleMap[endPoint.dx.toInt()] = (values[j][i]);
          }
        } else {
          yFinalValuesMap[endPoint.dx.toInt()] = [values[0][i], values[1][i]];
        }

        if (!xPointValuesInt.contains(endPoint.dx.toInt())) {
          xPointValuesInt.add(endPoint.dx.toInt());
        }
        yPointValuesInt[j].add(endPoint.dy.toInt());
      } else {
        developer.log('This element has diferent size than labels');
      }
    }
  }
}