drawPoint method
void
drawPoint()
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');
}
}
}
}