【问题标题】:Getting polygons from voronoi edges从 voronoi 边缘获取多边形
【发布时间】:2017-01-26 08:51:14
【问题描述】:

我发现 BenDi 的 this library 可以从一组点创建 voronoi 边缘。使用以下代码,我可以计算我的 voronoi 细胞的边缘。

using System;
using System.Collections.Generic;
using BenTools.Mathematics;
namespace Voronoi
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            Vector[] V = new Vector[4];
            V[0] = new Vector(1.3, 2.8);
            V[1] = new Vector(0.5, 2.8);
            V[2] = new Vector(2, 1.8);
            V[3] = new Vector(1, 3);

            List<Vector> VoronoiSource = new List<Vector>();
            VoronoiSource.AddRange(V);

            VoronoiGraph Graph = Fortune.ComputeVoronoiGraph(VoronoiSource);
            Console.WriteLine("Graph has {0} edges", Graph.Edges.Count);

            foreach (var Edge in Graph.Edges)
            {
                Console.WriteLine("Edge: {0}", Edge.DirectionVector);
            }
        }
    }
}

输出:

Graph has 5 edges
Edge: (-0,5547;-0,8321)
Edge: (0,8192;0,5735)
Edge: (0;1)
Edge: (0,5547;0,8321)
Edge: (-0,3714;0,9285)

如何从这些边缘将 voronoi 单元计算为多边形?

【问题讨论】:

    标签: c# voronoi


    【解决方案1】:

    选择每条边的中点和到每个站点的距离,然后对结果进行排序并选择第一个和第二个(当它们相等时)并将它们保存到多边形中。对于边界,当然只有 1 条边。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-24
      • 1970-01-01
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      • 2019-03-24
      相关资源
      最近更新 更多