Python 纯python3代码求两条直线交点坐标
问题
我们在python进行编程的时候,可能会涉及到求直线交点的问题,而有些平台numpy等库没法载入使用,因此就需要纯python代码求交点坐标。
方法
这个方法转载自评论区,直接上代码!!!
# 计算交点函数
def cross_point(line1,line2):
# 取直线坐标两点的x和y值
x1=line1[0]
y1=line1[1]
x2=line1[2]
y2=line1[3]
x3=line2[0]
y3=line2[1]
x4=line2[2]
y4=line2[3]
# L2直线斜率不存在操作
if (x4-x3)==0:
k2=None
b2=0
x=x3
# 计算k1,由于点均为整数,需要进行浮点数转化
k1=(y2-y1)*1.0/(x2-x1)
# 整型转浮点型是关键
b1=y1*1.0-x1*k1*1.0
y=k1*x*1.0+b1*1.0
elif (x2-x1)==0:
k1=None
b1=0
x=x1
k2=(y4-y3)*1.0/(x4-x3)
b2=y3*1.0-x3*k2*1.0
y=k2*x*1.0+b2*1.0
else:
# 计算k1,由于点均为整数,需要进行浮点数转化
k1=(y2-y1)*1.0/(x2-x1)
# 斜率存在操作
k2=(y4-y3)*1.0/(x4-x3)
# 整型转浮点型是关键
b1=y1*1.0-x1*k1*1.0
b2=y3*1.0-x3*k2*1.0
x=(b2-b1)*1.0/(k1-k2)
y=k1*x*1.0+b1*1.0
return [x,y]
希望我的分享能够帮到您,谢谢您的观看!!!
