线与线,面,多边形的关系¶
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])