我正在寻找C ++中的Voronoi Tessellation库,而Voro ++似乎完全符合该法案。我需要某些东西 - 例如,轻松访问单元格本身的属性 - Voro ++提供的非常好。但是,Voro ++似乎是为3D工作量身定制的。是否有可能在2D模式下使用Voro ++,如果是这样,我该怎么做?
我认为只是在3D中做所有事情,但只有零z分量的点可以工作(只要“框”具有z范围-0.5 - 0.5),但这看起来像是大规模的过度杀伤。
答案 0 :(得分:1)
您好,您可能想尝试Viennagrid,他们的源代码生成各种类型的网格,包括Voronoi图。对空间维度没有限制。该网站是
http://www.iue.tuwien.ac.at/index.php?id=viennagrid
最好的问候......
答案 1 :(得分:1)
这是一个老问题,但在与软件作者联系后,他确认了一个有效的目的的二维版本正在通过Subversion使用命令进行制作
svn checkout https://codeforge.lbl.gov/anonscm/voro/trunk
如果你有粒子数< 100000你可以简单地使用3d版本,指定z坐标为零,容器高度为1
z_min = -0.5; z_max = 0.5
答案 2 :(得分:0)
我建议你联系voro ++的作者。我和你有同样的问题,我直接联系了他,他告诉我他正在研究2D优化版本,甚至还提供了一个初步的代码版本来试试。该代码运行良好。
即便如此,作为另一种方法,您当然可以使用3d版本并修复某些维度(假设y)总是长度为1,然后所有的卷和数据都需要(如果有的话)微不足道的缩放。 2d量身定制版的优势主要是速度。