示例#1
0
    void RegenerateLines()
    {
        foreach (var line in lines)
        {
            Destroy(line);
        }
        lines.Clear();

        var triangles = BowyerWatson.Triangulate(points);

        var graph = new HashSet <Edge>();

        foreach (var triangle in triangles)
        {
            graph.UnionWith(triangle.edges);
        }

        var tree = Kruskal.MinimumSpanningTree(graph);

        foreach (var edge in tree)
        {
            Vector3 p1           = new Vector3(edge.a.x, edge.a.y);
            Vector3 p2           = new Vector3(edge.b.x, edge.b.y);
            var     line         = new GameObject();
            var     lineRenderer = line.AddComponent <LineRenderer>();
            lineRenderer.material = lineMaterial;
            lineRenderer.SetPosition(0, p1);
            lineRenderer.SetPosition(1, p2);
            lines.Add(line);
        }
    }