Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ThreeJS:创建三角形条带_Javascript_Three.js - Fatal编程技术网

Javascript ThreeJS:创建三角形条带

Javascript ThreeJS:创建三角形条带,javascript,three.js,Javascript,Three.js,我知道这已经被问了很多次了,但我似乎找不到适合我的答案。 我就在这里: 我根据窗口大小创建一个网格,并将其存储在一个数组中。然后我遍历该数组并尝试创建某种三角形网格 const gridSize = 50; // some other code... var gridX = Math.ceil(windowX / gridSize); var gridY = Math.ceil(windowY / gridSize); // render grid for (var y = 0; y &l

我知道这已经被问了很多次了,但我似乎找不到适合我的答案。
我就在这里:

我根据窗口大小创建一个网格,并将其存储在一个数组中。然后我遍历该数组并尝试创建某种三角形网格

const gridSize = 50;

// some other code...

var gridX = Math.ceil(windowX / gridSize);
var gridY = Math.ceil(windowY / gridSize);

// render grid
for (var y = 0; y < gridY; y++) {
    var currentY = y * gridSize;
    grid[y] = [];

    for (var x = 0; x < gridX; x++) {
        var currentX = x * gridSize;
        grid[y].push(new THREE.Vector3(currentX, currentY, Math.random() * 100));
    }
}

// create triangle strip
for (var y = 0; y+1 < grid.length; y++) {
    var current = grid[y];

    for (var x = 0; x+1 < current.length; x++) {
        var arrayPosition = x + y;

        // triangle
        var v1 = grid[y][x];
        var v2 = grid[y+1][x];
        var v3 = grid[y][x+1];

        geom.vertices.push(v1);
        geom.vertices.push(v2);
        geom.vertices.push(v3);

        geom.faces.push( new THREE.Face3( arrayPosition, arrayPosition + 1, arrayPosition +2 ) );

    }
}

var obj = new THREE.Mesh( geom, material );
scene.add(obj);
const gridSize=50;
//其他一些代码。。。
var gridX=Math.ceil(windowX/gridSize);
var gridY=Math.ceil(windowY/gridSize);
//渲染网格
对于(变量y=0;y
此代码用于创建网格。但由于某种原因,我无法理解,它只是通过第一个
Y
坐标运行,并忽略以下网格点

我相信问题出在
createtrianglestrip
循环的某个地方,但我找不到它。有人能帮忙吗


谢谢

我认为你的var数组位置=x+y;这是错误的


我想你需要类似((y*current.length)+x)*3的东西,我更新了代码笔。这是正确的方向,但仍然是错误的:啊,等等!这是正确的。我错了。非常感谢。