三维

时间:2015-09-28 13:30:10

标签: computer-vision computational-geometry

我想在3D中找到2行的截距。我怎样才能检查它们是否真的拦截了我们最初计算真正的3D coorindate。然后我该如何计算该特定点的3D坐标?

其次,据我所知,如果两条线没有拦截,就不可能找到拦截点。因此,我想找到一种计算3d点的方法,该点与两点之间的最小距离。我有两个最小距离要求:
 1.连接两点的最短距离,取中间点作为结果  2.找到距离两条线最短的垂直距离

有人可以给我一些提示吗?

1 个答案:

答案 0 :(得分:1)

让第一行为P+u.U,第二行为Q+v.V,其中大写字母为3D向量。

您希望最小化(平方)距离,即

D²(u, v) = ((P+u.U) - (Q+v.V))²

然后,从uv推导,得到方程组

D²'u(u, v) = 2U.D(u, v) = 0
D²'v(u, v) = 2V.D(u, v) = 0

U.P + U².u - U.Q - U.V.v = 0
V.P + U.V.u - V.Q - V².v = 0

解决2个未知数uv中2个方程的线性系统,并从这些方程中得到最近的点。

在线条平行的特殊情况下,系统行列式U²V²-(U.V)²为零,正如人们所期望的那样(实际上它是叉积(UxV)²的平方)。您可以随意设置u=0并解析v

相关问题