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

np.ndarray索引场景中,tris = vertices[faces]的实际作用是什么?

关于tris = vertices[faces]操作的解释

先明确各变量的定义:

  • vertices是形状为(A,3)的NumPy数组,每个元素对应一个3D顶点的坐标(比如[x,y,z]),A代表模型的顶点总数。
  • faces是形状为(B,3)的NumPy数组,每个元素是三个顶点的索引值,用来定义一个三角形面,B代表模型中三角形面的总数(题目标注B>A,说明多个面会复用同一个顶点)。

tris = vertices[faces]这个索引操作的实际作用是:

  • 根据faces里存储的顶点索引,从vertices中批量取出对应顶点的坐标,重新组织成形状为(B,3,3)的数组。
  • 新数组tris的维度含义清晰:第一维对应B个三角形面,第二维对应每个面的3个顶点,第三维对应每个顶点的3个坐标分量。

举个直观的小例子:
假设vertices有2个顶点:[[0,0,0], [1,1,1]],faces有3个面:[[0,1,0], [1,0,1], [0,0,1]],执行该操作后tris会变成:

[
 [[0,0,0], [1,1,1], [0,0,0]],
 [[1,1,1], [0,0,0], [1,1,1]],
 [[0,0,0], [0,0,0], [1,1,1]]
]

这样后续计算法线时,就能直接用tris里每个面的完整顶点坐标来计算三角形法向量,无需再单独做索引操作,大幅简化了批量处理的代码逻辑。

内容的提问来源于stack exchange,提问作者K. Zhu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:36:13