首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java脚本中创建3*3*3空矩阵

如何在java脚本中创建3*3*3空矩阵
EN

Stack Overflow用户
提问于 2020-05-13 12:03:42
回答 3查看 55关注 0票数 4

我正在尝试创建一个3*3*3矩阵,其中每个元素将包含一个立方体。目前,所有的立方体都在一个1D矩阵all_cube中。但我需要在matrix cube[][][]中创建相同的。

请查看以下代码进行详细解释:

代码语言:javascript
复制
function createCubie()
{
    all_cube=[];
    for(var i= -1;i<=1;i++)
    {
        for(var j= -1;j<=1;j++)
        {
            for(var k= -1;k<=1;k++)
            {
                var cube = new THREE.Mesh( geometry, material );
                cube.translateX(i*5.5);
                cube.translateY(j*5.5);
                cube.translateZ(k*5.5);

                scene.add( cube );
                all_cube.push(cube);
            }
        }

    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-13 12:35:02

您需要在每个级别创建一个数组,并将其从上一级别推送到数组中。

代码语言:javascript
复制
function createCubie()
{
    const all_cube=[];
    for(let i= -1;i<=1;i++)
    {
        const plane = [];
        all_cube.push(plane);
        for(let j= -1;j<=1;j++)
        {
            const row = [];
            plane.push(row);
            for(let k= -1;k<=1;k++)
            {
                const cube = new THREE.Mesh( geometry, material );
                cube.translateX(i*5.5);
                cube.translateY(j*5.5);
                cube.translateZ(k*5.5);

                scene.add( cube );
                row.push(cube);
            }
        }

    }
    return all_cube;
}

// ---- ignore below this line ----

// something so the code runs
const geometry = 0;
const material = 0;
const scene = { add() {} };
class Mesh { 
  constructor() {}
  translateX(v) { this.x = v; }
  translateY(v) { this.y = v; }
  translateZ(v) { this.z = v; }
}
const THREE = { Mesh };

console.log(createCubie());

票数 1
EN

Stack Overflow用户

发布于 2020-05-13 12:17:52

一种方便的方法是使用嵌套的Array.from(),它内置在映射回调中。

您的问题是您没有创建任何内部数组,而是将所有内容都推入到一个平面数组中

代码语言:javascript
复制
const arr = Array.from({length:3}, (_, i) => {
    return Array.from({length:3}, (_, j) => `row ${i}, elem ${j}`)
});


console.log(arr)

票数 2
EN

Stack Overflow用户

发布于 2020-05-13 12:14:50

矩阵只是一组n深度的嵌套数组。Javascript没有创建多维数组的能力,但可以创建n维嵌套数组,例如。

代码语言:javascript
复制
let cube = [[["x1"],["x2"],["x3"]],[["y1"],["y2"],["y3"]],[["z1"],["z2"],["z3"]]];

console.log(cube[0][0][0]);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61766222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档