4
我在Python 2.7中使用Scipy 0.13.0來計算3D中的一組Voronoi單元。我需要獲得每個單元的體積以用於專有仿真的(去)權重輸出。有沒有簡單的方法來做到這一點 - 這肯定是Voronoi單元的常見問題或常見用法,但我找不到任何東西。以下代碼將運行,並轉儲scipy.spatial.Voronoi manual知道的所有內容。Voronoi單元的體積(python)
from scipy.spatial import Voronoi
x=[0,1,0,1,0,1,0,1,0,1]
y=[0,0,1,1,2,2,3,3.5,4,4.5]
z=[0,0,0,0,0,1,1,1,1,1]
points=zip(x,y,z)
print points
vor=Voronoi(points)
print vor.regions
print vor.vertices
print vor.ridge_points
print vor.ridge_vertices
print vor.points
print vor.point_region
具有沃羅諾伊頂點位於外側的數據的凸包是預期行爲。沃羅諾伊頂點是相同點集的Delaunay三角剖分的三角形的外心,如果你有邊緣附近的薄三角形,他們的外部中心可能遠在博外原始點集的最後部分。 –
謝謝@pv。我認爲可能是這種情況,但由於我沒有在我可以繪製的2D測試案例中看到它,所以我不確定。 –
Qhull文檔[建議計算凸包](http://www.qhull.org/html/qh-faq.htm#volume),而不是每個voronoi區域的delaunay,但否則其中的建議與您的做上面的,所以它可能是最好的可用方式。原則上,Scipy Qhull包裝器也可以計算凸包體積,但似乎Qhull似乎沒有提供直接獲得voronoi區域體積的方法,而無需額外的凸包計算。 –