これはかなり概念的なものであり、誰かが助けてくれることを願っています。座標 (x、y、0 -> 800 から) を挿入すると、3 つの別々の範囲内にある事前にプロットされた座標のリストが返されるというスクリプトがあります。
例: 200,200 と入力します。次のそれぞれのリストを受け取ります: 半径 25 以内、半径 60 以内、半径 150 以内のプロット。
興味がある場合のコード/コンテキスト:
display(coords[n][1] + ", " + coords[n][2]);
if(n==0){
for(var i=0; i < data.length; i++) {
var xs = 0;
var xy = 0;
xs = xPlot - data[i][0];
ys = yPlot - data[i][1];
xs = xs * xs;
ys = ys * ys;
distance = Math.sqrt(xs + ys);
if (distance <= 25){
display2(data[i][0] + ", " + data[i][1] + " - " + alliance);
}
else if(distance <= 60){
display3(data[i][0] + ", " + data[i][1] + " - " + alliance);
}
else if(distance <= 150){
display4(data[i][0] + ", " + data[i][1] + " - " + alliance);
}
}
簡単です。
ここで、別の座標セットを入力すると、別の多次元配列が作成され、2 つ (まあ、6 つ) の円内の交点をチェックしたいと思います。
チェックに配列を使用することを考えました。2 つの座標が入力され、点が両方の内側 (緑) の円内にある場合、a = [g,g]。ポイントが一方の内側にあるが、他方の中央 (青) にある場合は、a = [g,b] を設定します。赤は外側の円です。
3 つの座標が入力されると、さらに複雑になります。ポイントが2つの内側と1つの中間にあるとしましょう。次に、a = [g、g、b]。3 つのリストの目的は、返された値を最良のグループから最悪のグループに編成することです。したがって、4 つの入力がある例では、リストは次のように編成されます。
リスト 1 / リスト 2 / リスト 3
gggg / gggb / bbbr
------- / ggbb / bbrr
------- / gbbb / brrr
------- / bbbb / rrrr
スケーラブルな方法で配列をチェックするにはどうすればよいですか?5 つの入力がある場合、結果を適切な列に配置できますか?
私はこのソファから始めました:
else if(n>0){
for(var i=0; i < data.length; i++) {
for(var j=0; j < coords.length; j++) {
var xs = 0;
var ys = 0;
xs = coords[j][1] - data[i][0];
ys = coords[j][2] - data[i][1];
xs = xs * xs;
ys = ys * ys;
distance = Math.sqrt(xs + ys);
if (distance <= 25){
a[j] = [,[g]];
}
else if (distance <= 60){
a[j] = [,[b]];
}
else if (distance <= 150){
a[j] = [,[r]];
}
}
if($.inArray('g', a) && (!($.inArray('b', a)))){
display2(data[i][0] + ", " + data[i][1] + " - " + alliance);
}
a に g が含まれていて b が含まれていない場合、この最後の行は実行されますか?? (jquery) 私は正しい軌道に乗っていますか?