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
]
}
我需要将几何关系存储在某些数据结构中,以便以后应该有助于跟踪任意方式以访问派生的几何。我制作了一张细节图片,以便人们可以获得更好的想法。有人可以帮忙..?
答案 0 :(得分:1)
如果我理解了你的问题,那么你有非常具体的数据(100个 cones 分为3层),你想要随机化的是它们之间的关系。
如果是这样,那么下一个代码可能会为您提供所需的内容:它从第一层随机选取一个圆锥,然后设置与随机选择的圆锥的关系。第二层,其中还设置与第三层中随机选择的圆锥的关系(在任何图层中没有选择圆锥两次,如在您的描述中)。这是一个带有工作实现的jsFiddle:http://jsfiddle.net/roimergarcia/j2uLE。
注意:
//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());