Python 判断两条线段是否相交
以下是判断两条线段是否相交的 Python 代码:
def intersect(line1, line2):
x1, y1 = line1[0]
x2, y2 = line1[1]
x3, y3 = line2[0]
x4, y4 = line2[1]
den = (y4-y3)*(x2-x1)-(x4-x3)*(y2-y1)
if den == 0: # 线段平行
return False
ua = ((x4-x3)*(y1-y3)-(y4-y3)*(x1-x3)) / den
ub = ((x2-x1)*(y1-y3)-(y2-y1)*(x1-x3)) / den
if 0 <= ua <= 1 and 0 <= ub <= 1: # 线段相交
return True
else: # 线段不相交
return False
其中,函数 intersect 接受两个参数 line1 和 line2,分别表示两条线段的两个端点坐标。函数先将坐标解包,然后计算出两条线段的交点,如果交点在两条线段内部,则判定为相交,返回 True;否则,判定为不相交,返回 False。
原文地址: https://www.cveoy.top/t/topic/n3nh 著作权归作者所有。请勿转载和采集!