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

如果我理解你的问题,你有非常具体的数据(100 个锥体放置在 3 层中),你想要随机化的是它们之间的关系。

如果是这样,那么下一个代码可能会为您提供所需的内容:它从第一层随机选择一个锥体,然后设置与第二层中随机选择的锥体的关系,为此还设置与第三层中随机选择的锥体关系层(如您的描述中所述,在任何层中都没有选择两次锥体)。这是一个具有工作实现的 jsFiddle:http: //jsfiddle.net/roimergarcia/j2uLE

笔记:

  • 绘图上的 10x10 网格可以很容易地从传感器阵列的索引中生成。
  • 如果您要在每层(100000?)或很多层中生成超过 100 个锥体,则可能需要优化此算法。
//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 回答