基于扫描线算法的Voronoi细分
SweeplineVT的Python项目详细描述
sweep linevt—使用扫描线算法的Voronoi细分
pip install SweeplineVT
说明
- 基于Steven Fortune 1986年提出的扫描线算法的Voronoi细分
- 进行质心Voronoi细分(CVT)
- 做Delaunay三角测量
- 在不需要像素化/分块的情况下精确定位点。在
- 将Voronoi图限制在矩形区域内
示例
对点列表进行Voronoi细分
- “的内容”示例.dat““
slvt.py example.dat --calCentroid
pl_VT.py example_VT.dat example_ctd.dat -s
红点是Voronoi站点(输入点来自“示例.dat"). 绿线将每个位点与相应的细胞质心连接起来。在
对0<;x<;7,0<;y<;5中的14个点进行质心Voronoi细分(CVT)。
slvt.py --makeCVT 14 --border 0,7,0,5 -s
pl_VT.py CVT14_VT.dat -s
“-s”的slvt.py公司意思是“沉默”-pl的“s”_VT.py公司“步”的意思。在
- 您可能会看到一个可能的结果:
显示细胞面积分布
from SweeplineVT import Voronoi
import pylab as pl
x=np.random.random(size=10)
y=np.random.random(size=10)
vor=Voronoi(events=np.vstack((x,y)).T,calArea=True,autoscale=False)
Area,ind,cts=vor.getarealist()
Area/=np.array(cts)
pl.hist(Area)
输出文件
- {FileName}_VT.dat公司:每个项目对应一个单元格边缘。这9列是:
- 1: 边缘索引
- 2-3和3-4:边的两个Voronoi顶点(节点)的坐标
- 5-6和7-8:最近的两个Voronoi站点的坐标(Delaunay图)
- 使用“--calCentroid”,{FileName}_ctd.dat.日期每个单元格对应一个项目。6列为:
- 1: 细胞/部位索引。在
- 2-3:细胞的Voronoi位点
- 4-5:单元的质心
- 6: 单元的面积
- 7: 站点重复编号(>1表示重复)
- 使用“--calArea”,{FileName}_面积数据:每个项目对应一个单元格。6列为:
- 1: 细胞/部位索引。在
- 2-3:细胞的Voronoi位点
- 4: 单元的面积
- 5: 站点重复编号(>1表示重复)
- 项目
标签: