如何使用XYZ坐标点和Delaunay三角测量的面部连通性数据在红血球上获得Voronoi图?

时间:2014-11-26 13:43:49

标签: matlab geometry computational-geometry delaunay voronoi

更新(2014年1月12日):亲爱的,我一直在尝试尽可能地让Darren博士在MATLAB中对算法进行编码,但我还没有成功。我谦卑地请求一位优秀的撒玛利亚人应该帮助我使用代码并共享m文件。再次感谢。


我打算使用MATLAB / FORTRAN在RBC上获取Voronoi图。我需要以下具体信息。

  1. 使用每个Delaunay三角形的法向量的Voronoi顶点;
  2. 每个Voronoi多边形的顺序;
  3. 定义Voronoi多边形的Voronoi顶点列表;
  4. Voronoi多边形上法线的分量;
  5. Voronoi多边形的区域;
  6. Voronoi多边形的质心;
  7. 最后,使用PATCH绘制Voronoi多边形;
  8. 请在RBC和RBC_2上找到包含XYZ节点坐标的相应文本文件RBC_1的链接,其中包含来自Delaunay三角测量的面部连接数据(RBC_1和RBC_2在Zip文件中)。

    https://www.dropbox.com/s/slan053xbr2e864/RBC.zip?dl=0

    我试图遵循John Burkardt关于单位范围的工作:http://people.sc.fsu.edu/~jburkardt/m_src/sphere_voronoi/sphere_voronoi.html但它不起作用。

    提前谢谢。

    N.B任何评论和建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

查看您的文件,P中有一组点R^3,几何体的(2 - 流形)曲面三角剖分T

tria

通过注意voronoi复合体双重到底层三角剖分V,可以很容易地将其转换为曲面voronoi complex T。这意味着以下内容:

  • 对于Ei中的每个T,voronoi复合体中存在Vi
  • 对于Pi中的每个主要节点P,voronoi复合体中有一个单元Vc

voronoi复合体中的每个双边缘跨越三角形的圆形中心,该三角形与三角剖分中的相关主边缘相邻。

这种二元性意味着构造voronoi复合体的以下算法:

calculate circumcentres CC for all triangles in T

for (all edges Ei in T)
    find triangles [Ti,Tj] in T adjacent to edge Ei
    push voronoi edge Vi between centres [CC(Ti),CC(Tj)]
    associate edge Vi with voronoi cells associated with edge endpoints [Pi,Pj] in Ei
endfor

将这个付诸实践会为您的网格提供以下voronoi复合体:

voro

正如其他人所指出的那样,你的问题非常广泛,我不会试图在这里回答所有问题。


我已经制作了一组双网格构建例程here。尽管如此,基于你周末轰炸我的大量电子邮件,让我发表一些评论:(i)你应该投入一些精力来理解一些计算几何 - 不要只是盲目地使用提供的代码,以及(ii)如果你确实使用了提供的代码,请确保你努力适当地引用它。