我目前正在用CSS制作魔方
测试:http://codepen.io/pixelass/pen/lkhIt
一切正常。我可以四面八方(与助手div在一起)
现在我需要转弯后存储仓位
多维数据集具有很多div,可用data-attributes
来定义3d网格中的位置。
例如<a href="#" data-x="1" data-y="1" data-z="1" class="part red blue yellow"> </a>
我基本上每个维度都有一个数组
这是在最外侧的x轴上旋转90度(旋转一圈)时分类的一个级别(请参阅codepen示例并单击“ TRIGGER X 1”一次)
该阵列需要修改。当然有某种模式,但是我很难弄清楚。显然,这是“最容易的转弯”。其他人可能会有点困难。
当我存储多维数据集时,我只需切换data-attribute
values
并在同一轴上沿相同方向旋转零件即可。这部分是经过深思熟虑的,可以正常工作
因此,我需要的是一种执行排序的算法:(该轴的其他级别将只使用相同的模式,因为只有第一个值发生变化(1,2,3))
[{
"x": 1,
"y": 1,
"z": 1
}, {
"x": 1,
"y": 1,
"z": 2
}, {
"x": 1,
"y": 1,
"z": 3
}, {
"x": 1,
"y": 2,
"z": 1
}, {
"x": 1,
"y": 2,
"z": 2
}, {
"x": 1,
"y": 2,
"z": 3
}, {
"x": 1,
"y": 3,
"z": 1
}, {
"x": 1,
"y": 3,
"z": 2
}, {
"x": 1,
"y": 3,
"z": 3
}]
[{
"x": 1,
"y": 3,
"z": 1
}, {
"x": 1,
"y": 2,
"z": 1
}, {
"x": 1,
"y": 1,
"z": 1
}, {
"x": 1,
"y": 3,
"z": 2
}, {
"x": 1,
"y": 2,
"z": 2
}, {
"x": 1,
"y": 1,
"z": 2
}, {
"x": 1,
"y": 3,
"z": 3
}, {
"x": 1,
"y": 2,
"z": 3
}, {
"x": 1,
"y": 1,
"z": 3
}]
也许这会有所帮助:您可以在数组上使用sort方法:
myArr.sort(function(a, b) {
if (a.z > b.z) {
return 1;
} else if (a.z < b.z) {
return -1;
} else {
if (a.y > b.y) {
return -1;
} else {
return 1;
}
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句