遍历对象变量

时间:2019-03-28 22:48:24

标签: python for-loop

在下面的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,
    ])

所以我正在努力简化代码,所以我只需要在列表中添加文件编号即可。

1 个答案:

答案 0 :(得分:1)

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

发件人:

draw_geometries([meshes])

收件人:

draw_geometries(meshes)

因为meshes已经是list