voronoi细胞的质心

时间:2016-01-11 22:37:09

标签: algorithm computational-geometry voronoi

给定一个voronoi边缘列表,如何在合理的时间内得到每个单元格的质心?注意我只有Voronoi图的边缘,但我必须识别质心。

在给定Delaunay三角剖分的情况下构造Voronoi图,以便三角测量也可用于计算。

谢谢!

2 个答案:

答案 0 :(得分:2)

algorithm from wikipedia应该有效。它只需要您输入分隔每个单元格的点的坐标。由于Voronoi单元保证是非自相交和凸起的,因此这应该足够了。转码(StackOverflow不能很好的数学运算)

  

由...定义的非自相交闭合多边形的质心   ''n''顶点(x 0 ,y 0 ),   (x 1 ,y 1 ),...,   (x n-1 ,y n-1 )是   点(C x ,C y ),由

给出
Cx = 1/(6*A) * sum((x[i] + x[i+1]) * (x[i]*y[i+1] - x[i+1]*y[i])
Cy = 1/(6*A) * sum((y[i] + y[i+1]) * (x[i]*y[i+1] - x[i+1]*y[i])
     

使用A区域,计算为

A = 1/2 * sum(x[i]*y[i+1] - x[i+1]*y[i])
     

所有sum表示从i = 0到i = n-1

的Σ

答案 1 :(得分:0)

首先确定特定单元格的所有边缘,然后对于该单元格,将x分量平均分开,然后将y分量平均分开,然后该线性组合是质量中心'一个细胞。然后对Voronoi图中的每个单元格执行相同的操作。