代码注释很详细,如何生成泰森多边形和德洛内三角网。
用的是Python3,使用了scipy和matplotlib、numpy、shapely,引用matplotlib主要是为了看一下效果。
注释很详细,看代码就行。
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(r'point.txt','r',encoding='utf-8')
flines = f.readlines()
# 所有的点
points = []
for line in flines:
# line是这样的:1 Point (116.32600952681723072 39.87965125233392882)
linelist = line.strip('\n').split('\t')
pointstr = linelist[1].replace('Point (','').replace(')','').split(' ')
points.append([float(pointstr[0]),float(pointstr[1])])
# 记录点