Пример #1
0
        public static Voronoi Relax(Voronoi voronoi, List <Vector2> toRelax = null)
        {
            var regions = voronoi.Partitioning();

            var points = Enumerable.Except <Vector2> (voronoi.Points, voronoi.Frame).ToList();

            toRelax = toRelax ?? voronoi.Points;

            foreach (var region in regions)
            {
                if (toRelax.Contains(region.Seed))
                {
                    points.Remove(region.Seed);
                    points.Add(region.Center());
                }
            }
            return(Build(points));
        }