我正在尋找C++中的Voronoi Tessellation庫,而Voro ++似乎完美地符合這項法案。我需要某些東西 - 例如,輕鬆訪問單元格本身的屬性--Voro ++提供了非常好的功能。但是,Voro ++似乎是爲3D作品量身打造的。是否有可能在2D模式下使用Voro ++,如果可以,我會怎麼做?Voro ++可以在2D中使用嗎?
我認爲只是在3D中做所有事情,但只有具有零z分量的點才能工作(只要「盒子」的z範圍爲-0.5-0.5),但這看起來像是大規模的矯枉過正。
我正在尋找C++中的Voronoi Tessellation庫,而Voro ++似乎完美地符合這項法案。我需要某些東西 - 例如,輕鬆訪問單元格本身的屬性--Voro ++提供了非常好的功能。但是,Voro ++似乎是爲3D作品量身打造的。是否有可能在2D模式下使用Voro ++,如果可以,我會怎麼做?Voro ++可以在2D中使用嗎?
我認爲只是在3D中做所有事情,但只有具有零z分量的點才能工作(只要「盒子」的z範圍爲-0.5-0.5),但這看起來像是大規模的矯枉過正。
嗨,你可能想嘗試Viennagrid,他們的源代碼生成各種類型的網格,包括Voronoi圖。對空間維度沒有限制。該網站是
http://www.iue.tuwien.ac.at/index.php?id=viennagrid
最好的問候......
我建議您聯繫voro的作者++。我和你有同樣的問題,我直接與他聯繫,他告訴我他正在開發一個2D優化版本,甚至給出了一個初步的代碼版本來嘗試。該代碼工作得很好。即使如此,作爲另一種方法,您當然也可以使用3d版本並修正某個維度(比方說y)始終爲一,然後所有卷和數據都需要(如果有的話)瑣碎的縮放。 2D定製版本的優勢將主要是速度。
這是一個老問題,但該軟件的作者聯繫後,他確認了2D版本,以效益爲目的的,是在醞釀通過顛覆使用命令
svn checkout https://codeforge.lbl.gov/anonscm/voro/trunk
如果您有粒子數< 10萬,你可以簡單地使用和3D版本,指定的零AZ座標1
z_min = -0.5; z_max = 0.5
這似乎是偉大的網狀操縱容器的高度,但據我可以告訴它只能存儲區域每個Voronoi細胞及其細胞與每個周圍小區「接口區域」。有沒有辦法提取單元頂點的座標? – jclancy 2012-07-25 03:21:46
嗨,每個單元格對象都攜帶全局網格中頂點的索引,然後可以使用該索引使用頂點/點對象獲取全局網格中的座標。如果我沒有弄錯,所有的成員都是公開的。有一個小例子,告訴你如何做兩個單元網格。祝你好運... – 2012-07-31 15:28:51
好的,謝謝。 – jclancy 2012-08-01 01:29:02