循环遍历对象变量

2024-04-28 21:38:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的for循环中,我希望meshmesh_6mesh_31,等等。 最后存储每个网格对象的名称并进行打印

不需要深入了解脚本的细节,它在循环外进行硬编码

我见过一些例子,但我不明白

contexts = [6, 31, 35, 43, 10]
meshes = []

for context in contexts:
    c = str(context)
    r = random.uniform(0, 1)
    g = random.uniform(0, 1)
    b = random.uniform(0, 1)

    path = "E:/gygaia/database/contexts/99_526/" + c + ".ply"

    mesh = read_triangle_mesh(path)
    mesh.compute_vertex_normals()
    mesh.paint_uniform_color([r, g, b])
    mesh.purge()

    meshes.append(mesh)

draw_geometries([meshes])

编辑

这是不在循环中的脚本

mesh_6 = read_triangle_mesh("E:/gygaia/database/contexts/99_526/6.ply")
mesh_6.compute_vertex_normals()
mesh_6.paint_uniform_color([random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1)])
mesh_6.purge()

mesh_31 = read_triangle_mesh("E:/gygaia/database/contexts/99_526/31.ply")
mesh_31.compute_vertex_normals()
mesh_31.paint_uniform_color([random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1)])
mesh_31.purge()

mesh_35 = read_triangle_mesh("E:/gygaia/database/contexts/99_526/35.ply")
mesh_35.compute_vertex_normals()
mesh_35.paint_uniform_color([random.uniform(0, 1), random.uniform(0, 1), random.uniform(0, 1)])
mesh_35.purge()

draw_geometries([
    # big pit
    mesh_6,
    mesh_31,
    mesh_35,
    ])

因此,我尝试简化代码,所以我只需要将文件的编号添加到列表中


Tags: readrandomuniformdatabasecolorvertextrianglecompute
1条回答
网友
1楼 · 发布于 2024-04-28 21:38:25

draw_geometries()不需要对象变量名,只需要一个包含对象本身的列表,因此我认为只需要更改代码的最后一行:

发件人:

draw_geometries([meshes])

收件人:

draw_geometries(meshes)

因为meshes已经是list

相关问题 更多 >