要使用Python生成泰森多边形,你可以参考以下步骤和代码示例:
准备数据:
首先,你需要准备一组离散点的坐标数据。
构建Delaunay三角网:
使用这些坐标数据构建Delaunay三角网,这是生成泰森多边形的前提。
计算泰森多边形:
根据Delaunay三角网,计算出每个三角形的垂直平分线,这些垂直平分线将组成泰森多边形。
python
from scipy.spatial import Voronoi, voronoi_plot_2d
import matplotlib.pyplot as plt
import numpy as np
from shapely.geometry import Polygon, LineString, Point, MultiPoint
from shapely.ops import polygonize
准备点数据
f = open('point.txt', 'r', encoding='utf-8')
flines = f.readlines()
points = []
for line in flines:
linelist = line.strip('\n').split('\t')
pointstr = linelist.replace('Point (', '').replace(')', '')
points.append([float(pointstr), float(pointstr)])
生成Voronoi图
vor = Voronoi(points)
使用matplotlib显示Voronoi图
voronoi_plot_2d(vor)
plt.show()
使用shapely的polygonize方法将Voronoi图的多边形转换为shapely的Polygon对象
polygons = polygonize(vor.vertices)
输出结果
for polygon in polygons:
print(polygon.exterior.coords)
请注意,上述代码示例中的`point.txt`文件应包含一系列点的坐标,每行一个点,格式为`x y`。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/58500.html