代码如下,cal_point = False 不输出交点,cal_point = True 输出交点
def cross(p1,p2,p3):#跨立实验
x1=p2.x-p1.x
y1=p2.y-p1.y
x2=p3.x-p1.x
y2=p3.y-p1.y
return x1*y2-x2*y1
def isIntersec(p1,p2,p3,p4,cal_point = False):
# 判断两线段是否相交
if(max(p1.x,p2.x)>=min(p3.x,p4.x) #矩形1最右端大于矩形2最左端
and max(p3.x,p4.x)>=min(p1.x,p2.x) #矩形2最右端大于矩形最左端
and max(p1.y,p2.y)>=min(p3.y,p4.y) #矩形1最高端大于矩形最低端
and max(p3.y,p4.y)>=min(p1.y,p2.y)): #矩形2最高端大于矩形最低端
if(cross(p1,p2,p3)*cross(p1,p2,p4)<=0
and cross(p3,p4,p1)*cross(p3,p4,p2)<=0):
D=1
else:
D=0
else:

本文提供了一个Python函数,用于判断两条线段是否相交,并在相交时计算交点坐标。通过比较线段端点坐标,利用叉乘判断线段关系,实现线段相交的条件检查和交点计算。
最低0.47元/天 解锁文章
1286





