聚类的关键点就是怎么计算不同线段之间的距离,显然这里使用欧式距离还是Manhattan等都是不行的了,我们需要定义自己的距离。...两条线段之间的距离计算,如下:
如果两个线段有交点,则距离为0;
否则计算两个线段的两个端点之间的距离的最小值的和。...,y=ax+b或者x=ay+b,具体看line_type的值
x1, y1, x2, y2: 线段的两个端点
:param line1,line2: [line_type, a, b,..., y2):
"""计算点到线的距离"""
if l_type:
if min(x1, x2)-5 x1, x2)+5:..., y1, x2, y2)
for ((a, b), l_type, ((y1, x1), (y2, x2))) in \
zip(lines, line_types