如何找到边上的交点

How to find intersection points on edge

您好,我正在编写分析点数据的小脚本 - 一切都快完成了,但我一直在寻找两条线(边)之间的交点,这些点之间的长度给定。下图更好地说明了问题:

编辑:它唯一的two-dimensional问题&DB和BE之间的距离应该相等

假设您希望给定距离 DE L。你的积分 {D}{E}

{D} = {B} + x * {a}
{E} = {B} + x * {c}

其中 {a} 是归一化向量 BA{c} 是归一化向量 BC。 (这些向量必须具有相同的长度,以便相同的因子 x 可以用于两者。归一化是执行此操作的最简单方法。)

现在你有等式:

L = |{D} - {E}|
  = |x*{a} - x*{c}|

分解为向量分量:

L = sqrt((x*ax - x*cx)² + (x*ay - x*cy)²)
  = x * sqrt((ax - cx)² + (ay - cy)²)

求解 x:

x = L / sqrt((ax - cx)² + (ay - cy)²)

并在上面的第一个等式中使用找到的 x