gpt4 book ai didi

Javascript 将数组返回到返回函数数组的索引[0]

转载 作者:行者123 更新时间:2023-11-28 07:18:45 24 4
gpt4 key购买 nike

对 javascript 完全陌生,正在尝试做一个 webGL 项目。

这就是我最终的目标,想法是有两个 for 循环

// Create the vertex data for a grid to be drawn
function createGrid(gl, x, y) {
var vertexBuffer;
vertexBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
var matrix= []
for(var i = 0, i < x, ++i)
{
for(var j = 0, i < y, ++j)
{
matrix.push(createSquare(i,j))
}
}
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(matrix), gl.STATIC_DRAW);
var grid = {buffer:vertexBuffer, vertSize:3, nVerts:matrix.length, primtype:gl.TRIANGLE_STRIP};

return grid;
}

我本质上正在尝试动态创建一堵正方形墙。我有两个功能。

// Create the vertex data for a square to be drawn
function createSquare(gl, x, y) {

var square = [ x+ .5, y+ .5, 0.0,
x+ -.5, y+ .5, 0.0,
x+ .5,y+ -.5, 0.0,
x+ -.5,y+ -.5, 0.0];

return square;
}

// Create the vertex data for a grid to be drawn
function createGrid(gl, x, y) {
var vertexBuffer;
vertexBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);

var matrix= []
matrix.push(createSquare(gl,x,y ));

var numVerts = matrix.length;
alert(matrix[0]);

gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(matrix), gl.STATIC_DRAW);
var grid = {buffer:vertexBuffer, vertSize:3, nVerts:numVerts, primtype:gl.TRIANGLE_STRIP};

return grid;
}

让我困惑的是这条线

matrix.push(createSquare(gl,x,y ));

我期望使用在 createSquare 中创建的相同数组填充矩阵。但是,假设采用字符串格式,我的方形对象中的所有项目都位于矩阵的第一个索引中。经过搜索,我看到的只是人们根本没有归还他们的阵列。

matrix[0] = 1.5,0.5,0,0.5,0.5,0,1.5,-0.5,0,0.5,-0.5,0 and
matrix[1] = undefined

编辑:我现在明白了,matrix[0] 包含数组对象。这也是为什么我之前尝试过 array.concat() 但后来我遇到了与其他人相同的情况,数组根本没有返回。 array.push() 是唯一给我返回任何东西的函数。

最佳答案

不要将 createSquare(gl,x,y) 插入网格,只需将网格设置为等于它:

grid = createSquare(gl, x, y);

关于Javascript 将数组返回到返回函数数组的索引[0],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com