You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

3D网格(立方体)顶点位置计算算法咨询:求24个顶点的(x,y,z)坐标

如何生成指定划分的3D立方体网格顶点坐标?

嘿,这个问题其实很好解决,咱们一步步来拆解,保证你能快速生成所有24个顶点的坐标!

核心思路

首先得明确:3D网格的顶点其实就是三个轴上的坐标点的笛卡尔积——简单说就是X轴的每个点,和Y轴的每个点、Z轴的每个点都组合一遍,就能得到所有顶点。

1. 先确定立方体的边界范围

首先你需要定义你的立方体在3D空间中的位置,比如最简单的单位立方体(从(0,0,0)到(1,1,1)),当然你也可以换成任何你需要的范围(比如从(-1,-2,0)到(3,5,4)),这个完全灵活。

2. 计算每个轴的坐标间隔(步长)

因为你要在X轴取3个顶点、Y轴4个、Z轴2个,每个轴上的顶点是均匀分布的,所以步长计算公式是:
步长 = (轴的最大值 - 轴的最小值) / (该轴的顶点数 - 1)

举个单位立方体的例子:

  • X轴步长:(1-0)/(3-1) = 0.5 → X轴坐标为 0, 0.5, 1
  • Y轴步长:(1-0)/(4-1) ≈ 0.333 → Y轴坐标为 0, 1/3, 2/3, 1
  • Z轴步长:(1-0)/(2-1) = 1 → Z轴坐标为 0, 1

3. 三重循环生成所有顶点

把三个轴的坐标逐个组合,就能得到全部24个顶点。这里给你写一段Python代码示例,直接就能运行:

# 你的需求参数
x_vertex_count = 3
y_vertex_count = 4
z_vertex_count = 2

# 自定义立方体边界,这里用单位立方体,你可以随便改
cube_min = (0.0, 0.0, 0.0)
cube_max = (1.0, 1.0, 1.0)

# 计算各轴步长
step_x = (cube_max[0] - cube_min[0]) / (x_vertex_count - 1) if x_vertex_count > 1 else 0
step_y = (cube_max[1] - cube_min[1]) / (y_vertex_count - 1) if y_vertex_count > 1 else 0
step_z = (cube_max[2] - cube_min[2]) / (z_vertex_count - 1) if z_vertex_count > 1 else 0

# 生成所有顶点
vertices = []
for x_idx in range(x_vertex_count):
    x = cube_min[0] + x_idx * step_x
    for y_idx in range(y_vertex_count):
        y = cube_min[1] + y_idx * step_y
        for z_idx in range(z_vertex_count):
            z = cube_min[2] + z_idx * step_z
            vertices.append( (round(x, 3), round(y, 3), round(z, 3)) )

# 验证结果
print(f"生成的总顶点数:{len(vertices)}")
for i, pos in enumerate(vertices, 1):
    print(f"顶点{i}: {pos}")

4. 特殊情况:想要整数坐标?

如果你希望所有顶点都是整数,只需要调整立方体的边界就行。比如:

  • X轴从0到2(刚好3个整数点:0,1,2)
  • Y轴从0到3(4个整数点:0,1,2,3)
  • Z轴从0到1(2个整数点:0,1)

这样生成的顶点就全是整数坐标,比如(0,0,0)、(0,0,1)、(0,1,0)...直到(2,3,1),刚好24个。


内容的提问来源于stack exchange,提问作者prubini87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:39:58