gpt4 book ai didi

python-2.7 - Voronoi细胞的体积( python 皮)

转载 作者:行者123 更新时间:2023-12-04 11:07:33 28 4
gpt4 key购买 nike

我正在Python 2.7中使用Scipy 0.13.0来计算3d中的一组Voronoi单元。我需要获得每个电池的体积,以进行专有仿真的输出(去加权)。有没有简单的方法可以做到这一点-当然这是一个常见的问题或Voronoi细胞的一种常见用法,但我什么也找不到。下面的代码运行,并转储scipy.spatial.Voronoi manual知道的所有信息。

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

最佳答案

如评论中所述,您可以计算每个Voronoi单元的ConvexHull。由于Voronoi细胞是凸形的,您将获得适当的体积。

def voronoi_volumes(points):
v = Voronoi(points)
vol = np.zeros(v.npoints)
for i, reg_num in enumerate(v.point_region):
indices = v.regions[reg_num]
if -1 in indices: # some regions can be opened
vol[i] = np.inf
else:
vol[i] = ConvexHull(v.vertices[indices]).volume
return vol

此方法适用于任何尺寸

关于python-2.7 - Voronoi细胞的体积( python 皮),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19634993/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com