我想使用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")