手机版 欢迎访问it开发者社区(www.mfbz.cn)网站

当前位置: > 开发

Python 纯python3代码求两条直线交点坐标

时间:2021/6/6 1:02:49|来源:|点击: 次

问题

我们在python进行编程的时候,可能会涉及到求直线交点的问题,而有些平台numpy等库没法载入使用,因此就需要纯python代码求交点坐标。


方法

这个方法转载自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]

希望我的分享能够帮到您,谢谢您的观看!!! 

 

Copyright © 2002-2019 某某自媒体运营 版权所有