3

我正在寻找 C++ 中的 Voronoi Tessellation 库,而 Voro++ 似乎完全符合要求。我需要某些东西 - 例如,轻松访问单元格本身的属性 - Voro++ 提供的非常好。然而,Voro++ 似乎是为 3D 工作量身定制的。是否可以在 2D 模式下使用 Voro++,如果可以,我该怎么做?

我认为只是在 3D 中做所有事情,但只有零 z 分量的点会起作用(只要“盒子”的 z 范围为 -0.5 - 0.5),但这似乎有点过分了。

4

3 回答 3

1

嗨,您可能想尝试 Viennagrid,他们的源代码生成各种类型的网格,包括 Voronoi 图。空间维度没有限制。该网站是

http://www.iue.tuwien.ac.at/index.php?id=viennagrid

最好的祝福...

于 2012-07-22T05:34:09.200 回答
1

这是一个老问题,但在联系了软件的作者后,他确认了一个 2d 版本,对提高效率很有用,正在通过 Subversion 使用命令制作

svn checkout https://codeforge.lbl.gov/anonscm/voro/trunk

如果您的粒子数 < 100000,您可以简单地使用 3d 版本,指定 az 坐标为零,容器高度为 1

z_min = -0.5; z_max = 0.5
于 2015-07-29T16:11:06.833 回答
0

我建议你联系 voro++ 的作者。我和你有同样的问题,我直接联系他,他告诉我他正在做一个2D优化的版本,甚至给出了一个初步的代码版本来尝试。该代码运行良好。

即便如此,作为另一种方法,您当然可以使用 3d 版本并将某个维度(假设 y)固定为长度始终为 1,然后您的所有卷和数据将需要(如果有的话)微不足道的缩放。2d 定制版的优势主要在于速度。

于 2013-04-06T17:10:00.483 回答