使用最小二乘法的3D矢量交集

时间:2013-01-30 15:23:36

标签: intersection least-squares

我一直试图获得一些3D线的交叉点。这些行以

的形式表示

行:s + t * r。线条并没有真正交叉,所以我想在3D中得到从该点到所有线的距离最小的点

我找到了找到两条线之间交叉点的解决方案,但就我而言,它是一组线,如5或更多。

我找到了一个解决方案,表示点a到线l:p + t * r(p是起点,r是方向矢量,t是标量值)之间的距离

d(a,l)=(|| r x(p-a)||)/ || r || =

|| ([r] x / || r ||)a - ([r] x / || r ||)p ||

该解决方案说第二个方程是形式

的最小二乘最小化问题

|| Ax-b ||

,解决方案是x =(At A)^ - 1 * At * b,At是A转置,但我不能在这里格式化。

如果我有几行,怎么能写出矩阵A和向量b?

1 个答案:

答案 0 :(得分:0)

我在这里使用MATLAB函数进行最小二乘n线交叉,并用C ++编写它用于我的用途: http://www.mathworks.com/matlabcentral/fileexchange/37192-intersection-point-of-lines-in-3d-space/content/lineIntersect3D.m

我遵循了n线交点的理论: http://en.wikipedia.org/wiki/Line-line_intersection

效果很好!