Python:从元组列表生成最值元组的优雅一行代码实现
一行代码实现顶点边界计算
当然有更优雅的一行代码方案!假设你的顶点列表是类似 [(x1, y1, z1), (x2, y2, z2), ...] 这样的结构,用 Python 的内置函数就能轻松搞定:
min_bound, max_bound = tuple(map(min, zip(*vertices))), tuple(map(max, zip(*vertices)))
简单拆解一下逻辑:
zip(*vertices):这一步会把所有顶点的对应坐标“对齐打包”——比如把所有顶点的x坐标归到一个元组,y坐标、z坐标同理,最终得到((x1, x2, ...), (y1, y2, ...), (z1, z2, ...))的结构。map(min, ...)和map(max, ...):分别对每个坐标组执行最小/最大值计算,最后用tuple()转成你需要的元组格式。
如果你的顶点数据是用 NumPy 数组存储的,还有更高效的写法(尤其适合顶点量很大的场景):
import numpy as np min_bound, max_bound = np.min(vertices, axis=0), np.max(vertices, axis=0)
内容的提问来源于stack exchange,提问作者Kalle Halvarsson
相关产品推荐
相关产品推荐

