Voronoi.fromPoints constructor
Creates a Voronoi diagram from a list of points.
Implementation
factory Voronoi.fromPoints(List<Point> points, {List<double>? bounds}) {
final delaunay = Delaunay.fromPoints(points);
// Compute bounds from points if not provided
List<double>? computedBounds = bounds;
if (computedBounds == null && points.isNotEmpty) {
double minX = double.infinity;
double minY = double.infinity;
double maxX = double.negativeInfinity;
double maxY = double.negativeInfinity;
for (final p in points) {
if (p.x < minX) minX = p.x;
if (p.y < minY) minY = p.y;
if (p.x > maxX) maxX = p.x;
if (p.y > maxY) maxY = p.y;
}
// Add padding
final dx = maxX - minX;
final dy = maxY - minY;
final padding = math.max(dx, dy) * 0.1;
computedBounds = [
minX - padding,
minY - padding,
maxX + padding,
maxY + padding,
];
}
return Voronoi(delaunay, bounds: computedBounds);
}