如何计算通过已知点的两组线段之间的最短距离线?

时间:2011-05-30 11:18:00

标签: geometry computational-geometry

给出两组线段(xa1..N,ya1..N)和(xb1..N,yb1..N),它们代表地质单元的上下表面,以及一个已知点(xc1) ,yc1)在地质单元内,如何找到穿过(xc1,yc1)的(xa,ya)和(xb,yb)之间的最短距离线。

1 个答案:

答案 0 :(得分:0)

如果我理解得很清楚,那么您正在通过给定点在两条给定折线之间寻找中间折线。

如果两条源折线具有相同的点数,则可以使用范围[0 1]中的参数t考虑相应线段之间的线性插值。每个新顶点都由

给出
Xti = (1 - t) Xai + t Xbi
Yti = (1 - t) Yai + t Ybi

当t = 0时,这给出了上表面,t = 1下表面和其他t中间表面。

现在仍然需要找到使该线通过的t值(xc,yc)。每个段可以通过其参数方程表示,在点i和i + 1(let j)之间,使用一些参数p。这导致以下等式:

Xc= (1 - p) Xti + p Xtj
Yc= (1 - p) Yti + p Ytj

现在,对于每个i-j段,你有一个由两个未知数(t和p)组成的两个方程组。您将保留i-j解决方案,使得p落在[0 1]

的范围内