Javascript 确定数字的交叉

Javascript 确定数字的交叉,javascript,math,line-intersection,Javascript,Math,Line Intersection,假设我有这个数据集 var a=[5,6,7]; var b=[9,8,6] 假设这些值是在(x,y)坐标对中绘制的,x是数组索引,我怎么知道我的两个数组是否在一个点相交 谢谢。试试这个: if ((a[0] < b[0]) == (a[1] > b[1]) || (a[1] < b[1]) == (a[2] > b[2])) { // crossed } if((a[0]b[1])|| (a[1]b[2])) { //交叉 } 重要的一点是,对于某些

假设我有这个数据集

var a=[5,6,7]; var b=[9,8,6]

假设这些值是在(x,y)坐标对中绘制的,x是数组索引,我怎么知道我的两个数组是否在一个点相交

谢谢。

试试这个:

if ((a[0] < b[0]) == (a[1] > b[1]) ||
    (a[1] < b[1]) == (a[2] > b[2]))
{
    // crossed
}
if((a[0]b[1])||
(a[1]b[2]))
{
//交叉
}

重要的一点是,对于某些指数i,a[i]的值(大于|小于)比b[i],而a[i+1]和b[i+1]之间的关系正好相反。

对于较大的数据集,这种方法可能会开始显得笨拙。我认为更直观的做法是迭代数组并执行a[I]-b[I]>0。这对所有人都是正确的,如果他们不交叉,那么对所有人都是错误的。如果这对某些人来说是真的,而对其他人来说不是真的,那么他们就错了。如果数组相互接触但不交叉(例如3,2,3和1,2,1),您可能还需要检查是否相等。是一个你可能感兴趣的向量和矩阵库。