lines_intersection
函数计算交点两行之间的3 d或2 d空间。
作者&支持:尼古拉万博1manbetx斯。douillet free.fr(在),2020年。
内容
语法
(我,rc) = lines_intersection (u1, M1, M2, u2);
(我,rc) = lines_intersection (u1, M1, M2, u2,冗长的);
描述
(我,rc) = lines_intersection (u1, M1, M2, u2)计算交点行L1 (M1, u1)和L2 (M2, u2)并将其存储在。一个独特intersction给返回代码rc = 1,没有交集了rc = 0,无穷多的十字路口(L1 = L2)给rc = 2。
(我,rc) = lines_intersection (u1, M1, M2, u2,冗长的)设置详细模式详细逻辑/ 1时,身上不(详细模式)当verbose = *假/ * 0。
原则
鉴于L1和L2线参数方程系统:
- x (t) = x1 + a1 * t
- y (t) = y₁+ b1 * t
- z (t) = z1 + c1 * t
- x (t) = x2 + a2 * u
- y ' (t) = y2 + b2 * u
- z ' (t) = z2 + c2 * u
我们解决了系统
- x = x '
- y = y '
- z = z '
使用克莱默技术,t和u的未知数。
另请参阅
line_plane_intersection|planes_intersection|point_to_line_distance|point_to_plane_distance|
输入参数
属于L1 - M1:一个点。行或列向量。2 < =元素个数(M1) < = 3。
L1 - u1:一个董事行或列向量。2 < =元素个数(u1) < = 3。
属于L2 - M2:一个点。行或列向量。2 < =元素个数(M2) < = 3。
——u2: L1董事行或列向量。2 < =元素个数(u2) < = 3。
- verbose:逻辑*假/真或数字* 0/1。
输出参数
-我:双矢量,行L1和L2的交点。(我)=大小(u1)。
- rc:数字、整数标量的{0 1 2}。返回代码。
- 0:无效的十字路口
- 1:一个独特的交点
- 2:无限的交集点
示例# 1
3 d单点交叉
M1 = (6 6 6);u1 = (1 1 1);M2 = [1 0 2];u2 = [0 1 1];(我,rc) = lines_intersection (u1, M1, M2, u2,真的)%预计:I = [1 1 1], rc = 1
1和2线相交于一个独特的观点。I = 1.0000 1.0000 1.0000 rc = 1
例# 2
2 d单点交叉
M1 = [0 1];u1 = 1 [2];M2 = [0 4];u2 = (1 - 2);(我,rc) = lines_intersection (u1, M1, M2, u2,真的)%预计:I = [2 0 0], rc = 1
1和2线相交于一个独特的观点。I = 2.0000 - 0.0000 0 rc = 1
示例# 3
3 d空间交点
M1 = 11 13 [7];u1 = (2 3 5);M2 = [17 19 23];u2 = 11 13 [7];(我,rc) = lines_intersection (u1, M1, M2, u2,真的)%预计:I = [], rc = 0
线1和2没有交集。I = [] rc = 0
示例# 4
3 d、L1, L2列向量
M1 = (2 2 2) ';u1 = (1 1 1) ';M2 = (3 3 3) ';u2 = (1 1 1) ';(我,rc) = lines_intersection (u1, M1, M2, u2,真的)%预计:rc = 2
L1, L2:线1和2是相同的。我= 2 2 2 rc = 2