【发布时间】:2021-09-10 08:13:34
【问题描述】:
我需要一种算法来找到以下网格中每个单元格的中心坐标。
网格的最中间是 0,0 坐标。宽250,高250。
注意:y 轴是倒置的,需要这样。
这是我在网上找到的一些信息尝试的,但并不完全是。
const size = 250
const divisions = 5
let step = size / divisions;
let halfSize = size / 2;
let vertices = [];
let arr = [];
for (let i = 0, z = -halfSize + step; i < divisions - 1; i++, z += step ) {
//x axis
vertices.push(-halfSize + (step/2), 0, z - (step/2), halfSize - (step/2), 0, z - (step/2));
//z axis
vertices.push(z - (step/2), 0, -halfSize + (step/2), z - (step/2), 0, halfSize - (step/2));
}
for (let i = 0; i < vertices.length; i += 3) {
const position = {}
position.x = vertices[i];
position.y = vertices[i + 1];
position.z = vertices[i + 2];
arr.push(position)
}
预期坐标(无特定顺序)。在这种情况下,我只是根据需要交换 y 和 z 值。
[
{
"x": -100,
"y": 0,
"z": -100
},
{
"x": -50,
"y": 0,
"z": -100
},
{
"x": 0,
"y": 0,
"z": -100
},
{
"x": 50,
"y": 0,
"z": -100
},
{
"x": 100,
"y": 0,
"z": -100
},
{
"x": -100,
"y": 0,
"z": -50
},
{
"x": -50,
"y": 0,
"z": -50
},
{
"x": 0,
"y": 0,
"z": -50
},
{
"x": 50,
"y": 0,
"z": -50
},
{
"x": 100,
"y": 0,
"z": -50
},
{
"x": -100,
"y": 0,
"z": 0
},
{
"x": -50,
"y": 0,
"z": 0
},
{
"x": 0,
"y": 0,
"z": 0
},
{
"x": 50,
"y": 0,
"z": 0
},
{
"x": 100,
"y": 0,
"z": 0
},
{
"x": -100,
"y": 0,
"z": 50
},
{
"x": -50,
"y": 0,
"z": 50
},
{
"x": 0,
"y": 0,
"z": 50
},
{
"x": 50,
"y": 0,
"z": 50
},
{
"x": 100,
"y": 0,
"z": 50
},
{
"x": -100,
"y": 0,
"z": 100
},
{
"x": -50,
"y": 0,
"z": 100
},
{
"x": 0,
"y": 0,
"z": 100
},
{
"x": 50,
"y": 0,
"z": 100
},
{
"x": 100,
"y": 0,
"z": 100
}
]
【问题讨论】:
-
请发布您迄今为止尝试过的任何代码。
-
你确定这是javascript相关的问题吗?如果是,请至少使用 javascript 在您绘制网格的位置发布代码。
-
@dalelandry 我用我尝试过的代码和预期的结果编辑了帖子。
-
@Xth 是的,它与threejs有关,我曾尝试在那里询问但没有成功。
标签: javascript algorithm math