如何使用numpy数组在搅拌机中生成网格数组?



我想使用blender将来自大型2D数组的数据可视化散点图动画,例如

a = np.array([[0, 0, 0],
              [1, 2, 1],
              [4, 0, 1]]).

这里a[i]描述了i - the mesh/object的位置。我希望在blender场景中创建这些对象。下面的代码对立方体进行处理,但是当a包含数千个向量时速度太慢。

import bpy
import numpy as np
a = np.array([[0, 0, 0],
              [1, 2, 1],
              [4, 0, 1]])
for pos_vec in a:
    bpy.ops.mesh.primitive_cube_add(location=pos_vec)

我如何在python中不循环或使其尽可能快地做到这一点?

看起来像你的"3D"数组更像点云数据。

和Blender可以导入.ply点云数据

bpy.ops.import_mesh.ply(filepath="PATH_TO_PLY.ply")

在此之前,您只需要将3d数组转换为.ply,有很多方法。

  • 假设你有你的三维数组在numpy.array。你可以试试python2plyfile

  • matlab
array3D =[1,0,0
          2,0,0
          3,0,0]
pc = pointCloud(array3D) 
pcwirte(pc, "PLY_FILE.ply")

相关内容

  • 没有找到相关文章