drawPolygon method
void
drawPolygon(})
Implementation
void drawPolygon(
Canvas canvas,
Paint paint,
List<Offset> points, {
bool close = false,
bool refillPaint = true,
double? maxWidth,
}) {
if (points.isEmpty) {
return;
}
if (points.length == 1) {
canvas.drawPoints(PointMode.points, points, paint);
return;
}
Line line = Line(points,smoothRatio:smooth ? 0.4 : null,dashList: dash );
Path path = line.path(close);
if (refillPaint) {
Rect? rect;
if (shader != null) {
if (close) {
rect = path.getBounds();
} else {
double left = double.infinity;
double top = double.infinity;
double right = double.negativeInfinity;
double bottom = double.negativeInfinity;
for (var element in points) {
left = min(element.dx, left);
right = max(element.dx, right);
top = min(element.dy, top);
bottom = max(element.dy, bottom);
}
}
}
fillPaint(paint, rect: rect, maxStrokeWidth: maxWidth);
}
if (shadow != null) {
path.drawShadows(canvas, Paint(), path, [shadow!]);
}
canvas.drawPath(path, paint);
}