线与线，面，多边形的关系
==================

1.线与线
-------------------
函数为LineXLine(P1,L1,P2,L2)  

计算直线与直线的交点，输入为两个直线上的一点和直线的斜率，，支持三维空间下的 计算，输出为
    1.直线相交输出点Array（P)

    2.直线平行输出None

    3.直线重合输出‘Line’

    4.直线相异输出None

    >>> P1, L1 = (0,0,0),(1,1,1)
    >>> P2, L2 =(0,1,0),(1,-1,1)
    >>> P = LineXLine(P1,L1,P2,L2)

p的输出值为[0.5 0.5 0.5]

2.线与面
----------------------
函数为P=LineXPlane(P0,L,R0,n) 

计算直线和平面的交点，（多边形不能是凹多边形），输入直线上的一点和直线的斜率，平面上的一点和平面的法向量，输出：
    1.相交于一点输出点Array（P1)

    2.无交点输出None

    3.直线与在平面上输出‘Line’

    >>> P0,L =Array([0,0,0]),Array([2,1,0])
    >>> R0,n = Array([0,0,0]),Array([0,-1,1])
    >>> P=LineXPlane(P0,L,R0,n)

p的输出值为array([0. , 0., 0.])

2.线与多边形
----------------------
函数为LineXPolygon(P0,L,Polygon):

计算直线和多边形的交点，（多边形不能是凹多边形）三维下的计算，输入直线上的一点和直线的斜率，多边形的矩阵，输出为：
    1.相交于一点输出点Array（P1)

    2.无交点输出None，None

    3.直线与多边形有两个交点输出‘Line’，同时会输出一段文字提示

    >>> P0 = Array([-0.5,0,0.5])
    >>> L  = Array([1,1,0])
    >>> vertices1 = [(0,0,0),(1,0,0),(1,1,1),(0,1,1)]
    >>> polygon1 = np.array(vertices1)
    >>> P = LineXPolygon(P0,L,vertices)

P的输出值为array([0. , 0.5, 0.5])