python求2条不相交实线交点

class LinerEquation:
    def __init__(self,a,b,e,c,d,f):
        self.__a=a
        self.__b=b
        self.__e=e
        self.__c=c
        self.__d=d
        self.__f=f
    def getX(self):
        return (self.__e*self.__d-self.__b*self.__f)/(self.__a*self.__d-self.__b*self.__c)
    def getY(self):
        return (self.__a*self.__f-self.__e*self.__c)/(self.__a*self.__d-self.__b*self.__c)
def getPoint(x1,y1,x2,y2,x3,y3,x4,y4):
        a=-1*(y2-y1)/(x2-x1)
        b=1
        e=y1-x1*(y2-y1)/(x2-x1)

        c=-1*(y4-y3)/(x4-x3)
        d=1
        f=y3-x3*(y4-y3)/(x4-x3)

        L=LinerEquation(a,b,e,c,d,f)
        x=L.getX()
        y=L.getY()
        return x,y
def main():
    x1,y1,x2,y2=map(float,input("Enter two endpoints of the first line segment:").split(","))

    x3,y3,x4,y4=map(float,input("Enter two endpoints of the second line segment:").split(","))
    if (y2-y1)/(x2-x1)!=(y4-y3)/(x4-x3):
        x,y= getPoint(x1,y1,x2,y2,x3,y3,x4,y4)
        print("(",x,y,")")
    else :
        print("平行或共线,不能求交点")
main()

发布了156 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44001521/article/details/104502463