2010-12-30 9 views
0

私はこのデータセットを持っていると言います...数値のクロスオーバーの決定

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

これらの値がyを(x、y)座標の組にプロットし、xが配列のインデックスであるとしたら、2つの配列が1つの点で交差したかどうかをどのように判断できますか?

ありがとうございました。

+0

[sylvester.js](http://sylvester.jcoglan.com/)は、興味のあるベクトルと行列ライブラリです。 –

答えて

1

これを試してください:

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

重要な点は、いくつかのインデックスのiは[I]の値があるということである(より大きい|未満)Bよりも[i]は、との関係[I + 1]であり、b [i + 1]は逆である。

+0

大きなデータセットの場合、このメソッドは扱いにくいものになります。私はより直感的には、配列を反復処理し、[i] -b [i]> 0を実行すると思います。これは、すべての人にとって真実でなければならない。他の人には当てはまりません。配列が接触するが交差しない場合(例えば、3,2,3および1,2,1)、等しいかどうかをチェックすることもできます。 – Chris