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的东西,我更新了代码笔。这是正确的方向,但仍然是错误的:啊,等等!这是正确的。我错了。非常感谢。