Ejemplo n.º 1
0
        private void DrawVoroni(Vector2 addedPoint)
        {
            if (_points.Count == 1)
            {
                _triangles.Clear();
                _triangles = Delaunay.Delaunay.Triangulate(_points, new Size(PointCanvas.ActualWidth, PointCanvas.ActualHeight));
            }
            else
            {
                Delaunay.Delaunay.Triangulate(addedPoint, ref _triangles);
                DelaunayCanvas.Children.Clear();
            }

            foreach (var triangle in _triangles)
            {
                DelaunayCanvas.Children.Add(GenerateTriangle(triangle, Colors.Green));
            }

            var edges = Voronoi.CalculateEdges(_triangles);

            VoronoiCanvas.Children.Clear();
            foreach (var edge in edges)
            {
                VoronoiCanvas.Children.Add(GenerateLine(edge.Start, edge.End, Colors.Blue));
            }
        }
Ejemplo n.º 2
0
        private void ReDraw()
        {
            _triangles.Clear();
            _triangles = Delaunay.Delaunay.Triangulate(_points, new Size(PointCanvas.ActualWidth, PointCanvas.ActualHeight));

            foreach (var triangle in _triangles)
            {
                DelaunayCanvas.Children.Add(GenerateTriangle(triangle, Colors.Green));
            }

            var edges = Voronoi.CalculateEdges(_triangles);

            VoronoiCanvas.Children.Clear();
            foreach (var edge in edges)
            {
                VoronoiCanvas.Children.Add(GenerateLine(edge.Start, edge.End, Colors.Blue));
            }
        }