gpt4 book ai didi

javascript - 如何将一个大的一维数组转换成一系列小键 :pair objects in JS?

转载 作者:行者123 更新时间:2023-11-30 08:22:43 24 4
gpt4 key购买 nike

我正在尝试用 threeJS 制作免费的手绘画板。大部分部分已经完成并能够绘制形状。现在我的下一步是使用 simplify-JS用于简化多边形中的点。问题是我将我的数组作为缓冲区几何传递并使用线网格在屏幕上绘制。我正在创建类似 [x,y,z,x,y,z,x,y,z... 等等] 的数组,直到 MAX_POINTS,在我的例子中是 10000。例子

Vertices[0.555,0.323,298,0.585,0.353,298,0.615,0.373,298...continuous].

现在如何将这个顶点转换为

Vertices[{x:0.555,y:0.323,z:298}, {x:0.585,y:0.353,z:298},{x:0.615,y:0.373,z:298}]

..依此类推直到 Vertices.length.

提前致谢。

最佳答案

您可以使用简单的 for 循环遍历数组并将对象压入新数组。

var vertices = [0.555,0.323,298,0.585,0.353,298,0.615,0.373,298];
var convertedVertices = [];

for(let i = 0; i < vertices.length; i += 3){
convertedVertices.push({ x: vertices[i], y: vertices[i+1], z: vertices[i+2] })
}

console.log(convertedVertices);

更新:

将数组转换回一维顶点。

let revert = convertedVertices.reduce(((acc, obj) => acc.concat(obj.x, obj.y, obj.z)), []);

JSBin:https://jsbin.com/sohakufope/edit?js,console

JSBin:https://jsbin.com/bodazugeco/1/edit?js,console

关于javascript - 如何将一个大的一维数组转换成一系列小键 :pair objects in JS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50939473/

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