确定两条迹线是否相互重叠

时间:2017-05-09 14:20:02

标签: javascript arrays math

我有两条像this plot的痕迹。

我想找到它们重叠的间隔。 对于该图,重叠间隔为[5.2,6.8]。 我的解决方案是:

  • 对于蓝色迹线上的每两个连接点(获得线性函数,称为第1行)
  • 我会搜索,这个范围内的橙色痕迹是否有任何意义。
  • 如果我找到一个,那么这一点和此点之前的点将形成一条线(得到线性函数,称之为第2行)。
  • 找到第1行和第2行的交集。
  • 如果交叉点在第1行和第2行的最小范围内,则它们相交。
  • 如果不对此点创建的行和后面的点执行相同的处理。
  • 最后,循环遍历蓝色迹线上的所有点。

我想知道还有其他有效方法可以解决这个问题吗?
我猜python和matlab可能都有内置函数来实现这一点,但我是用JavaScript编写的,所以有什么建议吗?
谢谢!

1 个答案:

答案 0 :(得分:0)

也许只是靠近这样的十字路口:

f1(x) = a1 * x + b1;
f2(x) = a2 * x + b2;
f1(x)=f2(x)
a1 * x + b1 = a2 * x + b2 | -b1 -(a2*x)
a1 * x - a2 * x = b2 - b1 | :(a1-a2)
x= (b2-b1)/(a1-a2);

这种方法适用于所有类型的函数,但如果我们有一组线性函数,我们可以通过做一些简单的数学计算得到交叉点:

<body>
Here is an example of <mark>highlight text</mark> using mark
Here is an example of <span class="highlight">highlight text</span> using span with class
Here is an example of <span style="background-color: #FFFF00">highlight text</span> using span with style
</body>