如何找到边上的交点
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
。
您好,我正在编写分析点数据的小脚本 - 一切都快完成了,但我一直在寻找两条线(边)之间的交点,这些点之间的长度给定。下图更好地说明了问题:
编辑:它唯一的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
。