Пример #1
0
        public ActionResult GenerateFixedMap()
        {
            var points = new List <Vector2f>();

            /*
             * points.Add(new Vector2f(100, 100));
             * points.Add(new Vector2f(200, 300));
             * points.Add(new Vector2f(40, 60));
             * points.Add(new Vector2f(50, 150));
             * points.Add(new Vector2f(256, 123));
             * points.Add(new Vector2f(545, 411));
             */
            var r = new Random();

            while (points.Count < 200)
            {
                var p = new Vector2f(r.Next(10, 900), r.Next(10, 500));
                if (!points.Contains(p))
                {
                    points.Add(p);
                }
            }

            var bounds = new Rectf(10, 10, 950, 530);

            var voronoi = new Voronoi(points, bounds);

            voronoi.LloydRelaxation(2);

            var result = new GenerateFixedMapResult();

            result.Diagram    = voronoi.VoronoiDiagram();
            result.HullPoints = voronoi.HullPointsInOrder();

            return(Json(result, JsonRequestBehavior.AllowGet));
        }