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线参数方程系统:

我们解决了系统

使用克莱默技术,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}。返回代码。

示例# 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