0
    var lc_relationship={"sensor1":[
        {
            "ObjectID":"sens1_001",
            "Parent":null,
            "child": sens2_050
            "z cordinate": -5
        },
        {
            "ObjectID":"sens1_002",
            "Parent":null,
            "child": sens2_072
            "z cordinate": -5

        }
       .
       .
       .
   uptill ObjectID : sens1_100
],
"sensor2":[
        {
             "ObjectID":"sens2_001",
            "Parent":sens1_068,
            "child": sens3_010
            "z cordinate": 0 

        },
        {
            "ObjectID":"sens2_002",
            "Parent":sens1_040,
            "child": sens3_080
            "z cordinate": 0

        }
       .
       .
       .
   uptill ObjectID : sens2_100
],
"sensor3":[
        {
            "ObjectID":"sens3_001",
            "Parent":sens2_055,
            "child": null
            "z cordinate": 5

        },
        {
            "ObjectID":"sens3_002",
            "Parent":sens2_029,
            "child": null
            "z cordinate": 5

        }
       .
       .
       .
   uptill ObjectID : sens3_100
]

}

ここに画像の説明を入力してください

後で派生ジオメトリにアクセスするためにどちらかの方法で追跡するのに役立つように、ジオメトリの関係をいくつかのデータ構造に格納する必要があります。より良いアイデアが得られるように、詳細な写真を作成しました。誰か助けてもらえますか..?

4

1 に答える 1

1

私があなたの質問を理解した場合、あなたは非常に具体的なデータ(3層に配置された100個のコーン)を持っており、ランダム化したいのはそれらの間の関係です。

もしそうなら、次のコードはあなたが必要とするものを与えるかもしれません:それは最初のレイヤーからランダムにコーンを選び、次に2番目のレイヤーからランダムに選択されたコーンへの関係を設定しますレイヤー(説明のように、どのレイヤーでもコーンが2回選択されることはありません)。実装が機能しているjsFiddleは次のとおりです:http://jsfiddle.net/roimergarcia/j2uLE

ノート:

  • 図面上にある10x10グリッドは、センサーアレイのインデックスから簡単に生成できます。
  • レイヤーごとに100を超えるコーン(100000?)または多数のレイヤーを生成する場合は、このアルゴリズムを最適化する必要があります。
//A helping function
function rightPad(number) {
    var tmpStr = number.toString();
    return ("000" + tmpStr).substring(tmpStr.length, tmpStr.length+3);
}

//The generator function 
function generateData(){

    var nSize = 100,
        lc_relationship,
        aSensor1 = [],
        aSensor2 = [],
        aSensor3 = [],

    lc_relationship = {
        "sensor1":[],
        "sensor2":[],
        "sensor3":[]
    }

    for(i=1; i<=nSize; i++){
        aSensor1.push(i);
        aSensor2.push(i);
        aSensor3.push(i);
    }

    for(n=0; n<nSize; n++){
        var pos1 = Math.floor(Math.random() * (nSize-n));
        var pos2 = Math.floor(Math.random() * (nSize-n));
        var pos3 = Math.floor(Math.random() * (nSize-n));

        var int1 = aSensor1[pos1]; aSensor1.splice(pos1,1);
        var int2 = aSensor2[pos2]; aSensor2.splice(pos2,1);
        var int3 = aSensor3[pos3]; aSensor3.splice(pos3,1);

        lc_relationship.sensor1[int1-1]  = {
            "ObjectID" : "sens1_" + rightPad(int1),
            "Parent":null,
            "child": "sens2_" + rightPad(int2),
            "z cordinate": -5
        } 

        lc_relationship.sensor2[int2-1]  = {
            "ObjectID" : "sens2_" + rightPad(int2),
            "Parent":"sens1_" + rightPad(int1),
            "child": "sens3_" + rightPad(int3),
            "z cordinate": 0
        }

        lc_relationship.sensor3[int3-1]  = {
            "ObjectID" : "sens3_" + rightPad(int3),
            "Parent":"sens2_" + rightPad(int2),
            "child": null,
            "z cordinate": 5
        }


    }

    return lc_relationship;
}

console.log(generateData());
于 2012-12-24T04:44:49.083 に答える